description('Test that when the stack overflows, the exception goes to the last frame before the overflow'); | |
var level = 0; | |
var stackLevel = 0; | |
var gotWrongCatch = false; | |
function test1() | |
{ | |
var myLevel = level; | |
var dummy; | |
try { | |
level = level + 1; | |
// Dummy code to make this funciton different from test2() | |
dummy = level * level + 1; | |
if (dummy == 0) | |
debug('Should never get here!!!!'); | |
} catch(err) { | |
gotWrongCatch = true; | |
} | |
try { | |
test2(); | |
} catch(err) { | |
stackLevel = myLevel; | |
} | |
} | |
function test2() | |
{ | |
var myLevel = level; | |
// Dummy code to make this funciton different from test1() | |
if (gotWrongCatch) | |
debug('Should never get here!!!!'); | |
try { | |
level = level + 1; | |
} catch(err) { | |
gotWrongCatch = true; | |
} | |
try { | |
test1(); | |
} catch(err) { | |
stackLevel = myLevel; | |
} | |
} | |
test1(); | |
shouldBeFalse("gotWrongCatch"); | |
shouldBe("(stackLevel)", "(level - 1)"); |