dflt-params-duplicates.js (2582B)
1 // |reftest| error:SyntaxError 2 // This file was procedurally generated from the following sources: 3 // - src/function-forms/dflt-params-duplicates.case 4 // - src/function-forms/syntax/cls-decl-meth.template 5 /*--- 6 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method) 7 esid: sec-runtime-semantics-bindingclassdeclarationevaluation 8 features: [default-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 14.1.2 Static Semantics: Early Errors 64 65 StrictFormalParameters : FormalParameters 66 67 - It is a Syntax Error if BoundNames of FormalParameters contains any 68 duplicate elements. 69 70 FormalParameters : FormalParameterList 71 72 - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is 73 false and BoundNames of FormalParameterList contains any duplicate 74 elements. 75 76 ---*/ 77 $DONOTEVALUATE(); 78 79 class C { 80 method(x = 0, x) { 81 82 } 83 }