tor-browser

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

yield-as-expression-without-rhs.js (3117B)


      1 // Copyright (C) 2013 the V8 project authors. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 description: >
      6    `yield` is a valid expression within generator function bodies.
      7 features: [generators]
      8 es6id: 14.4
      9 ---*/
     10 
     11 var iter, result;
     12 var obj = {
     13  *g1() { (yield) },
     14  *g2() { [yield] },
     15  *g3() { {yield} },
     16  *g4() { yield, yield; },
     17  *g5() { (yield) ? yield : yield; }
     18 };
     19 
     20 iter = obj.g1();
     21 result = iter.next();
     22 assert.sameValue(
     23  result.value, undefined, 'Within grouping operator: result `value`'
     24 );
     25 assert.sameValue(
     26  result.done, false, 'Within grouping operator: result `done` flag'
     27 );
     28 result = iter.next();
     29 assert.sameValue(
     30  result.value, undefined, 'Following grouping operator: result `value`'
     31 );
     32 assert.sameValue(
     33  result.done, true, 'Following grouping operator: result `done` flag'
     34 );
     35 
     36 iter = obj.g2();
     37 result = iter.next();
     38 assert.sameValue(
     39  result.value, undefined, 'Within array literal: result `value`'
     40 );
     41 assert.sameValue(
     42  result.done, false, 'Within array literal: result `done` flag'
     43 );
     44 result = iter.next();
     45 assert.sameValue(
     46  result.value, undefined, 'Following array literal: result `value`'
     47 );
     48 assert.sameValue(
     49  result.done, true, 'Following array literal: result `done` flag'
     50 );
     51 
     52 iter = obj.g3();
     53 result = iter.next();
     54 assert.sameValue(
     55  result.value, undefined, 'Within object literal: result `value`'
     56 );
     57 assert.sameValue(
     58  result.done, false, 'Within object literal: result `done` flag'
     59 );
     60 result = iter.next();
     61 assert.sameValue(
     62  result.value, undefined, 'Following object literal: result `value`'
     63 );
     64 assert.sameValue(
     65  result.done, true, 'Following object literal: result `done` flag'
     66 );
     67 
     68 iter = obj.g4();
     69 result = iter.next();
     70 assert.sameValue(
     71  result.value,
     72  undefined,
     73  'First expression in comma expression: result `value`'
     74 );
     75 assert.sameValue(
     76  result.done,
     77  false,
     78  'First expression in comma expression: result `done` flag'
     79 );
     80 result = iter.next();
     81 assert.sameValue(
     82  result.value,
     83  undefined,
     84  'Second expression in comma expression: result `value`'
     85 );
     86 assert.sameValue(
     87  result.done,
     88  false,
     89  'Second expression in comma expression: result `done` flag'
     90 );
     91 result = iter.next();
     92 assert.sameValue(
     93  result.value, undefined, 'Following comma expression: result `value`'
     94 );
     95 assert.sameValue(
     96  result.done, true, 'Following comma expression: result `done` flag'
     97 );
     98 
     99 iter = obj.g5();
    100 result = iter.next();
    101 assert.sameValue(
    102  result.value,
    103  undefined,
    104  'Conditional expression in conditional operator: result `value`'
    105 );
    106 assert.sameValue(
    107  result.done,
    108  false,
    109  'Conditional expression in conditional operator: result `done` flag'
    110 );
    111 result = iter.next();
    112 assert.sameValue(
    113  result.value,
    114  undefined,
    115  'Branch in conditional operator: result `value`'
    116 );
    117 assert.sameValue(
    118  result.done,
    119  false,
    120  'Branch in conditional operator: result `done` flag'
    121 );
    122 result = iter.next();
    123 assert.sameValue(
    124  result.value, undefined, 'Following conditional operator: result `value`'
    125 );
    126 assert.sameValue(
    127  result.done, true, 'Following conditional operator: result `done` flag'
    128 );
    129 
    130 reportCompare(0, 0);