tor-browser

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

yield-spread-obj.js (1206B)


      1 // This file was procedurally generated from the following sources:
      2 // - src/generators/yield-spread-obj.case
      3 // - src/generators/default/class-expr-method.template
      4 /*---
      5 description: Use yield value in a object spread position (Generator method as a ClassExpression element)
      6 esid: prod-GeneratorMethod
      7 features: [object-spread, generators]
      8 flags: [generated]
      9 info: |
     10    ClassElement :
     11      MethodDefinition
     12 
     13    MethodDefinition :
     14      GeneratorMethod
     15 
     16    14.4 Generator Function Definitions
     17 
     18    GeneratorMethod :
     19      * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
     20 
     21 
     22    Spread Properties
     23 
     24    PropertyDefinition[Yield]:
     25      (...)
     26      ...AssignmentExpression[In, ?Yield]
     27 
     28 ---*/
     29 
     30 var callCount = 0;
     31 
     32 var C = class {*gen() {
     33    callCount += 1;
     34    yield {
     35        ...yield,
     36        y: 1,
     37        ...yield yield,
     38      };
     39 }}
     40 
     41 var gen = C.prototype.gen;
     42 
     43 var iter = gen();
     44 
     45 iter.next();
     46 iter.next({ x: 42 });
     47 iter.next({ x: 'lol' });
     48 var item = iter.next({ y: 39 });
     49 
     50 assert.sameValue(item.value.x, 42);
     51 assert.sameValue(item.value.y, 39);
     52 assert.sameValue(Object.keys(item.value).length, 2);
     53 assert.sameValue(item.done, false);
     54 
     55 assert.sameValue(callCount, 1);
     56 
     57 reportCompare(0, 0);