tor-browser

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

obj-id-init-fn-name-gen.js (1858B)


      1 // This file was procedurally generated from the following sources:
      2 // - src/dstr-assignment/obj-id-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    AssignmentProperty : IdentifierReference Initializeropt
     29    [...] 6. If Initializeropt is present and v is undefined, then
     30       [...]
     31       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
     32          i. Let hasNameProperty be HasOwnProperty(v, "name").
     33          ii. ReturnIfAbrupt(hasNameProperty).
     34          iii. If hasNameProperty is false, perform SetFunctionName(v, P).
     35 
     36 ---*/
     37 var xGen, gen;
     38 
     39 var counter = 0;
     40 
     41 for ({ xGen = function* x() {}, gen = function*() {} } of [{}]) {
     42  assert.notSameValue(xGen.name, 'xGen');
     43 
     44  verifyProperty(gen, 'name', {
     45    enumerable: false,
     46    writable: false,
     47    configurable: true,
     48    value: 'gen'
     49  });
     50  counter += 1;
     51 }
     52 
     53 assert.sameValue(counter, 1);
     54 
     55 reportCompare(0, 0);