tor-browser

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

iterator-next-error.js (917B)


      1 // Copyright (C) 2015 the V8 project authors. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 /*---
      4 es6id: 13.6.4.13 S5.d
      5 description: >
      6    If `nextResult` is an abrupt completion as per IteratorStep (ES6 7.4.5),
      7    return the completion.
      8 info: |
      9  [...]
     10  5. Repeat
     11     a. Let nextResult be ? IteratorStep(iterator).
     12 features: [Symbol.iterator]
     13 ---*/
     14 
     15 var iterable = {};
     16 var iterationCount = 0;
     17 var returnCount = 0;
     18 
     19 iterable[Symbol.iterator] = function() {
     20  return {
     21    next: function() {
     22      throw new Test262Error();
     23    },
     24    return: function() {
     25      returnCount += 1;
     26      return {};
     27    }
     28  };
     29 };
     30 
     31 assert.throws(Test262Error, function() {
     32  for (var x of iterable) {
     33    iterationCount += 1;
     34  }
     35 });
     36 
     37 assert.sameValue(iterationCount, 0, 'The loop body is not evaluated');
     38 assert.sameValue(returnCount, 0, 'Iterator is not closed.');
     39 
     40 reportCompare(0, 0);