37 lines
733 B
JavaScript
37 lines
733 B
JavaScript
description('This test makes sure stack unwinding works correctly in combination with dynamically added scopes');
|
|
|
|
function gc()
|
|
{
|
|
if (this.GCController)
|
|
GCController.collect();
|
|
else
|
|
for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
|
|
({});
|
|
}
|
|
|
|
var result;
|
|
function runTest() {
|
|
var test = "outer scope";
|
|
with({test:"inner scope"})
|
|
(function () { try { throw ""; } finally { result = test; shouldBe("result", '"inner scope"'); return;}})()
|
|
}
|
|
runTest();
|
|
|
|
try{
|
|
(function() {
|
|
try {
|
|
throw "";
|
|
} catch(y) {
|
|
throw (function(){});
|
|
} finally {
|
|
}
|
|
})()
|
|
}catch(r){
|
|
}
|
|
|
|
// Just clobber any temporaries
|
|
a=({});
|
|
a*=a*a*a;
|
|
|
|
gc();
|