This commit is contained in:
Brian Hackett 2011-08-26 20:17:26 -07:00
Родитель ccd0bc9f00
Коммит a6edf630e5
2 изменённых файлов: 8 добавлений и 3 удалений

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

@ -1324,7 +1324,9 @@ FrameState::sync(Assembler &masm, Uses uses) const
Registers avail(freeRegs.freeMask & Registers::AvailRegs);
Registers temp(Registers::TempAnyRegs);
FrameEntry *bottom = cx->typeInferenceEnabled() ? entries : a->sp - uses.nuses;
FrameEntry *bottom = (cx->typeInferenceEnabled() || cx->compartment->debugMode())
? entries
: a->sp - uses.nuses;
for (FrameEntry *fe = a->sp - 1; fe >= bottom; fe--) {
if (!fe->isTracked())
@ -1456,7 +1458,10 @@ FrameState::syncAndKill(Registers kill, Uses uses, Uses ignore)
}
uint32 maxvisits = tracker.nentries;
FrameEntry *bottom = cx->typeInferenceEnabled() ? entries : a->sp - uses.nuses;
FrameEntry *bottom = (cx->typeInferenceEnabled() || cx->compartment->debugMode())
? entries
: a->sp - uses.nuses;
for (FrameEntry *fe = a->sp - 1; fe >= bottom && maxvisits; fe--) {
if (!fe->isTracked())

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

@ -623,7 +623,7 @@ js_InternalThrow(VMFrame &f)
StackFrame *fp = cx->fp();
JSScript *script = fp->script();
if (cx->typeInferenceEnabled()) {
if (cx->typeInferenceEnabled() || !fp->jit()) {
/*
* Fall back to EnterMethodJIT and finish the frame in the interpreter.
* With type inference enabled, we may wipe out all JIT code on the