blob: b405770ca96139e09937bcfd4a5f92cabf91dcec [file] [log] [blame]
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/debugger-test.js"></script>
<script>
var closures = [];
function makeClosure() {
var v1, v2, v3, v4, v5, v6, v7, v8, v9, v10; // Make a lot of potentially captured variables.
return function (){ return v1; }; // But only capture one in optimizing compiles.
}
for (var i = 0; i < 100; ++i) {
closures.push(makeClosure());
}
function tryCrash() {
makeClosure(); // Force recompilation.
// At this point, we should have 100 activations that captured 1 variable
// but think they captured 10. If so, GC should make them crash.
if (window.GCController)
GCController.collect();
else {
for (var i = 0; i < 10000; ++i)
new Object;
}
}
function test() {
InspectorTest.startDebuggerTest(function () {
InspectorTest.evaluateInPage("tryCrash()");
InspectorTest.completeDebuggerTest();
});
}
window.onload = runTest;
</script>
<p>
Tests for a crash caused by inaccurate Activation records.
&lt;rdar://problem/8525907&gt; Crash in debugger beneath MarkStack::drain @ me.com, ibm.com
</p>