| OLD | NEW |
| (Empty) |
| 1 <script src="../../../http/tests/inspector/inspector-test.js"></script> | |
| 2 <script src="../../../http/tests/inspector/debugger-test.js"></script> | |
| 3 | |
| 4 <script> | |
| 5 var closures = []; | |
| 6 function makeClosure() { | |
| 7 var v1, v2, v3, v4, v5, v6, v7, v8, v9, v10; // Make a lot of potentially ca
ptured variables. | |
| 8 return function () { | |
| 9 var x = v1; // But only capture one in optimizing compiles. | |
| 10 return x; | |
| 11 }; | |
| 12 } | |
| 13 | |
| 14 for (var i = 0; i < 100; ++i) { | |
| 15 closures.push(makeClosure()); | |
| 16 } | |
| 17 | |
| 18 closures[0](); // Force compilation. | |
| 19 function testFunction() { | |
| 20 closures[0](); // Force recompilation. | |
| 21 | |
| 22 // At this point, closures[0] captured 1 variable but thinks it captured 10. | |
| 23 // If so, stopping at a breakpoint should make it crash. | |
| 24 } | |
| 25 | |
| 26 function test() { | |
| 27 InspectorTest.startDebuggerTest(step1); | |
| 28 | |
| 29 function step1() | |
| 30 { | |
| 31 InspectorTest.showScriptSource("debugger-activation-crash2.html", step2)
; | |
| 32 } | |
| 33 | |
| 34 function step2(sourceFrame) | |
| 35 { | |
| 36 InspectorTest.addResult("Script source was shown."); | |
| 37 InspectorTest.setBreakpoint(sourceFrame, 8, "", true); | |
| 38 InspectorTest.runTestFunctionAndWaitUntilPaused(step3); | |
| 39 } | |
| 40 | |
| 41 function step3(callFrames) | |
| 42 { | |
| 43 InspectorTest.captureStackTrace(callFrames, null, { dropLineNumbers: tru
e }); | |
| 44 InspectorTest.completeDebuggerTest(); | |
| 45 } | |
| 46 } | |
| 47 | |
| 48 window.onload = runTest; | |
| 49 </script> | |
| 50 | |
| 51 <p> | |
| 52 Tests for a crash when paused at a breakpoint caused by inaccurate Activation re
cords. | |
| 53 <a href="https://bugs.webkit.org/show_bug.cgi?id=57120">Bug 57120</a> | |
| 54 </p> | |
| OLD | NEW |