tor-browser

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

rhs-primitive.js (3053B)


      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 es6id: 14.4
      8 features: [generators]
      9 ---*/
     10 
     11 var result, iter;
     12 function* g1() { (yield 1) }
     13 function* g2() { [yield 1] }
     14 function* g3() { {yield 1} }
     15 function* g4() { yield 1, yield 2; }
     16 function* g5() { (yield 1) ? yield 2 : yield 3; }
     17 
     18 iter = g1();
     19 result = iter.next();
     20 assert.sameValue(result.value, 1, 'Within grouping operator: result `value`');
     21 assert.sameValue(
     22  result.done, false, 'Within grouping operator: result `done` flag'
     23 );
     24 result = iter.next();
     25 assert.sameValue(
     26  result.value, undefined, 'Following grouping operator: result `value`'
     27 );
     28 assert.sameValue(
     29  result.done, true, 'Following grouping operator: result `done` flag'
     30 );
     31 
     32 iter = g2();
     33 result = iter.next();
     34 assert.sameValue(result.value, 1, 'Within array literal: result `value`');
     35 assert.sameValue(
     36  result.done, false, 'Within array literal: result `done` flag'
     37 );
     38 result = iter.next();
     39 assert.sameValue(
     40  result.value, undefined, 'Following array literal: result `value`'
     41 );
     42 assert.sameValue(
     43  result.done, true, 'Following array literal: result `done` flag'
     44 );
     45 
     46 iter = g3();
     47 result = iter.next();
     48 assert.sameValue(result.value, 1, 'Within object literal: result `value`');
     49 assert.sameValue(
     50  result.done, false, 'Within object literal: result `done` flag'
     51 );
     52 result = iter.next();
     53 assert.sameValue(
     54  result.value, undefined, 'Following object literal: result `value`'
     55 );
     56 assert.sameValue(
     57  result.done, true, 'Following object literal: result `done` flag'
     58 );
     59 
     60 iter = g4();
     61 result = iter.next();
     62 assert.sameValue(
     63  result.value, 1, 'First expression in comma expression: result `value`'
     64 );
     65 assert.sameValue(
     66  result.done,
     67  false,
     68  'First expression in comma expression: result `done` flag'
     69 );
     70 result = iter.next();
     71 assert.sameValue(
     72  result.value, 2, 'Second expression in comma expression: result `value`'
     73 );
     74 assert.sameValue(
     75  result.done,
     76  false,
     77  'Second expression in comma expression: result `done` flag'
     78 );
     79 result = iter.next();
     80 assert.sameValue(
     81  result.value, undefined, 'Following comma expression: result `value`'
     82 );
     83 assert.sameValue(
     84  result.done, true, 'Following comma expression: result `done` flag'
     85 );
     86 
     87 iter = g5();
     88 result = iter.next();
     89 assert.sameValue(
     90  result.value,
     91  1,
     92  'Conditional expression in conditional operator: result `value`'
     93 );
     94 assert.sameValue(
     95  result.done,
     96  false,
     97  'Conditional expression in conditional operator: result `done` flag'
     98 );
     99 result = iter.next();
    100 assert.sameValue(
    101  result.value,
    102  3,
    103  'Branch in conditional operator: result `value`'
    104 );
    105 assert.sameValue(
    106  result.done,
    107  false,
    108  'Branch in conditional operator: result `done` flag'
    109 );
    110 result = iter.next();
    111 assert.sameValue(
    112  result.value, undefined, 'Following conditional operator: result `value`'
    113 );
    114 assert.sameValue(
    115  result.done, true, 'Following conditional operator: result `done` flag'
    116 );
    117 
    118 reportCompare(0, 0);