node/test/parallel/test-webstream-readable-from.js
Daeyeon Jeong 42a154bad1
stream: validate ReadableStream.from iterator objects
Signed-off-by: Daeyeon Jeong <daeyeon.dev@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/62911
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Matthew Aitken <maitken033380023@gmail.com>
Reviewed-By: Mattias Buelens <mattias@buelens.com>
2026-04-25 14:31:42 +00:00

28 lines
572 B
JavaScript

'use strict';
require('../common');
const assert = require('node:assert');
assert.throws(
() => ReadableStream.from({}),
{ code: 'ERR_ARG_NOT_ITERABLE', name: 'TypeError' },
);
const invalidIterators = [
{ [Symbol.iterator]: () => 42 },
{ [Symbol.asyncIterator]: () => 42 },
];
for (const iterable of invalidIterators) {
assert.throws(
() => ReadableStream.from(iterable),
{ code: 'ERR_INVALID_STATE', name: 'TypeError' },
);
}
function functionIterator() {}
// doesNotThrow
ReadableStream.from({
[Symbol.iterator]: () => functionIterator,
});