Source code

Revision control

Copy as Markdown

Other Tools

function test() {
assertEq(getFuseState().ArrayPrototypeIteratorFuse.intact, true);
// This defineProperty doesn't change the value so the fuse stays intact.
let proto = Array.prototype;
let desc = Object.getOwnPropertyDescriptor(proto, Symbol.iterator);
Object.defineProperty(proto, Symbol.iterator, desc);
assertEq(getFuseState().ArrayPrototypeIteratorFuse.intact, true);
// Changing the property to an accessor property must pop the fuse.
desc.get = desc.value;
delete desc.value;
delete desc.writable;
Object.defineProperty(proto, Symbol.iterator, desc);
assertEq(getFuseState().ArrayPrototypeIteratorFuse.intact, false);
}
test();