/* test 1: insertion of new blank object in ctor.__proto__ chain */
function C() {}
C.__proto__ = Object.create(Function.prototype);
for (var i = 0; i < N; i++) { var o = new C();
assertEq(o instanceof C, true);
}
/* test 2: overriding of @@hasInstance on the proto chain, partway
* through execution (should trigger a guard) */
function D() {}
for (var i = 0; i < N; i++) { var o = new D(); if (i == k) {
D.__proto__ = {[Symbol.hasInstance]() { returnfalse; }};
}
assertEq(o instanceof D, i < k);
}
/* test 3: overriding of @@hasInstance on an intermediate object in the proto
* chain */
function E() {}
E.__proto__ = Object.create(Object.create(Object.create(Function.prototype))); var intermediateProto = E.__proto__.__proto__;
for (var i = 0; i < N; i++) { var o = new E; if (i == k) {
intermediateProto.__proto__ = {[Symbol.hasInstance]() { returnfalse; }};
}
assertEq(o instanceof E, i < k);
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.13 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.