Skip to content

Commit 406ff32

Browse files
debadree25danielleadams
authored andcommittedApr 3, 2023
stream: dont access Object.prototype.type during TransformStream init
Fixes: #46355 PR-URL: #46389 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
1 parent 4165cf3 commit 406ff32

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed
 

‎lib/internal/webstreams/transformstream.js

+2
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ function initializeTransformStream(
358358
readableSizeAlgorithm) {
359359

360360
const writable = new WritableStream({
361+
__proto__: null,
361362
start() { return startPromise.promise; },
362363
write(chunk) {
363364
return transformStreamDefaultSinkWriteAlgorithm(stream, chunk);
@@ -374,6 +375,7 @@ function initializeTransformStream(
374375
});
375376

376377
const readable = new ReadableStream({
378+
__proto__: null,
377379
start() { return startPromise.promise; },
378380
pull() {
379381
return transformStreamDefaultSourcePullAlgorithm(stream);

‎test/parallel/test-whatwg-transformstream.js

+19
Original file line numberDiff line numberDiff line change
@@ -186,3 +186,22 @@ class Source {
186186
inspect(controller, { depth: 0 }),
187187
/TransformStreamDefaultController \[/);
188188
}
189+
190+
{
191+
Object.defineProperty(Object.prototype, 'type', {
192+
get: common.mustNotCall('get %Object.prototype%.type'),
193+
set: common.mustNotCall('set %Object.prototype%.type'),
194+
configurable: true,
195+
});
196+
197+
new TransformStream({
198+
transform(chunk, controller) {
199+
controller.enqueue(chunk);
200+
},
201+
flush(controller) {
202+
controller.terminate();
203+
}
204+
});
205+
206+
delete Object.prototype.type;
207+
}

0 commit comments

Comments
 (0)
Please sign in to comment.