tor-browser

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

let-ary-ptrn-rest-id-elision-next-err.js (1954B)


      1 // This file was procedurally generated from the following sources:
      2 // - src/dstr-binding/ary-ptrn-rest-id-elision-next-err.case
      3 // - src/dstr-binding/error/for-of-let.template
      4 /*---
      5 description: Rest element following elision elements (for-of statement)
      6 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
      7 features: [generators, destructuring-binding]
      8 flags: [generated]
      9 info: |
     10    IterationStatement :
     11        for ( ForDeclaration of AssignmentExpression ) Statement
     12 
     13    [...]
     14    3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult,
     15       lexicalBinding, labelSet).
     16 
     17    13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation
     18 
     19    [...]
     20    3. Let destructuring be IsDestructuring of lhs.
     21    [...]
     22    5. Repeat
     23       [...]
     24       h. If destructuring is false, then
     25          [...]
     26       i. Else
     27          i. If lhsKind is assignment, then
     28             [...]
     29          ii. Else if lhsKind is varBinding, then
     30              [...]
     31          iii. Else,
     32               1. Assert: lhsKind is lexicalBinding.
     33               2. Assert: lhs is a ForDeclaration.
     34               3. Let status be the result of performing BindingInitialization
     35                  for lhs passing nextValue and iterationEnv as arguments.
     36          [...]
     37 
     38    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
     39    ArrayBindingPattern : [ Elisionopt BindingRestElement ]
     40    1. If Elision is present, then
     41       a. Let status be the result of performing
     42          IteratorDestructuringAssignmentEvaluation of Elision with
     43          iteratorRecord as the argument.
     44       b. ReturnIfAbrupt(status).
     45    2. Return the result of performing IteratorBindingInitialization for
     46       BindingRestElement with iteratorRecord and environment as arguments.
     47 
     48 ---*/
     49 var iter = (function*() { throw new Test262Error(); })();
     50 
     51 assert.throws(Test262Error, function() {
     52  for (let [, ...x] of [iter]) {
     53    return;
     54  }
     55 });
     56 
     57 reportCompare(0, 0);