rest-param-strict-body.js (5613B)
1 // |reftest| error:SyntaxError 2 // This file was procedurally generated from the following sources: 3 // - src/function-forms/rest-param-strict-body.case 4 // - src/function-forms/syntax/cls-decl-async-gen-meth.template 5 /*--- 6 description: RestParameter and Use Strict Directive are not allowed to coexist for the same function. (class expression method) 7 esid: sec-class-definitions-runtime-semantics-evaluation 8 features: [rest-parameters, async-iteration] 9 flags: [generated] 10 negative: 11 phase: parse 12 type: SyntaxError 13 info: | 14 ClassDeclaration : class BindingIdentifier ClassTail 15 16 1. Let className be StringValue of BindingIdentifier. 17 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with 18 argument className. 19 [...] 20 21 14.5.14 Runtime Semantics: ClassDefinitionEvaluation 22 23 21. For each ClassElement m in order from methods 24 a. If IsStatic of m is false, then 25 i. Let status be the result of performing 26 PropertyDefinitionEvaluation for m with arguments proto and 27 false. 28 [...] 29 30 Runtime Semantics: PropertyDefinitionEvaluation 31 32 AsyncGeneratorMethod : 33 async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) 34 { AsyncGeneratorBody } 35 36 1. Let propKey be the result of evaluating PropertyName. 37 2. ReturnIfAbrupt(propKey). 38 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. 39 Otherwise let strict be false. 40 4. Let scope be the running execution context's LexicalEnvironment. 41 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, 42 AsyncGeneratorBody, scope, strict). 43 [...] 44 45 46 14.1.13 Static Semantics: IsSimpleParameterList 47 48 FormalParameters : FormalParameterList , FunctionRestParameter 49 50 1. Return false. 51 52 14.1.2 Static Semantics: Early Errors 53 54 FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } 55 FunctionDeclaration : function ( FormalParameters ) { FunctionBody } 56 FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody } 57 58 - It is a Syntax Error if ContainsUseStrict of FunctionBody is true and 59 IsSimpleParameterList of FormalParameters is false. 60 61 14.2.1 Static Semantics: Early Errors 62 63 ArrowFunction : ArrowParameters => ConciseBody 64 65 - It is a Syntax Error if ContainsUseStrict of ConciseBody is true and 66 IsSimpleParameterList of ArrowParameters is false. 67 68 14.3.1 Static Semantics: Early Errors 69 70 MethodDefinition : PropertyName ( UniqueFormalParameters ) { FunctionBody } 71 72 - It is a Syntax Error if ContainsUseStrict of FunctionBody is true and 73 IsSimpleParameterList of UniqueFormalParameters is false. 74 75 MethodDefinition : set PropertyName ( PropertySetParameterList ) { FunctionBody } 76 77 - It is a Syntax Error if ContainsUseStrict of FunctionBody is true and 78 IsSimpleParameterList of PropertySetParameterList is false. 79 80 14.4.1 Static Semantics: Early Errors 81 82 GeneratorMethod : * PropertyName ( UniqueFormalParameters ) { GeneratorBody } 83 84 - It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and 85 IsSimpleParameterList of UniqueFormalParameters is false. 86 87 GeneratorDeclaration : function * BindingIdentifier ( FormalParameters ) { GeneratorBody } 88 GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } 89 GeneratorExpression : function * BindingIdentifier ( FormalParameters ) { GeneratorBody } 90 91 - It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and 92 IsSimpleParameterList of UniqueFormalParameters is false. 93 94 14.5.1 Static Semantics: Early Errors 95 96 AsyncGeneratorMethod : async * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody } 97 98 - It is a Syntax Error if ContainsUseStrict of AsyncGeneratorBody is true and 99 IsSimpleParameterList of UniqueFormalParameters is false. 100 101 AsyncGeneratorDeclaration : async function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } 102 AsyncGeneratorDeclaration : async function * ( FormalParameters ) { AsyncGeneratorBody } 103 AsyncGeneratorExpression : async function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } 104 105 - It is a Syntax Error if ContainsUseStrict of AsyncGeneratorBody is true and 106 IsSimpleParameterList of FormalParameters is false. 107 108 14.7.1 Static Semantics: Early Errors 109 110 AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } 111 112 - It is a Syntax Error if ContainsUseStrict of AsyncFunctionBody is true and 113 IsSimpleParameterList of UniqueFormalParameters is false. 114 115 AsyncFunctionDeclaration : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } 116 AsyncFunctionDeclaration : async function ( FormalParameters ) { AsyncFunctionBody } 117 AsyncFunctionExpression : async function ( FormalParameters ) { AsyncFunctionBody } 118 AsyncFunctionExpression : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } 119 120 - It is a Syntax Error if ContainsUseStrict of AsyncFunctionBody is true and 121 IsSimpleParameterList of FormalParameters is false. 122 123 14.8.1 Static Semantics: Early Errors 124 125 AsyncArrowFunction : CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody 126 127 - It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is true and 128 IsSimpleParameterList of CoverCallExpressionAndAsyncArrowHead is false. 129 130 ---*/ 131 $DONOTEVALUATE(); 132 133 class C { 134 async *method(a,...rest) { 135 "use strict"; 136 } 137 }