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 (){ return v1; }; // But only capture one in optimizing comp
iles. | |
9 } | |
10 | |
11 for (var i = 0; i < 100; ++i) { | |
12 closures.push(makeClosure()); | |
13 } | |
14 | |
15 function tryCrash() { | |
16 makeClosure(); // Force recompilation. | |
17 | |
18 // At this point, we should have 100 activations that captured 1 variable | |
19 // but think they captured 10. If so, GC should make them crash. | |
20 if (window.GCController) | |
21 GCController.collect(); | |
22 else { | |
23 for (var i = 0; i < 10000; ++i) | |
24 new Object; | |
25 } | |
26 } | |
27 | |
28 function test() { | |
29 InspectorTest.startDebuggerTest(function () { | |
30 InspectorTest.evaluateInPage("tryCrash()"); | |
31 InspectorTest.completeDebuggerTest(); | |
32 }); | |
33 } | |
34 | |
35 window.onload = runTest; | |
36 </script> | |
37 | |
38 <p> | |
39 Tests for a crash caused by inaccurate Activation records. | |
40 <rdar://problem/8525907> Crash in debugger beneath MarkStack::drain @ me.c
om, ibm.com | |
41 </p> | |
42 | |
OLD | NEW |