// Test that new.target is acceptably usable in RematerializedFrames.
gczeal(0);
load(libdir + "jitopts.js");
if (!jitTogglesMatch(Opts_Ion2NoOffthreadCompilation))
quit();
withJitOptions(Opts_Ion2NoOffthreadCompilation, function () { var g = newGlobal({newCompartment: true}); var dbg = new Debugger;
g.toggle = function toggle(d, expected) { if (d) {
dbg.addDebuggee(g);
var frame = dbg.getNewestFrame();
assertEq(frame.implementation, "ion");
assertEq(frame.constructing, true);
// CONGRATS IF THIS FAILS! You, proud saviour, have made new.target parse // in debug frame evals (presumably by hooking up static scope walks). // Uncomment the assert below for efaust's undying gratitude. // Note that we use .name here because of CCW nonsense.
assertEq(frame.eval('new.target').throw.unsafeDereference().name, "SyntaxError"); // assertEq(frame.eval('new.target').value.unsafeDereference(), expected);
}
};
g.eval("" + function f(d) { new g(d, g, 15); });
g.eval("" + function g(d, expected) { toggle(d, expected); });
g.eval("(" + function test() { for (var i = 0; i < 5; i++)
f(false);
f(true);
} + ")();");
});
Messung V0.5
¤ Dauer der Verarbeitung: 0.14 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.