diff options
Diffstat (limited to 'js/src/tests/non262/Iterator/prototype/map/throw-when-iterator-returns-non-object.js')
-rw-r--r-- | js/src/tests/non262/Iterator/prototype/map/throw-when-iterator-returns-non-object.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/js/src/tests/non262/Iterator/prototype/map/throw-when-iterator-returns-non-object.js b/js/src/tests/non262/Iterator/prototype/map/throw-when-iterator-returns-non-object.js new file mode 100644 index 0000000000..287507a2f6 --- /dev/null +++ b/js/src/tests/non262/Iterator/prototype/map/throw-when-iterator-returns-non-object.js @@ -0,0 +1,24 @@ +// |reftest| skip-if(!this.hasOwnProperty('Iterator')) +// + +/*--- +esid: pending +description: Throw TypeError if `next` call returns non-object. +info: +features: [iterator-helpers] +---*/ + +const iterator = returnValue => Object.setPrototypeOf({ + next: () => returnValue, +}, Iterator.prototype); +const mapper = x => x; + +assertThrowsInstanceOf(() => iterator(undefined).map(mapper).next(), TypeError); +assertThrowsInstanceOf(() => iterator(null).map(mapper).next(), TypeError); +assertThrowsInstanceOf(() => iterator(0).map(mapper).next(), TypeError); +assertThrowsInstanceOf(() => iterator(false).map(mapper).next(), TypeError); +assertThrowsInstanceOf(() => iterator('').map(mapper).next(), TypeError); +assertThrowsInstanceOf(() => iterator(Symbol()).map(mapper).next(), TypeError); + +if (typeof reportCompare == 'function') + reportCompare(0, 0); |