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