Object.isFrozen = function(O){
if (Type(O) != 'Object') throw TypeError;
for (P in O) {
var desc = O.[[GetOwnProperty]](P);
if (IsDataDescriptor(desc) && desc.[[Writable]]) return false;
if (desc.[[Configurable]]) return false;
}
return !O.[[Extensible]];
}