~ubuntu-branches/ubuntu/karmic/webkit/karmic-proposed

« back to all changes in this revision

Viewing changes to JavaScriptCore/parser/Parser.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Gustavo Noronha Silva
  • Date: 2009-05-15 18:30:58 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20090515183058-50q5exjo9b1kxy9s
Tags: 1.1.7-1
* New upstream release
* debian/libwebkit-1.0-2.symbols:
- updated with the new symbols in 1.1.7
* debian/libwebkit-dev.install, debian/libwebkit-dev.links,
  debian/rules:
- Build, and ship gtk-doc documentation (Closes: #526683)
* debian/copyright:
- updated.

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
 
40
40
void Parser::parse(JSGlobalData* globalData, int* errLine, UString* errMsg)
41
41
{
42
 
    ASSERT(!m_sourceElements);
 
42
    m_sourceElements = 0;
43
43
 
44
44
    int defaultErrLine;
45
45
    UString defaultErrMsg;
53
53
    *errMsg = 0;
54
54
 
55
55
    Lexer& lexer = *globalData->lexer;
56
 
    lexer.setCode(*m_source);
 
56
    lexer.setCode(*m_source, m_arena);
57
57
 
58
58
    int parseError = jscyyparse(globalData);
59
59
    bool lexError = lexer.sawError();
 
60
    int lineNumber = lexer.lineNumber();
60
61
    lexer.clear();
61
62
 
62
 
    ParserRefCounted::deleteNewObjects(globalData);
63
 
 
64
63
    if (parseError || lexError) {
65
 
        *errLine = lexer.lineNo();
 
64
        *errLine = lineNumber;
66
65
        *errMsg = "Parse error";
67
 
        m_sourceElements.clear();
 
66
        m_sourceElements = 0;
68
67
    }
69
68
}
70
69
 
77
76
    parse(globalData, 0, 0);
78
77
    ASSERT(m_sourceElements);
79
78
 
80
 
    functionBodyNode->adoptData(std::auto_ptr<ScopeNodeData>(new ScopeNodeData(m_sourceElements.get(),
81
 
                                                                               m_varDeclarations ? &m_varDeclarations->data : 0, 
82
 
                                                                               m_funcDeclarations ? &m_funcDeclarations->data : 0,
83
 
                                                                               m_numConstants)));
 
79
    functionBodyNode->adoptData(std::auto_ptr<ScopeNodeData>(new ScopeNodeData(globalData->parser->arena(),
 
80
        m_sourceElements,
 
81
        m_varDeclarations ? &m_varDeclarations->data : 0, 
 
82
        m_funcDeclarations ? &m_funcDeclarations->data : 0,
 
83
        m_numConstants)));
84
84
    bool usesArguments = functionBodyNode->usesArguments();
85
85
    functionBodyNode->setFeatures(m_features);
86
86
    if (usesArguments && !functionBodyNode->usesArguments())
87
87
        functionBodyNode->setUsesArguments();
88
88
 
 
89
    ASSERT(globalData->parser->arena().isEmpty());
 
90
 
89
91
    m_source = 0;
90
92
    m_sourceElements = 0;
91
93
    m_varDeclarations = 0;
92
94
    m_funcDeclarations = 0;
93
95
}
94
96
 
95
 
void Parser::didFinishParsing(SourceElements* sourceElements, ParserRefCountedData<DeclarationStacks::VarStack>* varStack, 
96
 
                              ParserRefCountedData<DeclarationStacks::FunctionStack>* funcStack, CodeFeatures features, int lastLine, int numConstants)
 
97
void Parser::didFinishParsing(SourceElements* sourceElements, ParserArenaData<DeclarationStacks::VarStack>* varStack, 
 
98
                              ParserArenaData<DeclarationStacks::FunctionStack>* funcStack, CodeFeatures features, int lastLine, int numConstants)
97
99
{
98
100
    m_sourceElements = sourceElements;
99
101
    m_varDeclarations = varStack;