Changeset 192586 in webkit for trunk/Source/JavaScriptCore/parser/Parser.h
- Timestamp:
- Nov 18, 2015, 2:01:19 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Parser.h
r192436 r192586 425 425 } 426 426 427 enum BindingResult {428 BindingFailed,429 StrictBindingFailed,430 BindingSucceeded431 };432 BindingResult declareBoundParameter(const Identifier* ident)433 {434 bool isArgumentsIdent = isArguments(m_vm, ident);435 auto addResult = m_declaredVariables.add(ident->impl());436 addResult.iterator->value.setIsVar(); // Treat destructuring parameters as "var"s.437 bool isValidStrictMode = addResult.isNewEntry && !isEval(m_vm, ident) && !isArgumentsIdent;438 m_isValidStrictMode = m_isValidStrictMode && isValidStrictMode;439 440 if (isArgumentsIdent)441 m_shadowsArguments = true;442 if (!addResult.isNewEntry)443 return BindingFailed;444 return isValidStrictMode ? BindingSucceeded : StrictBindingFailed;445 }446 447 427 void getUsedVariables(IdentifierSet& usedVariables) 448 428 { … … 1055 1035 bool isValidStrictMode() { return currentScope()->isValidStrictMode(); } 1056 1036 DeclarationResultMask declareParameter(const Identifier* ident) { return currentScope()->declareParameter(ident); } 1057 Scope::BindingResult declareBoundParameter(const Identifier* ident) { return currentScope()->declareBoundParameter(ident); }1058 1037 bool breakIsValid() 1059 1038 { … … 1160 1139 template <class TreeBuilder> TreeSourceElements parseArrowFunctionSingleExpressionBodySourceElements(TreeBuilder&); 1161 1140 template <class TreeBuilder> TreeExpression parseArrowFunctionExpression(TreeBuilder&); 1162 template <class TreeBuilder> NEVER_INLINE TreeDestructuringPattern createBindingPattern(TreeBuilder&, DestructuringKind, ExportType, const Identifier&, int depth,JSToken, AssignmentContext, const Identifier** duplicateIdentifier);1141 template <class TreeBuilder> NEVER_INLINE TreeDestructuringPattern createBindingPattern(TreeBuilder&, DestructuringKind, ExportType, const Identifier&, JSToken, AssignmentContext, const Identifier** duplicateIdentifier); 1163 1142 template <class TreeBuilder> NEVER_INLINE TreeDestructuringPattern createAssignmentElement(TreeBuilder&, TreeExpression&, const JSTextPosition&, const JSTextPosition&); 1164 1143 template <class TreeBuilder> NEVER_INLINE TreeDestructuringPattern parseBindingOrAssignmentElement(TreeBuilder& context, DestructuringKind, ExportType, const Identifier** duplicateIdentifier, bool* hasDestructuringPattern, AssignmentContext bindingContext, int depth);
Note:
See TracChangeset
for help on using the changeset viewer.