species-fuse-arraybuffer-1.js (785B)
1 function test() { 2 // Mutating ArrayBuffer.prototype.constructor pops the fuse. A no-op change is fine. 3 newGlobal().evaluate(` 4 assertEq(getFuseState().OptimizeArrayBufferSpeciesFuse.intact, true); 5 let p = ArrayBuffer.prototype.constructor; 6 ArrayBuffer.prototype.constructor = p; 7 assertEq(getFuseState().OptimizeArrayBufferSpeciesFuse.intact, true); 8 ArrayBuffer.prototype.constructor = Object; 9 assertEq(getFuseState().OptimizeArrayBufferSpeciesFuse.intact, false); 10 `); 11 12 // Mutating ArrayBuffer[Symbol.species] pops the fuse. 13 newGlobal().evaluate(` 14 assertEq(getFuseState().OptimizeArrayBufferSpeciesFuse.intact, true); 15 delete ArrayBuffer[Symbol.species]; 16 assertEq(getFuseState().OptimizeArrayBufferSpeciesFuse.intact, false); 17 `); 18 } 19 test();