diff options
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGJITCompiler.h')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGJITCompiler.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGJITCompiler.h b/Source/JavaScriptCore/dfg/DFGJITCompiler.h index a0c68fe4b..2df2703b0 100644 --- a/Source/JavaScriptCore/dfg/DFGJITCompiler.h +++ b/Source/JavaScriptCore/dfg/DFGJITCompiler.h @@ -194,8 +194,8 @@ public: { } - void compile(JITCode& entry); - void compileFunction(JITCode& entry, MacroAssemblerCodePtr& entryWithArityCheck); + bool compile(JITCode& entry); + bool compileFunction(JITCode& entry, MacroAssemblerCodePtr& entryWithArityCheck); // Accessors for properties. Graph& graph() { return m_graph; } @@ -297,12 +297,13 @@ public: // value of (None, []). But the old JIT may stash some values there. So we really // need (Top, TOP). for (size_t argument = 0; argument < basicBlock.variablesAtHead.numberOfArguments(); ++argument) { - if (basicBlock.variablesAtHead.argument(argument) == NoNode) + NodeIndex nodeIndex = basicBlock.variablesAtHead.argument(argument); + if (nodeIndex == NoNode || !m_graph[nodeIndex].shouldGenerate()) entry->m_expectedValues.argument(argument).makeTop(); } for (size_t local = 0; local < basicBlock.variablesAtHead.numberOfLocals(); ++local) { NodeIndex nodeIndex = basicBlock.variablesAtHead.local(local); - if (nodeIndex == NoNode) + if (nodeIndex == NoNode || !m_graph[nodeIndex].shouldGenerate()) entry->m_expectedValues.local(local).makeTop(); else if (m_graph[nodeIndex].variableAccessData()->shouldUseDoubleFormat()) entry->m_localsForcedDouble.set(local); |