Ignore:
Timestamp:
May 31, 2016, 9:30:57 PM (9 years ago)
Author:
Yusuke Suzuki
Message:

Unreviewed, roll out r201481, r201523: 0.3% regression in Octane code-load
https://bugs.webkit.org/show_bug.cgi?id=158249

Source/JavaScriptCore:

  • API/JSScriptRef.cpp:

(parseScript):

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/AsyncFunctionPrototype.js: Removed.

(asyncFunctionResume): Deleted.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutable):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset): Deleted.
(JSC::computeDefsForBytecodeOffset): Deleted.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::dumpBytecode): Deleted.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::isArrowFunction):
(JSC::UnlinkedCodeBlock::isOrdinaryArrowFunction): Deleted.
(JSC::UnlinkedCodeBlock::isAsyncArrowFunction): Deleted.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewMethodDefinition):
(JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon): Deleted.
(JSC::BytecodeGenerator::emitNewFunction): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::makeFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionNode::emitBytecode): Deleted.

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::parse):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass): Deleted.

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emitNewFuncCommon): Deleted.
(JSC::JIT::emit_op_new_async_func): Deleted.
(JSC::JIT::emitNewFuncExprCommon): Deleted.
(JSC::JIT::emit_op_new_async_func_exp): Deleted.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jsc.cpp:

(runInteractive):
(printUsageStatement): Deleted.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL): Deleted.

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createAsyncFunctionBody): Deleted.

  • parser/Keywords.table:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
(JSC::Parser<LexerType>::printUnexpectedTokenText):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements): Deleted.
(JSC::Parser<LexerType>::parseVariableDeclarationList): Deleted.
(JSC::Parser<LexerType>::parseDestructuringPattern): Deleted.
(JSC::Parser<LexerType>::parseFunctionDeclarationStatement): Deleted.
(JSC::Parser<LexerType>::parseFormalParameters): Deleted.
(JSC::stringForFunctionMode): Deleted.
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration): Deleted.
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement): Deleted.
(JSC::Parser<LexerType>::parseAwaitExpression): Deleted.
(JSC::Parser<LexerType>::parseAsyncFunctionExpression): Deleted.
(JSC::Parser<LexerType>::parseUnaryExpression): Deleted.

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Parser::ExpressionErrorClassifier::propagateExpressionErrorClass):
(JSC::Parser::closestParentOrdinaryFunctionNonLexicalScope):
(JSC::Parser::pushScope):
(JSC::Parser::popScopeInternal):
(JSC::Parser::matchSpecIdentifier):
(JSC::parse):
(JSC::Scope::setSourceParseMode): Deleted.
(JSC::Scope::isAsyncFunction): Deleted.
(JSC::Scope::isAsyncFunctionBoundary): Deleted.
(JSC::Scope::isModule): Deleted.
(JSC::Scope::setIsFunction): Deleted.
(JSC::Scope::setIsAsyncArrowFunction): Deleted.
(JSC::Scope::setIsAsyncFunction): Deleted.
(JSC::Scope::setIsAsyncFunctionBody): Deleted.
(JSC::Scope::setIsAsyncArrowFunctionBody): Deleted.
(JSC::Parser::ExpressionErrorClassifier::forceClassifyExpressionError): Deleted.
(JSC::Parser::ExpressionErrorClassifier::indicatesPossibleAsyncArrowFunction): Deleted.
(JSC::Parser::forceClassifyExpressionError): Deleted.
(JSC::Parser::declarationTypeToVariableKind): Deleted.
(JSC::Parser::upperScope): Deleted.
(JSC::Parser::isDisallowedIdentifierAwait): Deleted.
(JSC::Parser::disallowedIdentifierAwaitReason): Deleted.

  • parser/ParserModes.h:

(JSC::isFunctionParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):
(JSC::SourceParseModeSet::SourceParseModeSet): Deleted.
(JSC::SourceParseModeSet::contains): Deleted.
(JSC::SourceParseModeSet::mergeSourceParseModes): Deleted.
(JSC::isAsyncFunctionParseMode): Deleted.
(JSC::isAsyncArrowFunctionParseMode): Deleted.
(JSC::isAsyncFunctionWrapperParseMode): Deleted.
(JSC::isAsyncFunctionBodyParseMode): Deleted.
(JSC::constructAbilityForParseMode): Deleted.

  • parser/ParserTokens.h:
  • parser/SourceCodeKey.h:

