Ignore:
Timestamp:
Dec 10, 2007, 9:47:41 PM (17 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

Reviewed by Sam Weinig.

Split this:


FunctionBodyNode


|

ProgramNode


into this:


ScopeNode


| | |

FunctionBodyNode ProgramNode EvalNode

in preparation for specializing each class more while optimizing global
variable access.


Also removed some cruft from the FunctionBodyNode interface to simplify
things.


SunSpider says this patch is a .8% speedup, which seems reasonable,
since it eliminates a few branches and adds KJS_FAST_CALL in a few
places.


Layout tests and JS tests pass. Also, this baby builds on Windows! (Qt
mileage may vary...)

WebCore:

Reviewed by Sam Weinig.

Updated for rename in JavaScriptCore.

  • bridge/mac/WebCoreScriptDebugger.mm: (-[WebCoreScriptCallFrame scopeChain]): (-[WebCoreScriptCallFrame functionName]): (-[WebCoreScriptCallFrame evaluateWebScript:]):

WebKit/win:

Reviewed by Sam Weinig.

Updated for rename in JavaScriptCore.

  • WebScriptCallFrame.cpp: (WebScriptCallFrame::functionName): (WebScriptCallFrame::valueByEvaluatingJavaScriptFromString):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/ExecState.h

    r28527 r28608  
    4040   
    4141    class ActivationImp;
    42     class FunctionBodyNode;
    4342    class FunctionImp;
    4443    class GlobalFuncImp;
     
    4746    class JSVariableObject;
    4847    class ScopeChain;
     48    class ScopeNode;
    4949    struct LocalStorageEntry;
    5050   
     
    8585        ActivationImp* activationObject() { return m_activation; }
    8686        CodeType codeType() { return m_codeType; }
    87         FunctionBodyNode* currentBody() { return m_currentBody; }
     87        ScopeNode* scopeNode() { return m_scopeNode; }
    8888        FunctionImp* function() const { return m_function; }
    8989        const List* arguments() const { return m_arguments; }
     
    112112    public:
    113113        ExecState(JSGlobalObject* glob, JSObject* thisV,
    114                   FunctionBodyNode* currentBody, CodeType type = GlobalCode,
     114                  ScopeNode* scopeNode, CodeType type = GlobalCode,
    115115                  ExecState* callingExecState = 0, ExecState* currentExec = 0,
    116116                  FunctionImp* function = 0, const List* args = 0);
     
    127127        ExecState* m_callingExec;
    128128        ExecState* m_savedExec;
    129         FunctionBodyNode* m_currentBody;
     129        ScopeNode* m_scopeNode;
    130130       
    131131        FunctionImp* m_function;
Note: See TracChangeset for help on using the changeset viewer.