Bug 529147 - fix flipped numSideExitsBefore assertion (r=dvander)

This commit is contained in:
Luke Wagner 2009-11-16 17:45:50 -08:00
Родитель a108788918
Коммит d3b2cdfe65
2 изменённых файлов: 23 добавлений и 1 удалений

Просмотреть файл

@ -2557,7 +2557,7 @@ TraceRecorder::finishAbort(const char* reason)
if (fragment->root == fragment) {
TrashTree(cx, fragment->toTreeFragment());
} else {
JS_ASSERT(numSideExitsBefore >= fragment->root->treeInfo->sideExits.length());
JS_ASSERT(numSideExitsBefore <= fragment->root->treeInfo->sideExits.length());
fragment->root->treeInfo->sideExits.setLength(numSideExitsBefore);
}

Просмотреть файл

@ -0,0 +1,22 @@
var magicNumbers = [1, -1, 0, 0];
var magicIndex = 0;
var sum = 0;
function foo(n) {
for (var i = 0; i < n; ++i) {
sum += 10;
bar();
}
}
function bar() {
var q = magicNumbers[magicIndex++];
if (q != -1) {
sum += 1;
foo(q);
}
}
foo(3);
assertEq(sum, 43);