Properly set the cloned block objects' parent slot. bug 351606, r=igor sr=brendan

This commit is contained in:
mrbkap%gmail.com 2006-09-08 00:33:14 +00:00
Родитель 0647084026
Коммит bae0890070
1 изменённых файлов: 7 добавлений и 8 удалений

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

@ -498,16 +498,10 @@ js_GetScopeChain(JSContext *cx, JSStackFrame *fp)
JS_POP_TEMP_ROOT(cx, &tvr);
return NULL;
}
if (!parent) {
if (!clonedChild)
obj = cursor;
else
JS_POP_TEMP_ROOT(cx, &tvr);
break;
}
if (!clonedChild) {
obj = cursor;
JS_PUSH_SINGLE_TEMP_ROOT(cx, cursor, &tvr);
if (parent)
JS_PUSH_SINGLE_TEMP_ROOT(cx, cursor, &tvr);
} else {
/*
* Avoid OBJ_SET_PARENT overhead as clonedChild cannot escape to
@ -517,6 +511,11 @@ js_GetScopeChain(JSContext *cx, JSStackFrame *fp)
JS_ASSERT(tvr.u.value == OBJECT_TO_JSVAL(clonedChild));
tvr.u.value = OBJECT_TO_JSVAL(cursor);
}
if (!parent) {
if (clonedChild)
JS_POP_TEMP_ROOT(cx, &tvr);
break;
}
clonedChild = cursor;
cursor = parent;
}