Changeset 34607 in webkit for trunk/JavaScriptCore/kjs/lexer.cpp
- Timestamp:
- Jun 16, 2008, 4:28:38 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/lexer.cpp
r34581 r34607 60 60 static const size_t initialStringTableCapacity = 64; 61 61 62 Lexer::Lexer( )62 Lexer::Lexer(JSGlobalData* globalData) 63 63 : yylineno(1) 64 64 , restrKeyword(false) … … 74 74 , next2(0) 75 75 , next3(0) 76 , m_globalData(globalData) 76 77 , mainTable(KJS::mainTable) 77 78 { … … 550 551 token = IDENT; 551 552 break; 552 case IdentifierOrKeyword: 553 case IdentifierOrKeyword: { 553 554 lvalp->ident = makeIdentifier(m_buffer16); 554 if ((token = mainTable.value(*lvalp->ident)) < 0) { 555 const HashEntry* entry = mainTable.entry(m_globalData, *lvalp->ident); 556 if (!entry) { 555 557 // Lookup for keyword failed, means this is an identifier. 556 558 token = IDENT; 557 559 break; 558 560 } 561 token = entry->integerValue; 559 562 // Hack for "f = function somename() { ... }"; too hard to get into the grammar. 560 563 eatNextIdentifier = token == FUNCTION && lastToken == '='; … … 562 565 restrKeyword = true; 563 566 break; 567 } 564 568 case String: 565 569 lvalp->string = makeUString(m_buffer16); … … 887 891 Identifier* Lexer::makeIdentifier(const Vector<UChar>& buffer) 888 892 { 889 KJS::Identifier* identifier = new KJS::Identifier( buffer.data(), buffer.size());893 KJS::Identifier* identifier = new KJS::Identifier(m_globalData, buffer.data(), buffer.size()); 890 894 m_identifiers.append(identifier); 891 895 return identifier;
Note:
See TracChangeset
for help on using the changeset viewer.