Changeset 290575 in webkit for trunk/Source/JavaScriptCore/parser/Parser.cpp
- Timestamp:
- Feb 27, 2022, 5:24:54 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Parser.cpp
r288473 r290575 200 200 public: 201 201 DepthManager(int* depth) 202 : SetForScope <int>(*depth, *depth)202 : SetForScope(*depth, *depth) 203 203 { 204 204 } … … 235 235 } 236 236 237 SetForScope <FunctionParsePhase>functionParsePhasePoisoner(m_parserState.functionParsePhase, FunctionParsePhase::Body);237 SetForScope functionParsePhasePoisoner(m_parserState.functionParsePhase, FunctionParsePhase::Body); 238 238 239 239 FunctionParameters* parameters = nullptr; … … 584 584 585 585 SourceParseMode parseMode = getAsynFunctionBodyParseMode(sourceParseMode()); 586 SetForScope <SourceParseMode>innerParseMode(m_parseMode, parseMode);586 SetForScope innerParseMode(m_parseMode, parseMode); 587 587 { 588 588 AutoPopScopeRef asyncFunctionBodyScope(this, pushScope()); … … 635 635 636 636 SourceParseMode parseMode = SourceParseMode::AsyncGeneratorBodyMode; 637 SetForScope <SourceParseMode>innerParseMode(m_parseMode, parseMode);637 SetForScope innerParseMode(m_parseMode, parseMode); 638 638 { 639 639 AutoPopScopeRef asyncFunctionBodyScope(this, pushScope()); … … 2156 2156 ConstructorKind constructorKind, SuperBinding superBinding, FunctionBodyType bodyType, unsigned parameterCount) 2157 2157 { 2158 SetForScope <bool>overrideParsingClassFieldInitializer(m_parserState.isParsingClassFieldInitializer, bodyType == StandardFunctionBodyBlock ? false : m_parserState.isParsingClassFieldInitializer);2158 SetForScope overrideParsingClassFieldInitializer(m_parserState.isParsingClassFieldInitializer, bodyType == StandardFunctionBodyBlock ? false : m_parserState.isParsingClassFieldInitializer); 2159 2159 bool isArrowFunctionBodyExpression = bodyType == ArrowFunctionBodyExpression; 2160 2160 if (!isArrowFunctionBodyExpression) { … … 2264 2264 RELEASE_ASSERT(!(SourceParseModeSet(SourceParseMode::ProgramMode, SourceParseMode::ModuleAnalyzeMode, SourceParseMode::ModuleEvaluateMode).contains(mode))); 2265 2265 TreeFormalParameterList parameterList = context.createFormalParameterList(); 2266 SetForScope <FunctionParsePhase>functionParsePhasePoisoner(m_parserState.functionParsePhase, FunctionParsePhase::Parameters);2266 SetForScope functionParsePhasePoisoner(m_parserState.functionParsePhase, FunctionParsePhase::Parameters); 2267 2267 2268 2268 if (UNLIKELY((SourceParseModeSet(SourceParseMode::ArrowFunctionMode, SourceParseMode::AsyncArrowFunctionMode).contains(mode)))) { … … 2376 2376 functionScope->setExpectedSuperBinding(expectedSuperBinding); 2377 2377 functionScope->setConstructorKind(constructorKind); 2378 SetForScope <FunctionParsePhase>functionParsePhasePoisoner(m_parserState.functionParsePhase, FunctionParsePhase::Body);2378 SetForScope functionParsePhasePoisoner(m_parserState.functionParsePhase, FunctionParsePhase::Body); 2379 2379 int functionNameStart = m_token.m_location.startOffset; 2380 2380 const Identifier* lastFunctionName = m_parserState.lastFunctionName; … … 2479 2479 // in ArrowFormalParameters, per ES6 #sec-arrow-function-definitions-static-semantics-early-errors. 2480 2480 Scope::MaybeParseAsGeneratorForScope parseAsGenerator(functionScope, parentScope->isGenerator()); 2481 SetForScope <bool>overrideAllowAwait(m_parserState.allowAwait, !parentScope->isAsyncFunction() && !isAsyncFunctionParseMode(mode));2481 SetForScope overrideAllowAwait(m_parserState.allowAwait, !parentScope->isAsyncFunction() && !isAsyncFunctionParseMode(mode)); 2482 2482 parseFunctionParameters(syntaxChecker, functionInfo); 2483 2483 propagateError(); … … 2553 2553 return true; 2554 2554 { 2555 SetForScope <bool>overrideAllowAwait(m_parserState.allowAwait, !isAsyncFunctionParseMode(mode));2555 SetForScope overrideAllowAwait(m_parserState.allowAwait, !isAsyncFunctionParseMode(mode)); 2556 2556 parseFunctionParameters(syntaxChecker, functionInfo); 2557 2557 propagateError(); … … 2720 2720 parseMode = SourceParseMode::GeneratorWrapperFunctionMode; 2721 2721 } 2722 SetForScope <SourceParseMode>innerParseMode(m_parseMode, parseMode);2722 SetForScope innerParseMode(m_parseMode, parseMode); 2723 2723 2724 2724 ParserFunctionInfo<TreeBuilder> functionInfo; … … 2780 2780 if (consume(TIMES)) 2781 2781 parseMode = SourceParseMode::AsyncGeneratorWrapperFunctionMode; 2782 SetForScope <SourceParseMode>innerParseMode(m_parseMode, parseMode);2782 SetForScope innerParseMode(m_parseMode, parseMode); 2783 2783 2784 2784 FunctionNameRequirements requirements = FunctionNameRequirements::Named; … … 3111 3111 TreeExpression initializer = 0; 3112 3112 if (consume(EQUAL)) { 3113 SetForScope <bool>overrideParsingClassFieldInitializer(m_parserState.isParsingClassFieldInitializer, true);3113 SetForScope overrideParsingClassFieldInitializer(m_parserState.isParsingClassFieldInitializer, true); 3114 3114 classScope->setExpectedSuperBinding(SuperBinding::Needed); 3115 3115 initializer = parseAssignmentExpression(context); … … 3131 3131 3132 3132 methodInfo.name = isConstructor ? info.className : ident; 3133 SetForScope <SourceParseMode>innerParseMode(m_parseMode, parseMode);3133 SetForScope innerParseMode(m_parseMode, parseMode); 3134 3134 failIfFalse((parseFunctionInfo(context, FunctionNameRequirements::Unnamed, false, isConstructor ? constructorKind : ConstructorKind::None, SuperBinding::Needed, methodStart, methodInfo, FunctionDefinitionType::Method)), "Cannot parse this method"); 3135 3135 … … 4438 4438 4439 4439 if (match(OPENPAREN)) { 4440 SetForScope <SourceParseMode>innerParseMode(m_parseMode, parseMode);4440 SetForScope innerParseMode(m_parseMode, parseMode); 4441 4441 auto method = parsePropertyMethod(context, ident); 4442 4442 propagateError(); … … 4478 4478 4479 4479 if (match(OPENPAREN)) { 4480 SetForScope <SourceParseMode>innerParseMode(m_parseMode, parseMode);4480 SetForScope innerParseMode(m_parseMode, parseMode); 4481 4481 const Identifier& ident = m_parserArena.identifierArena().makeNumericIdentifier(const_cast<VM&>(m_vm), propertyName); 4482 4482 auto method = parsePropertyMethod(context, &ident); … … 4497 4497 4498 4498 if (match(OPENPAREN)) { 4499 SetForScope <SourceParseMode>innerParseMode(m_parseMode, parseMode);4499 SetForScope innerParseMode(m_parseMode, parseMode); 4500 4500 auto method = parsePropertyMethod(context, ident); 4501 4501 propagateError(); … … 4517 4517 4518 4518 if (match(OPENPAREN)) { 4519 SetForScope <SourceParseMode>innerParseMode(m_parseMode, parseMode);4519 SetForScope innerParseMode(m_parseMode, parseMode); 4520 4520 auto method = parsePropertyMethod(context, &m_vm.propertyNames->nullIdentifier); 4521 4521 propagateError(); … … 4598 4598 if (type & PropertyNode::Getter) { 4599 4599 failIfFalse(match(OPENPAREN), "Expected a parameter list for getter definition"); 4600 SetForScope <SourceParseMode>innerParseMode(m_parseMode, SourceParseMode::GetterMode);4600 SetForScope innerParseMode(m_parseMode, SourceParseMode::GetterMode); 4601 4601 failIfFalse((parseFunctionInfo(context, FunctionNameRequirements::Unnamed, false, constructorKind, SuperBinding::Needed, getterOrSetterStartOffset, info, FunctionDefinitionType::Method)), "Cannot parse getter definition"); 4602 4602 } else if (type & PropertyNode::Setter) { 4603 4603 failIfFalse(match(OPENPAREN), "Expected a parameter list for setter definition"); 4604 SetForScope <SourceParseMode>innerParseMode(m_parseMode, SourceParseMode::SetterMode);4604 SetForScope innerParseMode(m_parseMode, SourceParseMode::SetterMode); 4605 4605 failIfFalse((parseFunctionInfo(context, FunctionNameRequirements::Unnamed, false, constructorKind, SuperBinding::Needed, getterOrSetterStartOffset, info, FunctionDefinitionType::Method)), "Cannot parse setter definition"); 4606 4606 } else if (type & PropertyNode::PrivateSetter) { 4607 4607 failIfFalse(match(OPENPAREN), "Expected a parameter list for private setter definition"); 4608 SetForScope <SourceParseMode>innerParseMode(m_parseMode, SourceParseMode::SetterMode);4608 SetForScope innerParseMode(m_parseMode, SourceParseMode::SetterMode); 4609 4609 failIfFalse((parseFunctionInfo(context, FunctionNameRequirements::Unnamed, false, constructorKind, SuperBinding::Needed, getterOrSetterStartOffset, info, FunctionDefinitionType::Method)), "Cannot parse private setter definition"); 4610 4610 } else if (type & PropertyNode::PrivateGetter) { 4611 4611 failIfFalse(match(OPENPAREN), "Expected a parameter list for private getter definition"); 4612 SetForScope <SourceParseMode>innerParseMode(m_parseMode, SourceParseMode::GetterMode);4612 SetForScope innerParseMode(m_parseMode, SourceParseMode::GetterMode); 4613 4613 failIfFalse((parseFunctionInfo(context, FunctionNameRequirements::Unnamed, false, constructorKind, SuperBinding::Needed, getterOrSetterStartOffset, info, FunctionDefinitionType::Method)), "Cannot parse private getter definition"); 4614 4614 } … … 4791 4791 if (consume(TIMES)) 4792 4792 parseMode = SourceParseMode::GeneratorWrapperFunctionMode; 4793 SetForScope <SourceParseMode>setInnerParseMode(m_parseMode, parseMode);4793 SetForScope setInnerParseMode(m_parseMode, parseMode); 4794 4794 failIfFalse((parseFunctionInfo(context, FunctionNameRequirements::None, false, ConstructorKind::None, SuperBinding::NotNeeded, functionKeywordStart, functionInfo, FunctionDefinitionType::Expression)), "Cannot parse function expression"); 4795 4795 return context.createFunctionExpr(location, functionInfo); … … 4807 4807 if (consume(TIMES)) 4808 4808 parseMode = SourceParseMode::AsyncGeneratorWrapperFunctionMode; 4809 SetForScope <SourceParseMode>setInnerParseMode(m_parseMode, parseMode);4809 SetForScope setInnerParseMode(m_parseMode, parseMode); 4810 4810 4811 4811 ParserFunctionInfo<TreeBuilder> functionInfo; … … 5384 5384 info.name = &m_vm.propertyNames->nullIdentifier; 5385 5385 5386 SetForScope <SourceParseMode>innerParseMode(m_parseMode, isAsync ? SourceParseMode::AsyncArrowFunctionMode : SourceParseMode::ArrowFunctionMode);5386 SetForScope innerParseMode(m_parseMode, isAsync ? SourceParseMode::AsyncArrowFunctionMode : SourceParseMode::ArrowFunctionMode); 5387 5387 failIfFalse((parseFunctionInfo(context, FunctionNameRequirements::Unnamed, true, ConstructorKind::None, SuperBinding::NotNeeded, functionKeywordStart, info, FunctionDefinitionType::Expression)), "Cannot parse arrow function expression"); 5388 5388
Note:
See TracChangeset
for help on using the changeset viewer.