Changeset 28540 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Dec 7, 2007, 4:01:13 PM (17 years ago)
Author:
[email protected]
Message:

Reviewed by Sam Weinig.


Refactored parsing of global code: Removed the assumption that
ProgramNode inherits from FunctionBodyNode from the parser.

  • kjs/Parser.cpp: (KJS::Parser::parseProgram): (KJS::Parser::parseFunctionBody): (KJS::Parser::parse):
  • kjs/Parser.h: (KJS::Parser::didFinishParsing):
  • kjs/function.cpp:
  • kjs/grammar.y:
  • kjs/nodes.h:
Location:
trunk/JavaScriptCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r28534 r28540  
     12007-12-07  Geoffrey Garen  <[email protected]>
     2
     3        Reviewed by Sam Weinig.
     4       
     5        Refactored parsing of global code: Removed the assumption that
     6        ProgramNode inherits from FunctionBodyNode from the parser.
     7
     8        * kjs/Parser.cpp:
     9        (KJS::Parser::parseProgram):
     10        (KJS::Parser::parseFunctionBody):
     11        (KJS::Parser::parse):
     12        * kjs/Parser.h:
     13        (KJS::Parser::didFinishParsing):
     14        * kjs/function.cpp:
     15        * kjs/grammar.y:
     16        * kjs/nodes.h:
     17
    1182007-12-07  Geoffrey Garen  <[email protected]>
    219
  • trunk/JavaScriptCore/kjs/Parser.cpp

    r27846 r28540  
    4545{
    4646    parse(sourceURL, startingLineNumber, code, length, sourceId, errLine, errMsg);
    47     return m_progNode.release();
     47    if (!m_sourceElements)
     48        return 0;
     49    return new ProgramNode(m_sourceElements.release());
    4850}
    4951
     
    5355{
    5456    parse(sourceURL, startingLineNumber, code, length, sourceId, errLine, errMsg);
    55     return m_progNode.release();
     57    if (!m_sourceElements)
     58        return 0;
     59    return new FunctionBodyNode(m_sourceElements.release());
    5660}
    5761
     
    6064    int* sourceId, int* errLine, UString* errMsg)
    6165{
    62     ASSERT(!m_progNode);
     66    ASSERT(!m_sourceElements);
    6367
    6468    if (errLine)
     
    8589        if (errMsg)
    8690            *errMsg = "Parse error";
    87         m_progNode = 0;
     91        m_sourceElements.clear();
    8892    }
    89 }
    90 
    91 void Parser::didFinishParsing(PassRefPtr<ProgramNode> progNode)
    92 {
    93     m_progNode = progNode;
    9493}
    9594
  • trunk/JavaScriptCore/kjs/Parser.h

    r27844 r28540  
    2929#include <wtf/Noncopyable.h>
    3030#include <wtf/RefPtr.h>
     31#include "nodes.h"
    3132
    3233namespace KJS {
     
    4950
    5051        int sourceId() { return m_sourceId; }
    51        
    52         void didFinishParsing(PassRefPtr<ProgramNode>);
     52
     53        void didFinishParsing(SourceElements* sourceElements)
     54        {
     55            m_sourceElements.set(sourceElements);
     56        }
    5357
    5458    private:
     
    6165
    6266        int m_sourceId;
    63         RefPtr<ProgramNode> m_progNode;
     67        OwnPtr<SourceElements> m_sourceElements;
    6468    };
    6569   
  • trunk/JavaScriptCore/kjs/function.cpp

    r28533 r28540  
    2929#include "ExecState.h"
    3030#include "JSGlobalObject.h"
    31 #include "JSVariableObject.h"
     31#include "Parser.h"
    3232#include "PropertyNameArray.h"
    3333#include "debugger.h"
  • trunk/JavaScriptCore/kjs/grammar.y

    r28468 r28540  
    879879
    880880Program:
    881     /* not in spec */                   { parser().didFinishParsing(new ProgramNode(new SourceElements)); }
    882     | SourceElements                    { parser().didFinishParsing(new ProgramNode($1->release())); }
     881    /* not in spec */                   { parser().didFinishParsing(new SourceElements); }
     882    | SourceElements                    { parser().didFinishParsing($1->release()); }
    883883;
    884884
  • trunk/JavaScriptCore/kjs/nodes.cpp

    r28527 r28540  
    36643664
    36653665BlockNode::BlockNode(SourceElements* children)
    3666 {
    3667     ASSERT(children);
     3666    : m_children(children)
     3667{
     3668    ASSERT(m_children);
    36683669    m_mayHaveDeclarations = true;
    3669     m_children.set(children);
    36703670}
    36713671
  • trunk/JavaScriptCore/kjs/nodes.h

    r27842 r28540  
    2727#define NODES_H_
    2828
    29 #include "Parser.h"
    3029#include "internal.h"
    3130#include "regexp.h"
Note: See TracChangeset for help on using the changeset viewer.