Changeset 187111 in webkit for trunk/Source/JavaScriptCore/parser/Parser.cpp
- Timestamp:
- Jul 21, 2015, 12:18:47 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Parser.cpp
r187108 r187111 764 764 break; 765 765 766 Identifier propertyName;766 const Identifier* propertyName = nullptr; 767 767 TreeDestructuringPattern innerPattern = 0; 768 768 JSTokenLocation location = m_token.m_location; 769 769 if (match(IDENT) || isLETMaskedAsIDENT()) { 770 770 failIfTrue(match(LET) && (kind == DestructureToLet || kind == DestructureToConst), "Can't use 'let' as an identifier name for a LexicalDeclaration"); 771 propertyName = *m_token.m_data.ident;771 propertyName = m_token.m_data.ident; 772 772 JSToken identifierToken = m_token; 773 773 next(); … … 775 775 innerPattern = parseDestructuringPattern(context, kind, bindingContext, depth + 1); 776 776 else 777 innerPattern = createBindingPattern(context, kind, propertyName, depth, identifierToken, bindingContext);777 innerPattern = createBindingPattern(context, kind, *propertyName, depth, identifierToken, bindingContext); 778 778 } else { 779 779 JSTokenType tokenType = m_token.m_type; … … 781 781 case DOUBLE: 782 782 case INTEGER: 783 propertyName = Identifier::from(m_vm, m_token.m_data.doubleValue);783 propertyName = &m_parserArena.identifierArena().makeNumericIdentifier(const_cast<VM*>(m_vm), m_token.m_data.doubleValue); 784 784 break; 785 785 case STRING: 786 propertyName = *m_token.m_data.ident;786 propertyName = m_token.m_data.ident; 787 787 wasString = true; 788 788 break; … … 793 793 failWithMessage("Expected a property name"); 794 794 } 795 propertyName = *m_token.m_data.ident;795 propertyName = m_token.m_data.ident; 796 796 break; 797 797 } … … 800 800 if (kind == DestructureToExpressions) 801 801 return 0; 802 semanticFailIfTrue(tokenType == RESERVED, "Cannot use abbreviated destructuring syntax for reserved name '", propertyName .impl(), "'");803 semanticFailIfTrue(tokenType == RESERVED_IF_STRICT, "Cannot use abbreviated destructuring syntax for reserved name '", propertyName .impl(), "' in strict mode");804 semanticFailIfTrue(tokenType & KeywordTokenFlag, "Cannot use abbreviated destructuring syntax for keyword '", propertyName .impl(), "'");802 semanticFailIfTrue(tokenType == RESERVED, "Cannot use abbreviated destructuring syntax for reserved name '", propertyName->impl(), "'"); 803 semanticFailIfTrue(tokenType == RESERVED_IF_STRICT, "Cannot use abbreviated destructuring syntax for reserved name '", propertyName->impl(), "' in strict mode"); 804 semanticFailIfTrue(tokenType & KeywordTokenFlag, "Cannot use abbreviated destructuring syntax for keyword '", propertyName->impl(), "'"); 805 805 806 806 failWithMessage("Expected a ':' prior to a named destructuring property"); … … 813 813 TreeExpression defaultValue = parseDefaultValueForDestructuringPattern(context); 814 814 failIfTrue(kind == DestructureToParameters && defaultValue, "Default values in destructuring parameters are currently not supported"); 815 context.appendObjectPatternEntry(objectPattern, location, wasString, propertyName, innerPattern, defaultValue); 815 ASSERT(propertyName); 816 context.appendObjectPatternEntry(objectPattern, location, wasString, *propertyName, innerPattern, defaultValue); 816 817 } while (consume(COMMA)); 817 818
Note:
See TracChangeset
for help on using the changeset viewer.