Changeset 28540 in webkit for trunk/JavaScriptCore
- Timestamp:
- Dec 7, 2007, 4:01:13 PM (17 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r28534 r28540 1 2007-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 1 18 2007-12-07 Geoffrey Garen <[email protected]> 2 19 -
trunk/JavaScriptCore/kjs/Parser.cpp
r27846 r28540 45 45 { 46 46 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()); 48 50 } 49 51 … … 53 55 { 54 56 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()); 56 60 } 57 61 … … 60 64 int* sourceId, int* errLine, UString* errMsg) 61 65 { 62 ASSERT(!m_ progNode);66 ASSERT(!m_sourceElements); 63 67 64 68 if (errLine) … … 85 89 if (errMsg) 86 90 *errMsg = "Parse error"; 87 m_ progNode = 0;91 m_sourceElements.clear(); 88 92 } 89 }90 91 void Parser::didFinishParsing(PassRefPtr<ProgramNode> progNode)92 {93 m_progNode = progNode;94 93 } 95 94 -
trunk/JavaScriptCore/kjs/Parser.h
r27844 r28540 29 29 #include <wtf/Noncopyable.h> 30 30 #include <wtf/RefPtr.h> 31 #include "nodes.h" 31 32 32 33 namespace KJS { … … 49 50 50 51 int sourceId() { return m_sourceId; } 51 52 void didFinishParsing(PassRefPtr<ProgramNode>); 52 53 void didFinishParsing(SourceElements* sourceElements) 54 { 55 m_sourceElements.set(sourceElements); 56 } 53 57 54 58 private: … … 61 65 62 66 int m_sourceId; 63 RefPtr<ProgramNode> m_progNode;67 OwnPtr<SourceElements> m_sourceElements; 64 68 }; 65 69 -
trunk/JavaScriptCore/kjs/function.cpp
r28533 r28540 29 29 #include "ExecState.h" 30 30 #include "JSGlobalObject.h" 31 #include " JSVariableObject.h"31 #include "Parser.h" 32 32 #include "PropertyNameArray.h" 33 33 #include "debugger.h" -
trunk/JavaScriptCore/kjs/grammar.y
r28468 r28540 879 879 880 880 Program: 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()); } 883 883 ; 884 884 -
trunk/JavaScriptCore/kjs/nodes.cpp
r28527 r28540 3664 3664 3665 3665 BlockNode::BlockNode(SourceElements* children) 3666 { 3667 ASSERT(children); 3666 : m_children(children) 3667 { 3668 ASSERT(m_children); 3668 3669 m_mayHaveDeclarations = true; 3669 m_children.set(children);3670 3670 } 3671 3671 -
trunk/JavaScriptCore/kjs/nodes.h
r27842 r28540 27 27 #define NODES_H_ 28 28 29 #include "Parser.h"30 29 #include "internal.h" 31 30 #include "regexp.h"
Note:
See TracChangeset
for help on using the changeset viewer.