2008-10-05 Cameron Zwarich <zwarich@apple.com>
authorcwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 5 Oct 2008 22:47:24 +0000 (22:47 +0000)
committercwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 5 Oct 2008 22:47:24 +0000 (22:47 +0000)
commitbf16a7dff66965ed242fecd11901c74279be289d
treeaf7f1c3089b77aa1912d0f8c11b75abbacdbf78d
parent1285b2ad0bc856684cabd4d176704d2f83552da8
2008-10-05  Cameron Zwarich  <zwarich@apple.com>

        Reviewed by Maciej Stachowiak.

        Bug 21364: Remove the branch in op_ret for OptionalCalleeActivation and OptionalCalleeArguments
        <https://bugs.webkit.org/show_bug.cgi?id=21364>

        This patch does not yet remove the branch, but it does a bit of refactoring
        so that a CodeGenerator now knows whether the associated CodeBlock will need
        a full scope before doing any code generation. This makes it possible to emit
        explicit tear-off instructions before every op_ret.

        * VM/CodeBlock.h:
        (JSC::CodeBlock::CodeBlock):
        * VM/CodeGenerator.cpp:
        (JSC::CodeGenerator::generate):
        (JSC::CodeGenerator::CodeGenerator):
        (JSC::CodeGenerator::emitPushScope):
        (JSC::CodeGenerator::emitPushNewScope):
        * kjs/nodes.h:
        (JSC::ScopeNode::needsActivation):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37320 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/VM/CodeBlock.h
JavaScriptCore/VM/CodeGenerator.cpp
JavaScriptCore/kjs/nodes.h