Source code

Revision control

Copy as Markdown

Other Tools

// Test for array buffer species fuse with multiple realms.
function test() {
var g = newGlobal();
var arr = g.evaluate(`new ArrayBuffer(4)`);
var count = 0;
Object.defineProperty(g.ArrayBuffer.prototype, "constructor", {get: function() {
count++;
return ArrayBuffer;
}});
for (var i = 0; i < 20; i++) {
assertEq(ArrayBuffer.prototype.slice.call(arr).byteLength, 4);
}
assertEq(count, 20);
assertEq(getFuseState().OptimizeArrayBufferSpeciesFuse.intact, true);
assertEq(g.getFuseState().OptimizeArrayBufferSpeciesFuse.intact, false);
}
test();