ES5 defineProperty hotness

one day, only browsers that support this will be around.

by Steven Senkus

JavaScript

"use strict";
var jQ = {};
var expected;
/* Can't overwrite the src property! */
Object.defineProperty( jQ, "cdn", {
    value: "//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js",
    writable: false,
    enumerable: true,
    configurable: true
});

// TypeError in Strict mode
expected = '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
try {
    // can't write this!
        jQ.cdn = expected;
    alert(expected);
} 
catch (e) {
    handleTypeError(e, expected);
    
   }

function handleTypeError(e, exp) {
    alert(e.name + '\n' + e.message + "\n" + e.stack + '\n' + 'Expected: ' + exp );
}