tor-browser

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

array-elem-init-fn-name-gen.js (1944B)


      1 // This file was procedurally generated from the following sources:
      2 // - src/dstr-assignment/array-elem-init-fn-name-gen.case
      3 // - src/dstr-assignment/default/for-of.template
      4 /*---
      5 description: Assignment of function `name` attribute (GeneratorExpression) (For..of statement)
      6 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
      7 features: [generators, destructuring-binding]
      8 flags: [generated]
      9 includes: [propertyHelper.js]
     10 info: |
     11    IterationStatement :
     12      for ( LeftHandSideExpression of AssignmentExpression ) Statement
     13 
     14    1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« »,
     15       AssignmentExpression, iterate).
     16    2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement,
     17       keyResult, assignment, labelSet).
     18 
     19    13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation
     20 
     21    [...]
     22    4. If destructuring is true and if lhsKind is assignment, then
     23       a. Assert: lhs is a LeftHandSideExpression.
     24       b. Let assignmentPattern be the parse of the source text corresponding to
     25          lhs using AssignmentPattern as the goal symbol.
     26    [...]
     27 
     28    AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt
     29    [...] 7. If Initializer is present and value is undefined and
     30       IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of
     31       DestructuringAssignmentTarget are both true, then
     32       a. Let hasNameProperty be HasOwnProperty(v, "name").
     33       b. ReturnIfAbrupt(hasNameProperty).
     34       c. If hasNameProperty is false, perform SetFunctionName(v,
     35          GetReferencedName(lref)).
     36 
     37 ---*/
     38 var xGen, gen;
     39 
     40 var counter = 0;
     41 
     42 for ([ xGen = function* x() {}, gen = function*() {} ] of [[]]) {
     43  assert.notSameValue(xGen.name, 'xGen');
     44 
     45  verifyProperty(gen, 'name', {
     46    enumerable: false,
     47    writable: false,
     48    configurable: true,
     49    value: 'gen'
     50  });
     51  counter += 1;
     52 }
     53 
     54 assert.sameValue(counter, 1);
     55 
     56 reportCompare(0, 0);