array-destructuring-param-strict-body.js (5995B)
1 // |reftest| error:SyntaxError 2 // This file was procedurally generated from the following sources: 3 // - src/function-forms/array-destructuring-param-strict-body.case 4 // - src/function-forms/syntax/cls-decl-meth.template 5 /*--- 6 description: ArrayBindingPattern and Use Strict Directive are not allowed to coexist for the same function. (class expression method) 7 esid: sec-runtime-semantics-bindingclassdeclarationevaluation 8 features: [rest-parameters] 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 14.3.8 Runtime Semantics: DefineMethod 31 32 MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } 33 34 [...] 35 6. Let closure be FunctionCreate(kind, StrictFormalParameters, FunctionBody, 36 scope, strict). If functionPrototype was passed as a parameter then pass its 37 value as the functionPrototype optional argument of FunctionCreate. 38 [...] 39 40 9.2.1 [[Call]] ( thisArgument, argumentsList) 41 42 [...] 43 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). 44 [...] 45 46 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 47 48 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). 49 [...] 50 51 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) 52 53 [...] 54 23. Let iteratorRecord be Record {[[iterator]]: 55 CreateListIterator(argumentsList), [[done]]: false}. 56 24. If hasDuplicates is true, then 57 [...] 58 25. Else, 59 b. Let formalStatus be IteratorBindingInitialization for formals with 60 iteratorRecord and env as arguments. 61 [...] 62 63 13.3.3.4 Static Semantics: IsSimpleParameterList 64 65 BindingElement : BindingPattern 66 67 1. Return false. 68 69 14.1.2 Static Semantics: Early Errors 70 71 FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } 72 FunctionDeclaration : function ( FormalParameters ) { FunctionBody } 73 FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody } 74 75 - It is a Syntax Error if ContainsUseStrict of FunctionBody is true and 76 IsSimpleParameterList of FormalParameters is false. 77 78 14.2.1 Static Semantics: Early Errors 79 80 ArrowFunction : ArrowParameters => ConciseBody 81 82 - It is a Syntax Error if ContainsUseStrict of ConciseBody is true and 83 IsSimpleParameterList of ArrowParameters is false. 84 85 14.3.1 Static Semantics: Early Errors 86 87 MethodDefinition : PropertyName ( UniqueFormalParameters ) { FunctionBody } 88 89 - It is a Syntax Error if ContainsUseStrict of FunctionBody is true and 90 IsSimpleParameterList of UniqueFormalParameters is false. 91 92 MethodDefinition : set PropertyName ( PropertySetParameterList ) { FunctionBody } 93 94 - It is a Syntax Error if ContainsUseStrict of FunctionBody is true and 95 IsSimpleParameterList of PropertySetParameterList is false. 96 97 14.4.1 Static Semantics: Early Errors 98 99 GeneratorMethod : * PropertyName ( UniqueFormalParameters ) { GeneratorBody } 100 101 - It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and 102 IsSimpleParameterList of UniqueFormalParameters is false. 103 104 GeneratorDeclaration : function * BindingIdentifier ( FormalParameters ) { GeneratorBody } 105 GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } 106 GeneratorExpression : function * BindingIdentifier ( FormalParameters ) { GeneratorBody } 107 108 - It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and 109 IsSimpleParameterList of UniqueFormalParameters is false. 110 111 14.5.1 Static Semantics: Early Errors 112 113 AsyncGeneratorMethod : async * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody } 114 115 - It is a Syntax Error if ContainsUseStrict of AsyncGeneratorBody is true and 116 IsSimpleParameterList of UniqueFormalParameters is false. 117 118 AsyncGeneratorDeclaration : async function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } 119 AsyncGeneratorDeclaration : async function * ( FormalParameters ) { AsyncGeneratorBody } 120 AsyncGeneratorExpression : async function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } 121 122 - It is a Syntax Error if ContainsUseStrict of AsyncGeneratorBody is true and 123 IsSimpleParameterList of FormalParameters is false. 124 125 14.7.1 Static Semantics: Early Errors 126 127 AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } 128 129 - It is a Syntax Error if ContainsUseStrict of AsyncFunctionBody is true and 130 IsSimpleParameterList of UniqueFormalParameters is false. 131 132 AsyncFunctionDeclaration : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } 133 AsyncFunctionDeclaration : async function ( FormalParameters ) { AsyncFunctionBody } 134 AsyncFunctionExpression : async function ( FormalParameters ) { AsyncFunctionBody } 135 AsyncFunctionExpression : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } 136 137 - It is a Syntax Error if ContainsUseStrict of AsyncFunctionBody is true and 138 IsSimpleParameterList of FormalParameters is false. 139 140 14.8.1 Static Semantics: Early Errors 141 142 AsyncArrowFunction : CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody 143 144 - It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is true and 145 IsSimpleParameterList of CoverCallExpressionAndAsyncArrowHead is false. 146 147 ---*/ 148 $DONOTEVALUATE(); 149 150 class C { 151 method([element]) { 152 "use strict"; 153 } 154 }