Skip to content

Commit 804399a

Browse files
committed
stream: wip
1 parent 639c575 commit 804399a

3 files changed

Lines changed: 19 additions & 15 deletions

File tree

lib/internal/webstreams/readablestream.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ const kChunk = Symbol('kChunk');
140140
const kError = Symbol('kError');
141141
const kPull = Symbol('kPull');
142142
const kRelease = Symbol('kRelease');
143+
const kSkipThrow = Symbol('kSkipThrow');
143144

144145
let releasedError;
145146
let releasingError;
@@ -1019,8 +1020,8 @@ ObjectDefineProperties(ReadableStreamBYOBReader.prototype, {
10191020
class ReadableStreamDefaultController {
10201021
[kType] = 'ReadableStreamDefaultController';
10211022

1022-
constructor() {
1023-
if (new.target === ReadableStreamDefaultController) {
1023+
constructor(skipThrowSymbol) {
1024+
if (new.target === ReadableStreamDefaultController || skipThrowSymbol !== kSkipThrow) {
10241025
throw new ERR_ILLEGAL_CONSTRUCTOR();
10251026
}
10261027
}
@@ -1079,8 +1080,8 @@ ObjectDefineProperties(ReadableStreamDefaultController.prototype, {
10791080
});
10801081

10811082
class ReadableStreamDefaultControllerClazz extends ReadableStreamDefaultController {
1082-
constructor() {
1083-
super();
1083+
constructor(skipThrowSymbol) {
1084+
super(skipThrowSymbol);
10841085
this[kType] = 'ReadableStreamDefaultController';
10851086
this[kState] = {};
10861087
}
@@ -2414,7 +2415,7 @@ function setupReadableStreamDefaultControllerFromSource(
24142415
source,
24152416
highWaterMark,
24162417
sizeAlgorithm) {
2417-
const controller = new ReadableStreamDefaultControllerClazz();
2418+
const controller = new ReadableStreamDefaultControllerClazz(kSkipThrow);
24182419
const start = source?.start;
24192420
const pull = source?.pull;
24202421
const cancel = source?.cancel;

lib/internal/webstreams/transformstream.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ const {
6565

6666
const assert = require('internal/assert');
6767

68+
const kSkipThrow = Symbol('kSkipThrow');
69+
6870
const getNonWritablePropertyDescriptor = (value) => {
6971
return {
7072
__proto__: null,
@@ -268,8 +270,8 @@ TransferredTransformStream.prototype[kDeserialize] = () => {};
268270
class TransformStreamDefaultController {
269271
[kType] = 'TransformStreamDefaultController';
270272

271-
constructor() {
272-
if (new.target === TransformStreamDefaultController) {
273+
constructor(skipThrowSymbol) {
274+
if (skipThrowSymbol !== kSkipThrow) {
273275
throw new ERR_ILLEGAL_CONSTRUCTOR();
274276
}
275277
}
@@ -333,8 +335,8 @@ ObjectDefineProperties(TransformStreamDefaultController.prototype, {
333335
});
334336

335337
class TransformStreamDefaultControllerClazz extends TransformStreamDefaultController {
336-
constructor() {
337-
super();
338+
constructor(skipThrowSymbol) {
339+
super(skipThrowSymbol);
338340
this[kType] = 'TransformStreamDefaultController';
339341
}
340342
}
@@ -453,7 +455,7 @@ function setupTransformStreamDefaultController(
453455
function setupTransformStreamDefaultControllerFromTransformer(
454456
stream,
455457
transformer) {
456-
const controller = new TransformStreamDefaultControllerClazz();
458+
const controller = new TransformStreamDefaultControllerClazz(kSkipThrow);
457459
const transform = transformer?.transform || defaultTransformAlgorithm;
458460
const flush = transformer?.flush || nonOpFlush;
459461
const transformAlgorithm =

lib/internal/webstreams/writablestream.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ const assert = require('internal/assert');
8181
const kAbort = Symbol('kAbort');
8282
const kCloseSentinel = Symbol('kCloseSentinel');
8383
const kError = Symbol('kError');
84+
const kSkipThrow = Symbol('kSkipThrow');
8485

8586
let releasedError;
8687

@@ -522,8 +523,8 @@ ObjectDefineProperties(WritableStreamDefaultWriter.prototype, {
522523
class WritableStreamDefaultController {
523524
[kType] = 'WritableStreamDefaultController';
524525

525-
constructor() {
526-
if (new.target === WritableStreamDefaultController) {
526+
constructor(skipThrowSymbol) {
527+
if (new.target === WritableStreamDefaultController || skipThrowSymbol !== kSkipThrow) {
527528
throw new ERR_ILLEGAL_CONSTRUCTOR();
528529
}
529530
}
@@ -572,8 +573,8 @@ ObjectDefineProperties(WritableStreamDefaultController.prototype, {
572573
});
573574

574575
class WritableStreamDefaultControllerClazz extends WritableStreamDefaultController {
575-
constructor() {
576-
super();
576+
constructor(skipThrowSymbol) {
577+
super(skipThrowSymbol);
577578
this[kType] = 'WritableStreamDefaultController';
578579
}
579580
}
@@ -1234,7 +1235,7 @@ function setupWritableStreamDefaultControllerFromSink(
12341235
sink,
12351236
highWaterMark,
12361237
sizeAlgorithm) {
1237-
const controller = new WritableStreamDefaultControllerClazz();
1238+
const controller = new WritableStreamDefaultControllerClazz(kSkipThrow);
12381239
const start = sink?.start;
12391240
const write = sink?.write;
12401241
const close = sink?.close;

0 commit comments

Comments
 (0)