Skip to content

Commit 8dd0e0a

Browse files
Millydomenic
authored andcommitted
Fix ReadableStream.from accepts iterable/async iterable
The proposal accepts Iterable/AsyncIterable objects, but previous tests tested IterableIterator/AsyncIterableIterator. This change breaks Deno v1.43.5. However, Node v20.13.1 and Firefox 126.0 are implemented correctly.
1 parent ad2c43b commit 8dd0e0a

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

streams/readable-streams/from.any.js

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,44 +51,50 @@ const iterableFactories = [
5151

5252
['a sync iterable of values', () => {
5353
const chunks = ['a', 'b'];
54-
const it = {
54+
const iterator = {
5555
next() {
5656
return {
5757
done: chunks.length === 0,
5858
value: chunks.shift()
5959
};
60-
},
61-
[Symbol.iterator]: () => it
60+
}
61+
};
62+
const iterable = {
63+
[Symbol.iterator]: () => iterator
6264
};
63-
return it;
65+
return iterable;
6466
}],
6567

6668
['a sync iterable of promises', () => {
6769
const chunks = ['a', 'b'];
68-
const it = {
70+
const iterator = {
6971
next() {
7072
return chunks.length === 0 ? { done: true } : {
7173
done: false,
7274
value: Promise.resolve(chunks.shift())
7375
};
74-
},
75-
[Symbol.iterator]: () => it
76+
}
7677
};
77-
return it;
78+
const iterable = {
79+
[Symbol.iterator]: () => iterator
80+
};
81+
return iterable;
7882
}],
7983

8084
['an async iterable', () => {
8185
const chunks = ['a', 'b'];
82-
const it = {
86+
const asyncIterator = {
8387
next() {
8488
return Promise.resolve({
8589
done: chunks.length === 0,
8690
value: chunks.shift()
8791
})
88-
},
89-
[Symbol.asyncIterator]: () => it
92+
}
93+
};
94+
const asyncIterable = {
95+
[Symbol.asyncIterator]: () => asyncIterator
9096
};
91-
return it;
97+
return asyncIterable;
9298
}],
9399

94100
['a ReadableStream', () => {

0 commit comments

Comments
 (0)