function testBasic() { function arg0() { return 0 in arguments; } function arg1() { return 1 in arguments; } function arg100() { return 100 in arguments; } function argn1() { return -1 in arguments; } function argv(i) { return i in arguments; }
// Modifying |arguments.length| doesn't change the result. function testOverriddenLength() { function f(i) { if (i === 100) {
arguments.length = 100;
} return 1 in arguments;
}
for (let i = 0; i <= 150; ++i) {
assertEq(f(i), false);
}
}
testOverriddenLength();
// Overridden elements are correctly detected. function testOverriddenElement() { function f(i) { if (i === 100) {
arguments[1] = 0;
} return 1 in arguments;
}
for (let i = 0; i <= 150; ++i) {
assertEq(f(i), i === 100);
}
}
testOverriddenElement();
// Deleted elements are correctly detected. function testDeletedElement() { function f(i) { if (i === 100) { delete arguments[0];
} return 0 in arguments;
}
for (let i = 0; i <= 150; ++i) {
assertEq(f(i), i !== 100);
}
}
testDeletedElement();
// Contrary to most other arguments object optimisations, forwarded arguments // don't inhibit optimising the |in| operator. function testForwardedArg() { function f(i) { function closedOver() { if (i === 100) i = 0;
}
closedOver(); return 0 in arguments;
}
for (let i = 0; i <= 150; ++i) {
assertEq(f(i), true);
}
}
testForwardedArg();
Messung V0.5
¤ Dauer der Verarbeitung: 0.10 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.