(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::operator==):
(JSC::SourceCodeKey::runtimeFlags): Deleted.

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createAsyncFunctionBody): Deleted.

  • runtime/AsyncFunctionConstructor.cpp: Removed.

(JSC::AsyncFunctionConstructor::AsyncFunctionConstructor): Deleted.
(JSC::AsyncFunctionConstructor::finishCreation): Deleted.
(JSC::callAsyncFunctionConstructor): Deleted.
(JSC::constructAsyncFunctionConstructor): Deleted.
(JSC::AsyncFunctionConstructor::getCallData): Deleted.
(JSC::AsyncFunctionConstructor::getConstructData): Deleted.

  • runtime/AsyncFunctionConstructor.h: Removed.

(JSC::AsyncFunctionConstructor::create): Deleted.
(JSC::AsyncFunctionConstructor::createStructure): Deleted.

  • runtime/AsyncFunctionPrototype.cpp: Removed.

(JSC::AsyncFunctionPrototype::AsyncFunctionPrototype): Deleted.
(JSC::AsyncFunctionPrototype::finishCreation): Deleted.

  • runtime/AsyncFunctionPrototype.h: Removed.

(JSC::AsyncFunctionPrototype::create): Deleted.
(JSC::AsyncFunctionPrototype::createStructure): Deleted.

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:
  • runtime/CommonIdentifiers.h:
  • runtime/Completion.cpp:

(JSC::checkSyntax):
(JSC::checkModuleSyntax):

  • runtime/Completion.h:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ProgramExecutable::checkSyntax):

  • runtime/Executable.h:
  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/FunctionConstructor.h:
  • runtime/JSAsyncFunction.cpp: Removed.

(JSC::JSAsyncFunction::JSAsyncFunction): Deleted.
(JSC::JSAsyncFunction::createImpl): Deleted.
(JSC::JSAsyncFunction::create): Deleted.
(JSC::JSAsyncFunction::createWithInvalidatedReallocationWatchpoint): Deleted.

  • runtime/JSAsyncFunction.h: Removed.

(JSC::JSAsyncFunction::allocationSize): Deleted.
(JSC::JSAsyncFunction::createStructure): Deleted.

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnPropertySlot):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
(JSC::JSGlobalObject::init): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::asyncFunctionPrototype): Deleted.
(JSC::JSGlobalObject::asyncFunctionStructure): Deleted.

  • runtime/ModuleLoaderObject.cpp:

(JSC::moduleLoaderObjectParseModule):

  • runtime/RuntimeFlags.h:

(JSC::RuntimeFlags::operator==): Deleted.
(JSC::RuntimeFlags::operator!=): Deleted.

  • tests/stress/async-await-basic.js: Removed.

(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrow): Deleted.
(shouldThrowAsync): Deleted.
(shouldThrowSyntaxError): Deleted.
(let.AsyncFunction.async): Deleted.
(async.asyncFunctionForProto): Deleted.
(Object.getPrototypeOf.async): Deleted.
(Object.getPrototypeOf.async.method): Deleted.
(async): Deleted.
(async.method): Deleted.
(async.asyncNonConstructorDecl): Deleted.
(shouldThrow.new.async): Deleted.
(shouldThrow.new.async.nonConstructor): Deleted.
(async.asyncDecl): Deleted.
(async.f): Deleted.
(MyError): Deleted.
(async.asyncDeclThrower): Deleted.
(shouldThrowAsync.async): Deleted.
(resolveLater): Deleted.
(rejectLater): Deleted.
(async.resumeAfterNormal): Deleted.
(O.async.resumeAfterNormal): Deleted.
(resumeAfterNormalArrow.async): Deleted.
(async.resumeAfterThrow): Deleted.
(O.async.resumeAfterThrow): Deleted.
(resumeAfterThrowArrow.async): Deleted.
(catch): Deleted.

  • tests/stress/async-await-module-reserved-word.js: Removed.

