Source code
Revision control
Copy as Markdown
Other Tools
var g = newGlobal({freezeBuiltins: true});
g.evaluate("" + function checkFrozen(name) {
// Check constructor on the global is non-writable/non-configurable.
let desc = Object.getOwnPropertyDescriptor(this, name);
assertEq(desc.writable, false);
assertEq(desc.configurable, false);
// Constructor must be frozen.
let ctor = desc.value;
assertEq(Object.isFrozen(ctor), true);
// Prototype must be sealed.
if (ctor.prototype) {
assertEq(Object.isSealed(ctor.prototype), true);
}
});
g.checkFrozen("Object");
g.checkFrozen("Array");
g.checkFrozen("Function");
g.checkFrozen("ArrayBuffer");
g.checkFrozen("Int32Array");
g.checkFrozen("Number");
g.checkFrozen("String");
g.checkFrozen("Proxy");
g.checkFrozen("Promise");
g.checkFrozen("RegExp");
g.checkFrozen("Map");
g.checkFrozen("WeakMap");
g.checkFrozen("WeakRef");
g.checkFrozen("Error");
g.checkFrozen("TypeError");
g.checkFrozen("JSON");
g.checkFrozen("Math");