зеркало из https://github.com/mozilla/pjs.git
Ensure that cx->interpState is always accurate by maintaing a stack (490776, r=jorendorff).
This commit is contained in:
Родитель
64837a579e
Коммит
a8fc287e9d
|
@ -4312,6 +4312,7 @@ js_ExecuteTree(JSContext* cx, Fragment* f, uintN& inlineCallCount,
|
|||
|
||||
JS_ASSERT(!tm->tracecx);
|
||||
tm->tracecx = cx;
|
||||
state->prev = cx->interpState;
|
||||
cx->interpState = state;
|
||||
|
||||
debug_only(fflush(NULL);)
|
||||
|
@ -4325,9 +4326,7 @@ js_ExecuteTree(JSContext* cx, Fragment* f, uintN& inlineCallCount,
|
|||
|
||||
AUDIT(traceTriggered);
|
||||
|
||||
#ifdef DEBUG
|
||||
cx->interpState = NULL;
|
||||
#endif
|
||||
cx->interpState = state->prev;
|
||||
|
||||
JS_ASSERT(lr->exitType != LOOP_EXIT || !lr->calldepth);
|
||||
tm->tracecx = NULL;
|
||||
|
|
|
@ -385,6 +385,7 @@ struct InterpState
|
|||
#ifdef EXECUTE_TREE_TIMER
|
||||
uint64 startTime;
|
||||
#endif
|
||||
InterpState* prev;
|
||||
|
||||
/*
|
||||
* Used by _FAIL builtins; see jsbuiltins.h. The builtin sets the
|
||||
|
|
Загрузка…
Ссылка в новой задаче