(shouldThrow): Deleted.
(SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await): Deleted.
(checkModuleSyntaxError.String.raw.await): Deleted.
(checkModuleSyntaxError.String.raw.async.await): Deleted.
(SyntaxError.Cannot.declare.named): Deleted.

  • tests/stress/async-await-mozilla.js: Removed.

(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrow): Deleted.
(shouldThrowAsync): Deleted.
(assert): Deleted.
(shouldThrowSyntaxError): Deleted.
(mozSemantics.async.empty): Deleted.
(mozSemantics.async.simpleReturn): Deleted.
(mozSemantics.async.simpleAwait): Deleted.
(mozSemantics.async.simpleAwaitAsync): Deleted.
(mozSemantics.async.returnOtherAsync): Deleted.
(mozSemantics.async.simpleThrower): Deleted.
(mozSemantics.async.delegatedThrower): Deleted.
(mozSemantics.async.tryCatch): Deleted.
(mozSemantics.async.tryCatchThrow): Deleted.
(mozSemantics.async.wellFinally): Deleted.
(mozSemantics.async.finallyMayFail): Deleted.
(mozSemantics.async.embedded.async.inner): Deleted.
(mozSemantics.async.embedded): Deleted.
(mozSemantics.async.fib): Deleted.
(mozSemantics.async.isOdd.async.isEven): Deleted.
(mozSemantics.async.isOdd): Deleted.
(mozSemantics.hardcoreFib.async.fib2): Deleted.
(mozSemantics.namedAsyncExpr.async.simple): Deleted.
(mozSemantics.async.executionOrder.async.first): Deleted.
(mozSemantics.async.executionOrder.async.second): Deleted.
(mozSemantics.async.executionOrder.async.third): Deleted.
(mozSemantics.async.executionOrder): Deleted.
(mozSemantics.async.miscellaneous): Deleted.
(mozSemantics.thrower): Deleted.
(mozSemantics.async.defaultArgs): Deleted.
(mozSemantics.shouldThrow): Deleted.
(mozSemantics): Deleted.
(mozMethods.X): Deleted.
(mozMethods.X.prototype.async.getValue): Deleted.
(mozMethods.X.prototype.setValue): Deleted.
(mozMethods.X.prototype.async.increment): Deleted.
(mozMethods.X.prototype.async.getBaseClassName): Deleted.
(mozMethods.X.async.getStaticValue): Deleted.
(mozMethods.Y.prototype.async.getBaseClassName): Deleted.
(mozMethods.Y): Deleted.
(mozFunctionNameInferrence.async.test): Deleted.
(mozSyntaxErrors): Deleted.

  • tests/stress/async-await-reserved-word.js: Removed.

(assert): Deleted.
(shouldThrowSyntaxError): Deleted.
(AsyncFunction.async): Deleted.

  • tests/stress/async_arrow_functions_lexical_arguments_binding.js: Removed.

(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrowAsync): Deleted.
(noArgumentsArrow2.async): Deleted.

  • tests/stress/async_arrow_functions_lexical_new.target_binding.js: Removed.

(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrowAsync): Deleted.
(C1): Deleted.
(C2): Deleted.
(shouldThrowAsync.async): Deleted.

  • tests/stress/async_arrow_functions_lexical_super_binding.js: Removed.

