Changeset 33979 in webkit for trunk/JavaScriptCore/kjs/Parser.cpp


Ignore:
Timestamp:
May 21, 2008, 6:20:45 PM (17 years ago)
Author:
[email protected]
Message:

Merge squirrelfish branch into trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/Parser.cpp

    r31944 r33979  
    2525#include "config.h"
    2626#include "Parser.h"
     27#include "debugger.h"
    2728
    2829#include "lexer.h"
     
    4344}
    4445
    45 void Parser::parse(int startingLineNumber,
    46     const UChar* code, unsigned length,
    47     int* sourceId, int* errLine, UString* errMsg)
     46void Parser::parse(ExecState* exec, const UString& sourceURL, int startingLineNumber,
     47                   PassRefPtr<SourceProvider> prpSource,
     48                   int* sourceId, int* errLine, UString* errMsg)
    4849{
    4950    ASSERT(!m_sourceElements);
     51   
     52    int defaultSourceId;
     53    int defaultErrLine;
     54    UString defaultErrMsg;
     55   
     56    RefPtr<SourceProvider> source = prpSource;
    5057
    51     if (errLine)
    52         *errLine = -1;
    53     if (errMsg)
    54         *errMsg = 0;
     58    if (!sourceId)
     59        sourceId = &defaultSourceId;
     60    if (!errLine)
     61        errLine = &defaultErrLine;
     62    if (!errMsg)
     63        errMsg = &defaultErrMsg;
     64
     65    *errLine = -1;
     66    *errMsg = 0;
    5567       
    5668    Lexer& lexer = KJS::lexer();
    5769
    58     lexer.setCode(startingLineNumber, code, length);
    59     m_sourceId++;
    60     if (sourceId)
    61         *sourceId = m_sourceId;
     70    lexer.setCode(startingLineNumber, source);
     71    *sourceId = ++m_sourceId;
    6272
    6373    int parseError = kjsyyparse(&lexer);
     
    6878
    6979    if (parseError || lexError) {
    70         if (errLine)
    71             *errLine = lexer.lineNo();
    72         if (errMsg)
    73             *errMsg = "Parse error";
     80        *errLine = lexer.lineNo();
     81        *errMsg = "Parse error";
    7482        m_sourceElements.clear();
    7583    }
     84   
     85    if (Debugger* debugger = exec->dynamicGlobalObject()->debugger())
     86        debugger->sourceParsed(exec, *sourceId, sourceURL, *source, startingLineNumber, *errLine, *errMsg);
    7687}
    7788
     
    7990                              ParserRefCountedData<DeclarationStacks::FunctionStack>* funcStack, bool usesEval, bool needsClosure, int lastLine)
    8091{
    81     m_sourceElements = sourceElements ? sourceElements : new SourceElements;
     92    m_sourceElements = sourceElements;
    8293    m_varDeclarations = varStack;
    8394    m_funcDeclarations = funcStack;
Note: See TracChangeset for help on using the changeset viewer.