// A proxy on the prototype chain of the global should not observe anything at // all about lazy resolution of globals.
load(libdir + "immutable-prototype.js");
var global = this; var status = "pass";
// This is a little tricky. There are two proxies. // 1. handler is a proxy that fails the test if you try to call a method on it. var metaHandler = {
get: _ => { status = "SMASH"; },
has: _ => { status = "SMASH"; },
invoke: _ => { status = "SMASH"; }
}; var handler = new Proxy({}, metaHandler);
// 2. Then we create a proxy using 'handler' as its handler. This means the test // will fail if *any* method of the handler is called, not just get/has/invoke. var angryProxy = new Proxy(Object.create(null), handler); if (globalPrototypeChainIsMutable()) { this.__proto__ = angryProxy;
Object.prototype.__proto__ = angryProxy;
}
// Trip the alarm once, to make sure the proxies are working. this.nonExistingProperty; if (globalPrototypeChainIsMutable())
assertEq(status, "SMASH"); else
assertEq(status, "pass");
// OK. Reset the status and run the actual test.
status = "pass";
Map;
ArrayBuffer;
Date;
assertEq(status, "pass");
Messung V0.5
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.