tor-browser

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

iter-set-length.js (1161B)


      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 esid: sec-array.from
      5 description: Setting length of object (traversed via iterator)
      6 info: |
      7    [...]
      8    6. If usingIterator is not undefined, then
      9       [...]
     10       g. Repeat
     11          [...]
     12          iv. If next is false, then
     13              1. Let setStatus be Set(A, "length", k, true).
     14              2. ReturnIfAbrupt(setStatus).
     15              3. Return A.
     16 features: [Symbol.iterator]
     17 ---*/
     18 
     19 var items = {};
     20 var result, nextIterResult, lastIterResult;
     21 items[Symbol.iterator] = function() {
     22  return {
     23    next: function() {
     24      var result = nextIterResult;
     25      nextIterResult = lastIterResult;
     26      return result;
     27    }
     28  };
     29 };
     30 
     31 nextIterResult = lastIterResult = {
     32  done: true
     33 };
     34 result = Array.from(items);
     35 
     36 assert.sameValue(result.length, 0, 'The value of result.length is expected to be 0');
     37 
     38 nextIterResult = {
     39  done: false
     40 };
     41 lastIterResult = {
     42  done: true
     43 };
     44 result = Array.from(items);
     45 
     46 assert.sameValue(result.length, 1, 'The value of result.length is expected to be 1');
     47 
     48 reportCompare(0, 0);