tor-browser

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

arguments-checked-in-order.js (1104B)


      1 // |reftest| shell-option(--enable-iterator-sequencing) skip-if(!Iterator.concat||!xulRuntime.shell) -- iterator-sequencing is not enabled unconditionally, requires shell-options
      2 // Copyright (C) 2024 André Bargull. All rights reserved.
      3 // This code is governed by the BSD license found in the LICENSE file.
      4 
      5 /*---
      6 esid: sec-iterator.concat
      7 description: >
      8  Arguments are validated in order.
      9 info: |
     10  Iterator.concat ( ...items )
     11 
     12  1. Let iterables be a new empty List.
     13  2. For each element item of items, do
     14    a. If item is not an Object, throw a TypeError exception.
     15    b. Let method be ? GetMethod(item, %Symbol.iterator%).
     16    ...
     17 features: [iterator-sequencing]
     18 ---*/
     19 
     20 let getIterator = 0;
     21 
     22 let iterable1 = {
     23  get [Symbol.iterator]() {
     24    getIterator++;
     25    return function() {
     26      throw new Test262Error();
     27    };
     28  }
     29 };
     30 
     31 let iterable2 = {
     32  get [Symbol.iterator]() {
     33    throw new Test262Error();
     34  }
     35 };
     36 
     37 assert.sameValue(getIterator, 0);
     38 
     39 assert.throws(TypeError, function() {
     40  Iterator.concat(iterable1, null, iterable2);
     41 });
     42 
     43 assert.sameValue(getIterator, 1);
     44 
     45 reportCompare(0, 0);