Skip to content

Commit bfefd98

Browse files
committed
Revert "fixup! short circuit with toWeb"
This reverts commit 06d670f.
1 parent bf08711 commit bfefd98

File tree

3 files changed

+8
-107
lines changed

3 files changed

+8
-107
lines changed

lib/internal/streams/readable.js

+2-12
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ const {
3434
SymbolAsyncDispose,
3535
SymbolAsyncIterator,
3636
Symbol,
37-
SymbolFor,
3837
} = primordials;
3938

4039
module.exports = Readable;
@@ -75,12 +74,6 @@ const { validateObject } = require('internal/validators');
7574

7675
const kPaused = Symbol('kPaused');
7776

78-
// This symbol is used to allow interop with ReadableStream
79-
// to allow checking for prototype pollution in the
80-
// async iterator to allow for using the toWeb functionality
81-
// in ReadableStream.from() implementation.
82-
const originalAsyncIteratorPrototype = SymbolFor('nodejs.stream.originalAsyncIteratorPrototype');
83-
8477
const { StringDecoder } = require('string_decoder');
8578
const from = require('internal/streams/from');
8679

@@ -1101,12 +1094,9 @@ Readable.prototype.wrap = function(stream) {
11011094
return this;
11021095
};
11031096

1104-
function asyncIteratorPrototype() {
1097+
Readable.prototype[SymbolAsyncIterator] = function() {
11051098
return streamToAsyncIterator(this);
1106-
}
1107-
1108-
Readable.prototype[SymbolAsyncIterator] = asyncIteratorPrototype;
1109-
Readable.prototype[originalAsyncIteratorPrototype] = asyncIteratorPrototype;
1099+
};
11101100

11111101
Readable.prototype.iterator = function(options) {
11121102
if (options !== undefined) {

lib/internal/webstreams/readablestream.js

+6-23
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ const {
2323
Symbol,
2424
SymbolAsyncIterator,
2525
SymbolToStringTag,
26-
SymbolFor,
2726
Uint8Array,
2827
} = primordials;
2928

@@ -83,7 +82,6 @@ const {
8382
kIsReadable,
8483
kIsClosedPromise,
8584
kControllerErrorFunction,
86-
isReadableNodeStream,
8785
} = require('internal/streams/utils');
8886

8987
const {
@@ -141,18 +139,9 @@ const kChunk = Symbol('kChunk');
141139
const kError = Symbol('kError');
142140
const kPull = Symbol('kPull');
143141
const kRelease = Symbol('kRelease');
144-
const kReadableOriginalAsyncIteratorPrototype = SymbolFor('nodejs.stream.originalAsyncIteratorPrototype');
145142

146143
let releasedError;
147144
let releasingError;
148-
let readableStreamAdapters;
149-
150-
function lazyReadableStreamAdapters() {
151-
if (!readableStreamAdapters) {
152-
readableStreamAdapters = require('internal/webstreams/adapters');
153-
}
154-
return readableStreamAdapters;
155-
}
156145

157146
const userModuleRegExp = /^ {4}at (?:[^/\\(]+ \()(?!node:(.+):\d+:\d+\)$).*/gm;
158147

@@ -1266,17 +1255,6 @@ const isReadableStreamBYOBReader =
12661255
// ---- ReadableStream Implementation
12671256

12681257
function readableStreamFromIterable(iterable) {
1269-
const strategy = {
1270-
size() {
1271-
return 1;
1272-
},
1273-
highWaterMark: 0,
1274-
};
1275-
if (isReadableNodeStream(iterable) &&
1276-
iterable[kReadableOriginalAsyncIteratorPrototype] === iterable[SymbolAsyncIterator]) {
1277-
return lazyReadableStreamAdapters().newReadableStreamFromStreamReadable(iterable, strategy);
1278-
}
1279-
12801258
let stream;
12811259
const iteratorRecord = getIterator(iterable, 'async');
12821260

@@ -1319,7 +1297,12 @@ function readableStreamFromIterable(iterable) {
13191297
start: startAlgorithm,
13201298
pull: pullAlgorithm,
13211299
cancel: cancelAlgorithm,
1322-
}, strategy);
1300+
}, {
1301+
size() {
1302+
return 1;
1303+
},
1304+
highWaterMark: 0,
1305+
});
13231306

13241307
return stream;
13251308
}

test/parallel/test-readablestream-from-prototype-pollution.js

-72
This file was deleted.

0 commit comments

Comments
 (0)