Changeset 188417 in webkit for trunk/Source/JavaScriptCore/parser/Parser.h
- Timestamp:
- Aug 13, 2015, 4:55:35 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Parser.h
r188355 r188417 616 616 public: 617 617 Parser( 618 VM*, const SourceCode&, JSParserBuiltinMode, JSParserStrictMode, JSParserCodeType,618 VM*, const SourceCode&, JSParserBuiltinMode, JSParserStrictMode, SourceParseMode, 619 619 ConstructorKind defaultConstructorKind = ConstructorKind::None, ThisTDZMode = ThisTDZMode::CheckIfNeeded); 620 620 ~Parser(); 621 621 622 622 template <class ParsedNode> 623 std::unique_ptr<ParsedNode> parse(ParserError&, const Identifier&, FunctionParseMode, ModuleParseMode);623 std::unique_ptr<ParsedNode> parse(ParserError&, const Identifier&, SourceParseMode); 624 624 625 625 JSTextPosition positionBeforeLastNewline() const { return m_lexer->positionBeforeLastNewline(); } … … 849 849 850 850 Parser(); 851 String parseInner(const Identifier&, FunctionParseMode, ModuleParseMode);851 String parseInner(const Identifier&, SourceParseMode); 852 852 853 853 void didFinishParsing(SourceElements*, DeclarationStacks::FunctionStack&, VariableEnvironment&, CodeFeatures, int, const Vector<RefPtr<UniquedStringImpl>>&&); … … 1104 1104 template <class TreeBuilder> TreeExpression parsePropertyMethod(TreeBuilder& context, const Identifier* methodName); 1105 1105 template <class TreeBuilder> TreeProperty parseGetterSetter(TreeBuilder&, bool strict, PropertyNode::Type, unsigned getterOrSetterStartOffset, ConstructorKind = ConstructorKind::None, SuperBinding = SuperBinding::NotNeeded); 1106 template <class TreeBuilder> ALWAYS_INLINE TreeFunctionBody parseFunctionBody(TreeBuilder&, const JSTokenLocation&, int, int functionKeywordStart, int functionNameStart, int parametersStart, ConstructorKind, FunctionBodyType, unsigned, FunctionParseMode);1106 template <class TreeBuilder> ALWAYS_INLINE TreeFunctionBody parseFunctionBody(TreeBuilder&, const JSTokenLocation&, int, int functionKeywordStart, int functionNameStart, int parametersStart, ConstructorKind, FunctionBodyType, unsigned, SourceParseMode); 1107 1107 template <class TreeBuilder> ALWAYS_INLINE bool parseFormalParameters(TreeBuilder&, TreeFormalParameterList, unsigned&); 1108 1108 enum VarDeclarationListContext { ForLoopContext, VarDeclarationContext }; … … 1114 1114 template <class TreeBuilder> NEVER_INLINE TreeDestructuringPattern tryParseDestructuringPatternExpression(TreeBuilder&, AssignmentContext); 1115 1115 template <class TreeBuilder> NEVER_INLINE TreeExpression parseDefaultValueForDestructuringPattern(TreeBuilder&); 1116 template <class TreeBuilder> TreeSourceElements parseModuleSourceElements(TreeBuilder&, ModuleParseMode);1116 template <class TreeBuilder> TreeSourceElements parseModuleSourceElements(TreeBuilder&, SourceParseMode); 1117 1117 enum class ImportSpecifierType { NamespaceImport, NamedImport, DefaultImport }; 1118 1118 template <class TreeBuilder> typename TreeBuilder::ImportSpecifier parseImportClauseItem(TreeBuilder&, ImportSpecifierType); 1119 template <class TreeBuilder> typename TreeBuilder::Module Specifier parseModuleSpecifier(TreeBuilder&);1119 template <class TreeBuilder> typename TreeBuilder::ModuleName parseModuleName(TreeBuilder&); 1120 1120 template <class TreeBuilder> TreeStatement parseImportDeclaration(TreeBuilder&); 1121 1121 template <class TreeBuilder> typename TreeBuilder::ExportSpecifier parseExportSpecifier(TreeBuilder& context, Vector<const Identifier*>& maybeLocalNames, bool& hasKeywordForLocalBindings); 1122 1122 template <class TreeBuilder> TreeStatement parseExportDeclaration(TreeBuilder&); 1123 1123 1124 template <class TreeBuilder> NEVER_INLINE bool parseFunctionInfo(TreeBuilder&, FunctionRequirements, FunctionParseMode, bool nameIsInContainingScope, ConstructorKind, SuperBinding, int functionKeywordStart, ParserFunctionInfo<TreeBuilder>&, FunctionParseType);1125 1126 template <class TreeBuilder> NEVER_INLINE int parseFunctionParameters(TreeBuilder&, FunctionParseMode, ParserFunctionInfo<TreeBuilder>&);1124 template <class TreeBuilder> NEVER_INLINE bool parseFunctionInfo(TreeBuilder&, FunctionRequirements, SourceParseMode, bool nameIsInContainingScope, ConstructorKind, SuperBinding, int functionKeywordStart, ParserFunctionInfo<TreeBuilder>&, FunctionParseType); 1125 1126 template <class TreeBuilder> NEVER_INLINE int parseFunctionParameters(TreeBuilder&, SourceParseMode, ParserFunctionInfo<TreeBuilder>&); 1127 1127 1128 1128 #if ENABLE(ES6_CLASS_SYNTAX) … … 1248 1248 CodeFeatures m_features; 1249 1249 int m_numConstants; 1250 JSParserCodeType m_codeType;1251 1250 1252 1251 struct DepthManager { … … 1271 1270 template <typename LexerType> 1272 1271 template <class ParsedNode> 1273 std::unique_ptr<ParsedNode> Parser<LexerType>::parse(ParserError& error, const Identifier& calleeName, FunctionParseMode parseMode, ModuleParseMode moduleParseMode)1272 std::unique_ptr<ParsedNode> Parser<LexerType>::parse(ParserError& error, const Identifier& calleeName, SourceParseMode parseMode) 1274 1273 { 1275 1274 int errLine; … … 1288 1287 unsigned startColumn = m_source->startColumn() - 1; 1289 1288 1290 String parseError = parseInner(calleeName, parseMode , moduleParseMode);1289 String parseError = parseInner(calleeName, parseMode); 1291 1290 1292 1291 int lineNumber = m_lexer->lineNumber(); … … 1354 1353 VM* vm, const SourceCode& source, 1355 1354 const Identifier& name, JSParserBuiltinMode builtinMode, 1356 JSParserStrictMode strictMode, JSParserCodeType codeType,1355 JSParserStrictMode strictMode, SourceParseMode parseMode, 1357 1356 ParserError& error, JSTextPosition* positionBeforeLastNewline = nullptr, 1358 FunctionParseMode parseMode = NotAFunctionMode, ConstructorKind defaultConstructorKind = ConstructorKind::None, 1359 ThisTDZMode thisTDZMode = ThisTDZMode::CheckIfNeeded, 1360 ModuleParseMode moduleParseMode = ModuleParseMode::Analyze) 1357 ConstructorKind defaultConstructorKind = ConstructorKind::None, 1358 ThisTDZMode thisTDZMode = ThisTDZMode::CheckIfNeeded) 1361 1359 { 1362 1360 SamplingRegion samplingRegion("Parsing"); … … 1364 1362 ASSERT(!source.provider()->source().isNull()); 1365 1363 if (source.provider()->source().is8Bit()) { 1366 Parser<Lexer<LChar>> parser(vm, source, builtinMode, strictMode, codeType, defaultConstructorKind, thisTDZMode);1367 std::unique_ptr<ParsedNode> result = parser.parse<ParsedNode>(error, name, parseMode , moduleParseMode);1364 Parser<Lexer<LChar>> parser(vm, source, builtinMode, strictMode, parseMode, defaultConstructorKind, thisTDZMode); 1365 std::unique_ptr<ParsedNode> result = parser.parse<ParsedNode>(error, name, parseMode); 1368 1366 if (positionBeforeLastNewline) 1369 1367 *positionBeforeLastNewline = parser.positionBeforeLastNewline(); … … 1377 1375 } 1378 1376 ASSERT_WITH_MESSAGE(defaultConstructorKind == ConstructorKind::None, "BuiltinExecutables::createDefaultConstructor should always use a 8-bit string"); 1379 Parser<Lexer<UChar>> parser(vm, source, builtinMode, strictMode, codeType, defaultConstructorKind, thisTDZMode);1380 std::unique_ptr<ParsedNode> result = parser.parse<ParsedNode>(error, name, parseMode , moduleParseMode);1377 Parser<Lexer<UChar>> parser(vm, source, builtinMode, strictMode, parseMode, defaultConstructorKind, thisTDZMode); 1378 std::unique_ptr<ParsedNode> result = parser.parse<ParsedNode>(error, name, parseMode); 1381 1379 if (positionBeforeLastNewline) 1382 1380 *positionBeforeLastNewline = parser.positionBeforeLastNewline();
Note:
See TracChangeset
for help on using the changeset viewer.