private-meth-ary-ptrn-rest-init-ary.js (2641B)
1 // |reftest| error:SyntaxError 2 // This file was procedurally generated from the following sources: 3 // - src/dstr-binding/ary-ptrn-rest-init-ary.case 4 // - src/dstr-binding/default/cls-decl-private-meth.template 5 /*--- 6 description: Rest element (nested array pattern) does not support initializer (private class expression method) 7 esid: sec-runtime-semantics-bindingclassdeclarationevaluation 8 features: [class, class-methods-private, destructuring-binding] 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 Destructuring Binding Patterns 64 ArrayBindingPattern[Yield] : 65 [ Elisionopt BindingRestElement[?Yield]opt ] 66 [ BindingElementList[?Yield] ] 67 [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] 68 ---*/ 69 $DONOTEVALUATE(); 70 71 var callCount = 0; 72 class C { 73 #method([...[ x ] = []]) { 74 75 callCount = callCount + 1; 76 } 77 78 get method() { 79 return this.#method; 80 } 81 }; 82 83 new C().method([]); 84 assert.sameValue(callCount, 1, 'method invoked exactly once');