mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 858655 - Add missing DebugScopes::onPopStrictEvalScope call for baseline frames. r=djvj
--HG-- extra : rebase_source : cab6588c3979881f199722613a9f3ca43a0860d5
This commit is contained in:
parent
8a5221dd01
commit
cd2beb0176
@ -259,10 +259,15 @@ ion::CanEnterBaselineJIT(JSContext *cx, JSScript *scriptArg, StackFrame *fp, boo
|
||||
if (script->hasBaselineScript())
|
||||
return Method_Compiled;
|
||||
|
||||
// Eagerly compile scripts if JSD is enabled, so that we don't have to OSR
|
||||
// and don't have to update the frame pointer stored in JSD's frames list.
|
||||
if (scriptArg->incUseCount() <= js_IonOptions.baselineUsesBeforeCompile && !IsJSDEnabled(cx))
|
||||
// Check script use count. However, always eagerly compile scripts if JSD
|
||||
// is enabled, so that we don't have to OSR and don't have to update the
|
||||
// frame pointer stored in JSD's frames list.
|
||||
if (IsJSDEnabled(cx)) {
|
||||
if (JSOp(*cx->regs().pc) == JSOP_LOOPENTRY) // No OSR.
|
||||
return Method_Skipped;
|
||||
} else if (scriptArg->incUseCount() <= js_IonOptions.baselineUsesBeforeCompile) {
|
||||
return Method_Skipped;
|
||||
}
|
||||
|
||||
if (script->isCallsiteClone) {
|
||||
// Ensure the original function is compiled too, so that bailouts from
|
||||
|
@ -638,6 +638,9 @@ DebugEpilogue(JSContext *cx, BaselineFrame *frame, JSBool ok)
|
||||
if (frame->isNonEvalFunctionFrame()) {
|
||||
JS_ASSERT_IF(ok, frame->hasReturnValue());
|
||||
DebugScopes::onPopCall(frame, cx);
|
||||
} else if (frame->isStrictEvalFrame()) {
|
||||
JS_ASSERT_IF(frame->hasCallObj(), frame->scopeChain()->asCall().isForEval());
|
||||
DebugScopes::onPopStrictEvalScope(frame);
|
||||
}
|
||||
|
||||
if (!ok) {
|
||||
|
Loading…
Reference in New Issue
Block a user