Skip to content

Commit

Permalink
stream: fix web streams have no Symbol.toStringTag
Browse files Browse the repository at this point in the history
  • Loading branch information
MrJithil committed Oct 25, 2022
1 parent bb7650b commit 6f86553
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 26 deletions.
14 changes: 10 additions & 4 deletions lib/internal/webstreams/queuingstrategies.js
Expand Up @@ -56,14 +56,20 @@ const byteSizeFunction = ObjectDefineProperty(
);
const countSizeFunction = ObjectDefineProperty(() => 1, 'name', nameDescriptor);

const getSymbolToStringTagProperty = (value) =>{
return {
__proto__: null,
configurable: true,
value
}
}

/**
* @type {QueuingStrategy}
*/
class ByteLengthQueuingStrategy {
[kType] = 'ByteLengthQueuingStrategy';

get [SymbolToStringTag]() { return this[kType]; }

/**
* @param {{
* highWaterMark : number
Expand Down Expand Up @@ -110,6 +116,7 @@ class ByteLengthQueuingStrategy {
ObjectDefineProperties(ByteLengthQueuingStrategy.prototype, {
highWaterMark: kEnumerableProperty,
size: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(ByteLengthQueuingStrategy.name)
});

/**
Expand All @@ -118,8 +125,6 @@ ObjectDefineProperties(ByteLengthQueuingStrategy.prototype, {
class CountQueuingStrategy {
[kType] = 'CountQueuingStrategy';

get [SymbolToStringTag]() { return this[kType]; }

/**
* @param {{
* highWaterMark : number
Expand Down Expand Up @@ -166,6 +171,7 @@ class CountQueuingStrategy {
ObjectDefineProperties(CountQueuingStrategy.prototype, {
highWaterMark: kEnumerableProperty,
size: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(CountQueuingStrategy.name)
});

module.exports = {
Expand Down
27 changes: 15 additions & 12 deletions lib/internal/webstreams/readablestream.js
Expand Up @@ -141,6 +141,14 @@ const kError = Symbol('kError');
const kPull = Symbol('kPull');
const kRelease = Symbol('kRelease');

const getSymbolToStringTagProperty = (value) =>{
return {
__proto__: null,
configurable: true,
value
}
}

/**
* @typedef {import('../abort_controller').AbortSignal} AbortSignal
* @typedef {import('./queuingstrategies').QueuingStrategy} QueuingStrategy
Expand Down Expand Up @@ -206,8 +214,6 @@ const kRelease = Symbol('kRelease');
class ReadableStream {
[kType] = 'ReadableStream';

get [SymbolToStringTag]() { return this[kType]; }

/**
* @param {UnderlyingSource} [source]
* @param {QueuingStrategy} [strategy]
Expand Down Expand Up @@ -604,6 +610,7 @@ ObjectDefineProperties(ReadableStream.prototype, {
pipeThrough: kEnumerableProperty,
pipeTo: kEnumerableProperty,
tee: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(ReadableStream.name)
});

function TransferredReadableStream() {
Expand All @@ -629,8 +636,6 @@ TransferredReadableStream.prototype[kDeserialize] = () => {};
class ReadableStreamBYOBRequest {
[kType] = 'ReadableStreamBYOBRequest';

get [SymbolToStringTag]() { return this[kType]; }

constructor() {
throw new ERR_ILLEGAL_CONSTRUCTOR();
}
Expand Down Expand Up @@ -710,6 +715,7 @@ ObjectDefineProperties(ReadableStreamBYOBRequest.prototype, {
view: kEnumerableProperty,
respond: kEnumerableProperty,
respondWithNewView: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(ReadableStreamBYOBRequest.name)
});

function createReadableStreamBYOBRequest(controller, view) {
Expand Down Expand Up @@ -769,8 +775,6 @@ class ReadIntoRequest {
class ReadableStreamDefaultReader {
[kType] = 'ReadableStreamDefaultReader';

get [SymbolToStringTag]() { return this[kType]; }

/**
* @param {ReadableStream} stream
*/
Expand Down Expand Up @@ -854,13 +858,12 @@ ObjectDefineProperties(ReadableStreamDefaultReader.prototype, {
read: kEnumerableProperty,
releaseLock: kEnumerableProperty,
cancel: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(ReadableStreamDefaultReader.name)
});

class ReadableStreamBYOBReader {
[kType] = 'ReadableStreamBYOBReader';

get [SymbolToStringTag]() { return this[kType]; }

/**
* @param {ReadableStream} stream
*/
Expand Down Expand Up @@ -971,13 +974,12 @@ ObjectDefineProperties(ReadableStreamBYOBReader.prototype, {
read: kEnumerableProperty,
releaseLock: kEnumerableProperty,
cancel: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(ReadableStreamBYOBReader.name)
});

class ReadableStreamDefaultController {
[kType] = 'ReadableStreamDefaultController';

get [SymbolToStringTag]() { return this[kType]; }

constructor() {
throw new ERR_ILLEGAL_CONSTRUCTOR();
}
Expand Down Expand Up @@ -1032,6 +1034,7 @@ ObjectDefineProperties(ReadableStreamDefaultController.prototype, {
close: kEnumerableProperty,
enqueue: kEnumerableProperty,
error: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(ReadableStreamDefaultController.name)
});

function createReadableStreamDefaultController() {
Expand All @@ -1048,8 +1051,6 @@ function createReadableStreamDefaultController() {
class ReadableByteStreamController {
[kType] = 'ReadableByteStreamController';

get [SymbolToStringTag]() { return this[kType]; }

constructor() {
throw new ERR_ILLEGAL_CONSTRUCTOR();
}
Expand Down Expand Up @@ -1168,6 +1169,8 @@ ObjectDefineProperties(ReadableByteStreamController.prototype, {
close: kEnumerableProperty,
enqueue: kEnumerableProperty,
error: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(ReadableByteStreamController.name)

});

function createReadableByteStreamController() {
Expand Down
14 changes: 10 additions & 4 deletions lib/internal/webstreams/transformstream.js
Expand Up @@ -64,6 +64,14 @@ const {

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

const getSymbolToStringTagProperty = (value) =>{
return {
__proto__: null,
configurable: true,
value
}
}

/**
* @typedef {import('./queuingstrategies').QueuingStrategy
* } QueuingStrategy
Expand Down Expand Up @@ -102,8 +110,6 @@ const assert = require('internal/assert');
class TransformStream {
[kType] = 'TransformStream';

get [SymbolToStringTag]() { return this[kType]; }

/**
* @param {Transformer} [transformer]
* @param {QueuingStrategy} [writableStrategy]
Expand Down Expand Up @@ -236,6 +242,7 @@ class TransformStream {
ObjectDefineProperties(TransformStream.prototype, {
readable: kEnumerableProperty,
writable: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(TransformStream.name)
});

function TransferredTransformStream() {
Expand All @@ -261,8 +268,6 @@ TransferredTransformStream.prototype[kDeserialize] = () => {};
class TransformStreamDefaultController {
[kType] = 'TransformStreamDefaultController';

get [SymbolToStringTag]() { return this[kType]; }

constructor() {
throw new ERR_ILLEGAL_CONSTRUCTOR();
}
Expand Down Expand Up @@ -322,6 +327,7 @@ ObjectDefineProperties(TransformStreamDefaultController.prototype, {
enqueue: kEnumerableProperty,
error: kEnumerableProperty,
terminate: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(TransformStreamDefaultController.name)
});

function createTransformStreamDefaultController() {
Expand Down
16 changes: 10 additions & 6 deletions lib/internal/webstreams/writablestream.js
Expand Up @@ -77,6 +77,14 @@ const kAbort = Symbol('kAbort');
const kCloseSentinel = Symbol('kCloseSentinel');
const kError = Symbol('kError');

const getSymbolToStringTagProperty = (value) =>{
return {
__proto__: null,
configurable: true,
value
}
}

/**
* @typedef {import('../abort_controller').AbortSignal} AbortSignal
* @typedef {import('./queuingstrategies').QueuingStrategy
Expand Down Expand Up @@ -121,8 +129,6 @@ const kError = Symbol('kError');
class WritableStream {
[kType] = 'WritableStream';

get [SymbolToStringTag]() { return this[kType]; }

/**
* @param {UnderlyingSink} [sink]
* @param {QueuingStrategy} [strategy]
Expand Down Expand Up @@ -295,6 +301,7 @@ ObjectDefineProperties(WritableStream.prototype, {
abort: kEnumerableProperty,
close: kEnumerableProperty,
getWriter: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(WritableStream.name)
});

function TransferredWritableStream() {
Expand Down Expand Up @@ -348,8 +355,6 @@ TransferredWritableStream.prototype[kDeserialize] = () => {};
class WritableStreamDefaultWriter {
[kType] = 'WritableStreamDefaultWriter';

get [SymbolToStringTag]() { return this[kType]; }

/**
* @param {WritableStream} stream
*/
Expand Down Expand Up @@ -487,13 +492,12 @@ ObjectDefineProperties(WritableStreamDefaultWriter.prototype, {
close: kEnumerableProperty,
releaseLock: kEnumerableProperty,
write: kEnumerableProperty,
[SymbolToStringTag]: getSymbolToStringTagProperty(WritableStreamDefaultWriter.name)
});

class WritableStreamDefaultController {
[kType] = 'WritableStreamDefaultController';

get [SymbolToStringTag]() { return this[kType]; }

constructor() {
throw new ERR_ILLEGAL_CONSTRUCTOR();
}
Expand Down

0 comments on commit 6f86553

Please sign in to comment.