var isConstructing = getSelfHostedValue("IsConstructing");
function testBasic() { var f = function(expected) {
with(this) {}; // Don't inline.
assertEq(isConstructing(), expected);
}; for (var i=0; i<40; i++) {
f(false); new f(true);
}
}
testBasic();
function testGeneric() { var f1 = function(expected) {
with(this) {};
assertEq(isConstructing(), expected);
}; var f2 = function(expected) {
assertEq(isConstructing(), expected);
} var funs = [f1, f2]; for (var i=0; i<40; i++) { var f = funs[i % 2];
f(false); new f(true);
}
}
testGeneric();
function testArgsRectifier() { var f = function(x) {
with(this) {};
assertEq(isConstructing(), true);
}; for (var i=0; i<40; i++) new f();
}
testArgsRectifier();
function testBailout() { var f1 = function(x, expected) { if (x > 20) {
bailout();
assertEq(isConstructing(), expected);
}
}; var f2 = function(x) { returnnew f1(x, true);
}; var f3 = function(x) { return f1(x, false);
}; for (var i=0; i<40; i++) {
f2(i);
f3(i);
} for (var i=0; i<40; i++)
f1(i, false);
}
testBailout();
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.