(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(BaseClass.prototype.baseClassValue): Deleted.
(BaseClass.prototype.get property): Deleted.
(BaseClass): Deleted.
(ChildClass.prototype.asyncSuperProp): Deleted.
(ChildClass.prototype.asyncSuperProp2): Deleted.
(ChildClass): Deleted.
(ChildClass2): Deleted.

  • tests/stress/async_arrow_functions_lexical_this_binding.js: Removed.

(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(d.y): Deleted.

Source/WebKit/mac:

  • WebView/WebPreferencesPrivate.h:

Source/WebKit/win:

  • Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/parser/ParserModes.h

    r201523 r201542  
    2828#define ParserModes_h
    2929
    30 #include "ConstructAbility.h"
    3130#include "Identifier.h"
    3231
     
    4443enum class FunctionMode { FunctionExpression, FunctionDeclaration, MethodDefinition };
    4544
    46 // When you add a new source parse mode, do not forget to ensure that the predicates defined in this
    47 // file work with the newly added mode.
    48 enum class SourceParseMode : uint16_t {
    49     NormalFunctionMode            = 0b0000000000000001,
    50     GeneratorBodyMode             = 0b0000000000000010,
    51     GeneratorWrapperFunctionMode  = 0b0000000000000100,
    52     GetterMode                    = 0b0000000000001000,
    53     SetterMode                    = 0b0000000000010000,
    54     MethodMode                    = 0b0000000000100000,
    55     ArrowFunctionMode             = 0b0000000001000000,
    56     AsyncFunctionBodyMode         = 0b0000000010000000,
    57     AsyncArrowFunctionBodyMode    = 0b0000000100000000,
    58     AsyncFunctionMode             = 0b0000001000000000,
    59     AsyncMethodMode               = 0b0000010000000000,
    60     AsyncArrowFunctionMode        = 0b0000100000000000,
    61     ProgramMode                   = 0b0001000000000000,
    62     ModuleAnalyzeMode             = 0b0010000000000000,
    63     ModuleEvaluateMode            = 0b0100000000000000,
     45enum class SourceParseMode : uint8_t {
     46    NormalFunctionMode,
     47    GeneratorBodyMode,
     48    GeneratorWrapperFunctionMode,
     49    GetterMode,
     50    SetterMode,
     51    MethodMode,
     52    ArrowFunctionMode,
     53    ProgramMode,
     54    ModuleAnalyzeMode,
     55    ModuleEvaluateMode
    6456};
    6557
    66 class SourceParseModeSet {
    67 public:
    68     template<typename... Modes>
    69     SourceParseModeSet(Modes... args)
    70         : m_mask(mergeSourceParseModes(args...))
    71     {
     58inline bool isFunctionParseMode(SourceParseMode parseMode)
     59{
     60    switch (parseMode) {
     61    case SourceParseMode::NormalFunctionMode:
     62    case SourceParseMode::GeneratorBodyMode:
     63    case SourceParseMode::GeneratorWrapperFunctionMode:
     64    case SourceParseMode::GetterMode:
     65    case SourceParseMode::SetterMode:
     66    case SourceParseMode::MethodMode:
     67    case SourceParseMode::ArrowFunctionMode:
     68        return true;
     69
     70    case SourceParseMode::ProgramMode:
     71    case SourceParseMode::ModuleAnalyzeMode:
     72    case SourceParseMode::ModuleEvaluateMode:
     73        return false;
    7274    }
    73 
    74     ALWAYS_INLINE bool contains(SourceParseMode mode)
    75     {
    76         return static_cast<unsigned>(mode) & m_mask;
    77     }
    78 
    79 private:
    80     ALWAYS_INLINE static unsigned mergeSourceParseModes(SourceParseMode mode)
    81     {
    82         return static_cast<unsigned>(mode);
    83     }
    84 
    85     template<typename... Rest>
    86     ALWAYS_INLINE static unsigned mergeSourceParseModes(SourceParseMode mode, Rest... rest)
    87     {
    88         return static_cast<unsigned>(mode) | mergeSourceParseModes(rest...);
    89     }
    90 
    91     const unsigned m_mask;
    92 };
    93 
    94 ALWAYS_INLINE bool isFunctionParseMode(SourceParseMode parseMode)
    95 {
    96     return SourceParseModeSet(
    97         SourceParseMode::NormalFunctionMode,
    98         SourceParseMode::GeneratorBodyMode,
    99         SourceParseMode::GeneratorWrapperFunctionMode,
    100         SourceParseMode::GetterMode,
    101         SourceParseMode::SetterMode,
    102         SourceParseMode::MethodMode,
    103         SourceParseMode::ArrowFunctionMode,
    104         SourceParseMode::AsyncFunctionBodyMode,
    105         SourceParseMode::AsyncFunctionMode,
    106         SourceParseMode::AsyncMethodMode,
    107         SourceParseMode::AsyncArrowFunctionMode,
    108         SourceParseMode::AsyncArrowFunctionBodyMode).contains(parseMode);
     75    RELEASE_ASSERT_NOT_REACHED();
     76    return false;
    10977}
    11078
    111 ALWAYS_INLINE bool isAsyncFunctionParseMode(SourceParseMode parseMode)
     79inline bool isModuleParseMode(SourceParseMode parseMode)
    11280{
    113     return SourceParseModeSet(
    114         SourceParseMode::AsyncFunctionBodyMode,
    115         SourceParseMode::AsyncFunctionMode,
    116         SourceParseMode::AsyncMethodMode,
    117         SourceParseMode::AsyncArrowFunctionMode,
    118         SourceParseMode::AsyncArrowFunctionBodyMode).contains(parseMode);
     81    switch (parseMode) {
     82    case SourceParseMode::ModuleAnalyzeMode:
     83    case SourceParseMode::ModuleEvaluateMode:
     84        return true;
     85
     86    case SourceParseMode::NormalFunctionMode:
     87    case SourceParseMode::GeneratorBodyMode:
     88    case SourceParseMode::GeneratorWrapperFunctionMode:
     89    case SourceParseMode::GetterMode:
     90    case SourceParseMode::SetterMode:
     91    case SourceParseMode::MethodMode:
     92    case SourceParseMode::ArrowFunctionMode:
     93    case SourceParseMode::ProgramMode:
     94        return false;
     95    }
     96    RELEASE_ASSERT_NOT_REACHED();
     97    return false;
    11998}
    12099
    121 ALWAYS_INLINE bool isAsyncArrowFunctionParseMode(SourceParseMode parseMode)
     100inline bool isProgramParseMode(SourceParseMode parseMode)
    122101{
    123     return SourceParseModeSet(
    124         SourceParseMode::AsyncArrowFunctionMode,
    125         SourceParseMode::AsyncArrowFunctionBodyMode).contains(parseMode);
    126 }
     102    switch (parseMode) {
     103    case SourceParseMode::ProgramMode:
     104        return true;
    127105
    128 ALWAYS_INLINE bool isAsyncFunctionWrapperParseMode(SourceParseMode parseMode)
    129 {
    130     return SourceParseModeSet(
    131         SourceParseMode::AsyncArrowFunctionMode,
    132         SourceParseMode::AsyncFunctionMode,
    133         SourceParseMode::AsyncMethodMode).contains(parseMode);
    134 }
    135 
    136 ALWAYS_INLINE bool isAsyncFunctionBodyParseMode(SourceParseMode parseMode)
    137 {
    138     return SourceParseModeSet(
    139         SourceParseMode::AsyncFunctionBodyMode,
    140         SourceParseMode::AsyncArrowFunctionBodyMode).contains(parseMode);
    141 }
    142 
    143 ALWAYS_INLINE bool isModuleParseMode(SourceParseMode parseMode)
    144 {
    145     return SourceParseModeSet(
    146         SourceParseMode::ModuleAnalyzeMode,
    147         SourceParseMode::ModuleEvaluateMode).contains(parseMode);
    148 }
    149 
    150 ALWAYS_INLINE bool isProgramParseMode(SourceParseMode parseMode)
    151 {
    152     return SourceParseModeSet(SourceParseMode::ProgramMode).contains(parseMode);
    153 }
    154 
    155 ALWAYS_INLINE ConstructAbility constructAbilityForParseMode(SourceParseMode parseMode)
    156 {
    157     if (parseMode == SourceParseMode::NormalFunctionMode)
    158         return ConstructAbility::CanConstruct;
    159     return ConstructAbility::CannotConstruct;
     106    case SourceParseMode::NormalFunctionMode:
     107    case SourceParseMode::GeneratorBodyMode:
     108    case SourceParseMode::GeneratorWrapperFunctionMode:
     109    case SourceParseMode::GetterMode:
     110    case SourceParseMode::SetterMode:
     111    case SourceParseMode::MethodMode:
     112    case SourceParseMode::ArrowFunctionMode:
     113    case SourceParseMode::ModuleAnalyzeMode:
     114    case SourceParseMode::ModuleEvaluateMode:
     115        return false;
     116    }
     117    RELEASE_ASSERT_NOT_REACHED();
     118    return false;
    160119}
    161120
Note: See TracChangeset for help on using the changeset viewer.