Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / inspector / sources / debugger / debugger-activation-crash2.html
blobf990fc56b46cc14bedf377b2e556f377da03a248
1 <script src="../../../http/tests/inspector/inspector-test.js"></script>
2 <script src="../../../http/tests/inspector/debugger-test.js"></script>
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 captured variables.
8 return function () {
9 var x = v1; // But only capture one in optimizing compiles.
10 return x;
14 for (var i = 0; i < 100; ++i) {
15 closures.push(makeClosure());
18 closures[0](); // Force compilation.
19 function testFunction() {
20 closures[0](); // Force recompilation.
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.
26 function test() {
27 InspectorTest.startDebuggerTest(step1);
29 function step1()
31 InspectorTest.showScriptSource("debugger-activation-crash2.html", step2);
34 function step2(sourceFrame)
36 InspectorTest.addResult("Script source was shown.");
37 InspectorTest.setBreakpoint(sourceFrame, 8, "", true);
38 InspectorTest.runTestFunctionAndWaitUntilPaused(step3);
41 function step3(callFrames)
43 InspectorTest.captureStackTrace(callFrames, null, { dropLineNumbers: true });
44 InspectorTest.completeDebuggerTest();
48 window.onload = runTest;
49 </script>
51 <p>
52 Tests for a crash when paused at a breakpoint caused by inaccurate Activation records.
53 <a href="https://bugs.webkit.org/show_bug.cgi?id=57120">Bug 57120</a>
54 </p>