testGlobalShapeChangeAfterDeepBail.js (564B)
1 // Complicated whitebox test for bug 487845. 2 function testGlobalShapeChangeAfterDeepBail() { 3 function f(name) { 4 this[name] = 1; // may change global shape 5 for (var i = 0; i < 4; i++) 6 ; // MonitorLoopEdge eventually triggers assertion 7 } 8 9 // When i==3, deep-bail, then change global shape enough times to exhaust 10 // the array of GlobalStates. 11 var arr = [[], [], [], ["bug0", "bug1", "bug2", "bug3", "bug4"]]; 12 for (var i = 0; i < arr.length; i++) 13 arr[i].forEach(f); 14 } 15 testGlobalShapeChangeAfterDeepBail();