Changeset 38420 in webkit for trunk/JavaScriptCore/parser


Ignore:
Timestamp:
Nov 15, 2008, 12:22:22 AM (17 years ago)
Author:
[email protected]
Message:

2008-11-15 Maciej Stachowiak <[email protected]>

Reviewed by Sam Weinig.


  • Remove SymbolTable from FunctionBodyNode and move it to CodeBlock


It's not needed for functions that have never been executed, so no
need to waste the memory. Saves ~4M on membuster after 30 pages.

  • VM/CodeBlock.h:
  • VM/Machine.cpp: (JSC::Machine::retrieveArguments):
  • parser/Nodes.cpp: (JSC::EvalNode::generateCode): (JSC::FunctionBodyNode::generateCode):
  • parser/Nodes.h:
  • runtime/JSActivation.h: (JSC::JSActivation::JSActivationData::JSActivationData):
Location:
trunk/JavaScriptCore/parser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/parser/Nodes.cpp

    r38349 r38420  
    24322432    JSGlobalObject* globalObject = scopeChain.globalObject();
    24332433
    2434     SymbolTable symbolTable;
    24352434    m_code.set(new EvalCodeBlock(this, globalObject, source().provider()));
    24362435
    2437     CodeGenerator generator(this, globalObject->debugger(), scopeChain, &symbolTable, m_code.get());
     2436    CodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable, m_code.get());
    24382437    generator.generate();
    24392438}
     
    25012500    m_code.set(new CodeBlock(this, FunctionCode, source().provider(), source().startOffset()));
    25022501
    2503     CodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_symbolTable, m_code.get());
     2502    CodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable, m_code.get());
    25042503    generator.generate();
    25052504}
  • trunk/JavaScriptCore/parser/Nodes.h

    r38349 r38420  
    21532153        virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL;
    21542154       
    2155         SymbolTable& symbolTable() { return m_symbolTable; } // FIXME: Remove this
    2156        
    21572155        CodeBlock& byteCode(ScopeChainNode* scopeChain) JSC_FAST_CALL
    21582156        {
     
    22022200        Identifier* m_parameters;
    22032201        size_t m_parameterCount;
    2204         SymbolTable m_symbolTable;
    22052202        OwnPtr<CodeBlock> m_code;
    22062203        unsigned m_refCount;
Note: See TracChangeset for help on using the changeset viewer.