}
#endif
+#if ENABLE(JIT)
// Utility method used for jettisoning code blocks.
template<typename T>
static void jettisonCodeBlock(JSGlobalData& globalData, OwnPtr<T>& codeBlock)
codeBlockToJettison->unlinkIncomingCalls();
globalData.heap.addJettisonedCodeBlock(static_pointer_cast<CodeBlock>(codeBlockToJettison.release()));
}
+#endif
const ClassInfo ScriptExecutable::s_info = { "ScriptExecutable", &ExecutableBase::s_info, 0, 0 };
return 0;
}
+#if ENABLE(JIT)
void EvalExecutable::jettisonOptimizedCode(JSGlobalData& globalData)
{
jettisonCodeBlock(globalData, m_evalCodeBlock);
m_jitCodeForCall = m_evalCodeBlock->getJITCode();
ASSERT(!m_jitCodeForCallWithArityCheck);
}
+#endif
void EvalExecutable::visitChildren(SlotVisitor& visitor)
{
return 0;
}
+#if ENABLE(JIT)
void ProgramExecutable::jettisonOptimizedCode(JSGlobalData& globalData)
{
jettisonCodeBlock(globalData, m_programCodeBlock);
m_jitCodeForCall = m_programCodeBlock->getJITCode();
ASSERT(!m_jitCodeForCallWithArityCheck);
}
+#endif
void ProgramExecutable::unlinkCalls()
{
return 0;
}
+#if ENABLE(JIT)
void FunctionExecutable::jettisonOptimizedCodeForCall(JSGlobalData& globalData)
{
jettisonCodeBlock(globalData, m_codeBlockForCall);
m_jitCodeForConstruct = m_codeBlockForConstruct->getJITCode();
m_jitCodeForConstructWithArityCheck = m_codeBlockForConstruct->getJITCodeWithArityCheck();
}
+#endif
void FunctionExecutable::visitChildren(SlotVisitor& visitor)
{
JSObject* compileOptimized(ExecState*, ScopeChainNode*);
+#if ENABLE(JIT)
void jettisonOptimizedCode(JSGlobalData&);
+#endif
EvalCodeBlock& generatedBytecode()
{
JSObject* compileOptimized(ExecState*, ScopeChainNode*);
+#if ENABLE(JIT)
void jettisonOptimizedCode(JSGlobalData&);
+#endif
ProgramCodeBlock& generatedBytecode()
{
JSObject* compileOptimizedForCall(ExecState*, ScopeChainNode*, ExecState* calleeArgsExec = 0);
+#if ENABLE(JIT)
void jettisonOptimizedCodeForCall(JSGlobalData&);
+#endif
bool isGeneratedForCall() const
{
JSObject* compileOptimizedForConstruct(ExecState*, ScopeChainNode*, ExecState* calleeArgsExec = 0);
+#if ENABLE(JIT)
void jettisonOptimizedCodeForConstruct(JSGlobalData&);
+#endif
bool isGeneratedForConstruct() const
{
return compileOptimizedForConstruct(exec, scopeChainNode, exec);
}
+#if ENABLE(JIT)
void jettisonOptimizedCodeFor(JSGlobalData& globalData, CodeSpecializationKind kind)
{
if (kind == CodeForCall)
jettisonOptimizedCodeForConstruct(globalData);
}
}
+#endif
bool isGeneratedFor(CodeSpecializationKind kind)
{