diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-06-24 15:18:05 (GMT) |
---|---|---|
committer | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-06-24 15:18:05 (GMT) |
commit | 723dfce0f2af6d93d2c1b50f5e44ad3cf63e058c (patch) | |
tree | f8e1c8693aceea8f1d2fc03d9ad1555b0a441a27 /src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp | |
parent | f90d8f3fe7e39a20b93a2ddfe0704bc48f3bd5f9 (diff) | |
parent | dab9d7c67ed2eda150c8da9e41db75f7eeeecd0d (diff) | |
download | Qt-723dfce0f2af6d93d2c1b50f5e44ad3cf63e058c.zip Qt-723dfce0f2af6d93d2c1b50f5e44ad3cf63e058c.tar.gz Qt-723dfce0f2af6d93d2c1b50f5e44ad3cf63e058c.tar.bz2 |
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt
Conflicts:
src/gui/kernel/qapplication_x11.cpp
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp index 4ddf13a..3cfd125 100644 --- a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp @@ -1889,8 +1889,8 @@ void ProgramNode::generateBytecode(ScopeChainNode* scopeChainNode) m_code.set(new ProgramCodeBlock(this, GlobalCode, globalObject, source().provider())); - BytecodeGenerator generator(this, globalObject->debugger(), scopeChain, &globalObject->symbolTable(), m_code.get()); - generator.generate(); + OwnPtr<BytecodeGenerator> generator(new BytecodeGenerator(this, globalObject->debugger(), scopeChain, &globalObject->symbolTable(), m_code.get())); + generator->generate(); destroyData(); } @@ -1944,8 +1944,8 @@ void EvalNode::generateBytecode(ScopeChainNode* scopeChainNode) m_code.set(new EvalCodeBlock(this, globalObject, source().provider(), scopeChain.localDepth())); - BytecodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable(), m_code.get()); - generator.generate(); + OwnPtr<BytecodeGenerator> generator(new BytecodeGenerator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable(), m_code.get())); + generator->generate(); // Eval code needs to hang on to its declaration stacks to keep declaration info alive until Interpreter::execute time, // so the entire ScopeNodeData cannot be destoyed. @@ -1961,9 +1961,9 @@ EvalCodeBlock& EvalNode::bytecodeForExceptionInfoReparse(ScopeChainNode* scopeCh m_code.set(new EvalCodeBlock(this, globalObject, source().provider(), scopeChain.localDepth())); - BytecodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable(), m_code.get()); - generator.setRegeneratingForExceptionInfo(codeBlockBeingRegeneratedFrom); - generator.generate(); + OwnPtr<BytecodeGenerator> generator(new BytecodeGenerator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable(), m_code.get())); + generator->setRegeneratingForExceptionInfo(codeBlockBeingRegeneratedFrom); + generator->generate(); return *m_code; } @@ -2037,11 +2037,17 @@ PassRefPtr<FunctionBodyNode> FunctionBodyNode::createNativeThunk(JSGlobalData* g { RefPtr<FunctionBodyNode> body = new FunctionBodyNode(globalData); globalData->parser->arena().reset(); + body->m_code.set(new CodeBlock(body.get())); body->m_jitCode = JITCode(JITCode::HostFunction(globalData->jitStubs.ctiNativeCallThunk())); return body.release(); } #endif +bool FunctionBodyNode::isHostFunction() const +{ + return m_code && m_code->codeType() == NativeCode; +} + FunctionBodyNode* FunctionBodyNode::create(JSGlobalData* globalData) { return new FunctionBodyNode(globalData); @@ -2071,8 +2077,8 @@ void FunctionBodyNode::generateBytecode(ScopeChainNode* scopeChainNode) m_code.set(new CodeBlock(this, FunctionCode, source().provider(), source().startOffset())); - BytecodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable(), m_code.get()); - generator.generate(); + OwnPtr<BytecodeGenerator> generator(new BytecodeGenerator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable(), m_code.get())); + generator->generate(); destroyData(); } @@ -2097,9 +2103,9 @@ CodeBlock& FunctionBodyNode::bytecodeForExceptionInfoReparse(ScopeChainNode* sco m_code.set(new CodeBlock(this, FunctionCode, source().provider(), source().startOffset())); - BytecodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable(), m_code.get()); - generator.setRegeneratingForExceptionInfo(codeBlockBeingRegeneratedFrom); - generator.generate(); + OwnPtr<BytecodeGenerator> generator(new BytecodeGenerator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable(), m_code.get())); + generator->setRegeneratingForExceptionInfo(codeBlockBeingRegeneratedFrom); + generator->generate(); return *m_code; } |