mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 05:45:37 +00:00
Bug 514568 - Put the Call object for strict mode scripts in the methodjit. r=dvander
This commit is contained in:
parent
fa0c5fb908
commit
c540b5de0c
@ -2336,6 +2336,12 @@ mjit::Compiler::emitReturn(FrameEntry *fe)
|
||||
emitReturnValue(&stubcc.masm, fe);
|
||||
emitFinalReturn(stubcc.masm);
|
||||
}
|
||||
} else {
|
||||
if (fp->isEvalFrame() && script->strictModeCode) {
|
||||
/* There will always be a call object. */
|
||||
prepareStubCall(Uses(fe ? 1 : 0));
|
||||
INLINE_STUBCALL(stubs::PutStrictEvalCallObject);
|
||||
}
|
||||
}
|
||||
|
||||
emitReturnValue(&masm, fe);
|
||||
|
@ -479,6 +479,15 @@ stubs::UncachedCallHelper(VMFrame &f, uint32 argc, UncachedCallResult *ucr)
|
||||
return;
|
||||
}
|
||||
|
||||
void JS_FASTCALL
|
||||
stubs::PutStrictEvalCallObject(VMFrame &f)
|
||||
{
|
||||
JS_ASSERT(f.fp()->isEvalFrame());
|
||||
JS_ASSERT(f.fp()->script()->strictModeCode);
|
||||
JS_ASSERT(f.fp()->hasCallObj());
|
||||
js_PutCallObject(f.cx, f.fp());
|
||||
}
|
||||
|
||||
void JS_FASTCALL
|
||||
stubs::PutActivationObjects(VMFrame &f)
|
||||
{
|
||||
|
@ -107,6 +107,7 @@ void UncachedNewHelper(VMFrame &f, uint32 argc, UncachedCallResult *ucr);
|
||||
|
||||
void JS_FASTCALL CreateThis(VMFrame &f, JSObject *proto);
|
||||
void JS_FASTCALL Throw(VMFrame &f);
|
||||
void JS_FASTCALL PutStrictEvalCallObject(VMFrame &f);
|
||||
void JS_FASTCALL PutActivationObjects(VMFrame &f);
|
||||
void JS_FASTCALL GetCallObject(VMFrame &f);
|
||||
#if JS_MONOIC
|
||||
|
Loading…
Reference in New Issue
Block a user