◐ Shell
clean mode source ↗

stream: validate ReadableStream.from iterator objects · nodejs/node@24a0781

Original file line numberDiff line numberDiff line change

@@ -7,3 +7,22 @@ assert.throws(

77

() => ReadableStream.from({}),

88

{ code: 'ERR_ARG_NOT_ITERABLE', name: 'TypeError' },

99

);

10+
11+

const invalidIterators = [

12+

{ [Symbol.iterator]: () => 42 },

13+

{ [Symbol.asyncIterator]: () => 42 },

14+

];

15+
16+

for (const iterable of invalidIterators) {

17+

assert.throws(

18+

() => ReadableStream.from(iterable),

19+

{ code: 'ERR_INVALID_STATE', name: 'TypeError' },

20+

);

21+

}

22+
23+

function functionIterator() {}

24+
25+

// doesNotThrow

26+

ReadableStream.from({

27+

[Symbol.iterator]: () => functionIterator,

28+

});