// Modifying |arguments.length| doesn't change the result. function testOverriddenLength() { function f(i) { if (i === 100) {
arguments.length = 100;
} return Object.hasOwn(arguments, 1);
}
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 Object.hasOwn(arguments, 1);
}
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 Object.hasOwn(arguments, 0);
}
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 |Object.hasOwn|. function testForwardedArg() { function f(i) { function closedOver() { if (i === 100) i = 0;
}
closedOver(); return Object.hasOwn(arguments, 0);
}
for (let i = 0; i <= 150; ++i) {
assertEq(f(i), true);
}
}
testForwardedArg();
Messung V0.5
¤ Dauer der Verarbeitung: 0.0 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.