Changeset 185414 in webkit
- Timestamp:
- Jun 10, 2015 6:25:38 AM (9 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r185409 r185414 1 2015-06-10 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 JavaScript: Drop the “escaped reserved words as identifiers” compatibility measure 4 https://bugs.webkit.org/show_bug.cgi?id=90678 5 6 Reviewed by Darin Adler. 7 8 After ES6, escaped reserved words in identifiers are prohibited. 9 10 * parser/Lexer.cpp: 11 (JSC::Lexer<CharacterType>::parseIdentifierSlowCase): 12 * tests/stress/reserved-word-with-escape.js: Added. 13 (testSyntax): 14 (testSyntaxError): 15 1 16 2015-06-10 Andreas Kling <akling@apple.com> 2 17 -
trunk/Source/JavaScriptCore/parser/Lexer.cpp
r184337 r185414 1041 1041 template<typename CharacterType> template<bool shouldCreateIdentifier> JSTokenType Lexer<CharacterType>::parseIdentifierSlowCase(JSTokenData* tokenData, unsigned lexerFlags, bool strictMode) 1042 1042 { 1043 const ptrdiff_t remaining = m_codeEnd - m_code;1044 1043 auto identifierStart = currentSourcePtr(); 1045 1044 bool bufferRequired = false; … … 1087 1086 tokenData->ident = nullptr; 1088 1087 1089 if (LIKELY(! bufferRequired && !(lexerFlags & LexerFlagsIgnoreReservedWords))) {1088 if (LIKELY(!(lexerFlags & LexerFlagsIgnoreReservedWords))) { 1090 1089 ASSERT(shouldCreateIdentifier); 1091 // Keywords must not be recognized if there was an \uXXXX in the identifier. 1092 if (remaining < maxTokenLength) { 1093 const HashTableValue* entry = m_vm->keywords->getKeyword(*ident); 1094 ASSERT((remaining < maxTokenLength) || !entry); 1095 if (!entry) 1096 return IDENT; 1097 JSTokenType token = static_cast<JSTokenType>(entry->lexerValue()); 1098 return (token != RESERVED_IF_STRICT) || strictMode ? token : IDENT; 1099 } 1100 return IDENT; 1090 const HashTableValue* entry = m_vm->keywords->getKeyword(*ident); 1091 if (!entry) 1092 return IDENT; 1093 JSTokenType token = static_cast<JSTokenType>(entry->lexerValue()); 1094 return (token != RESERVED_IF_STRICT) || strictMode ? token : IDENT; 1101 1095 } 1102 1096
Note: See TracChangeset
for help on using the changeset viewer.