summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Iterator/from/return-iterator-if-iterable.js
blob: e83e25185da49850ec08b460d404fe10475e96fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// |reftest| skip-if(!this.hasOwnProperty('Iterator')) -- Iterator is not enabled unconditionally
/*---
  Iterator.from returns O if it is iterable, an iterator, and an instance of Iterator.
---*/

class TestIterator extends Iterator {
  [Symbol.iterator]() {
    return this;
  }

  next() {
    return { done: false, value: this.value++ };
  }

  value = 0;
}

const iter = new TestIterator();
assertEq(iter, Iterator.from(iter));

const arrayIter = [1, 2, 3][Symbol.iterator]();
assertEq(arrayIter, Iterator.from(arrayIter));

if (typeof reportCompare === 'function')
  reportCompare(0, 0);