Skip to content

Commit 406ff32

Browse files
debadree25danielleadams
authored andcommitted
stream: dont access Object.prototype.type during TransformStream init
Fixes: #46355 PR-URL: #46389 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
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‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ function initializeTransformStream(
358358
readableSizeAlgorithm){
359359

360360
constwritable=newWritableStream({
361+
__proto__: null,
361362
start(){returnstartPromise.promise;},
362363
write(chunk){
363364
returntransformStreamDefaultSinkWriteAlgorithm(stream,chunk);
@@ -374,6 +375,7 @@ function initializeTransformStream(
374375
});
375376

376377
constreadable=newReadableStream({
378+
__proto__: null,
377379
start(){returnstartPromise.promise;},
378380
pull(){
379381
returntransformStreamDefaultSourcePullAlgorithm(stream);

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

Lines changed: 19 additions & 0 deletions
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+
newTransformStream({
198+
transform(chunk,controller){
199+
controller.enqueue(chunk);
200+
},
201+
flush(controller){
202+
controller.terminate();
203+
}
204+
});
205+
206+
deleteObject.prototype.type;
207+
}

0 commit comments

Comments
(0)