tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

object-destructuring-param-strict-body.js (6183B)


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