Skip to content

Commit

Permalink
stream: fix web streams have no Symbol.toStringTag
Browse files Browse the repository at this point in the history
fix web streams have no Symbol.toStringTag
  • Loading branch information
MrJithil committed Oct 22, 2022
1 parent e43d191 commit c1cb095
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 13 deletions.
10 changes: 8 additions & 2 deletions lib/internal/webstreams/queuingstrategies.js
Expand Up @@ -60,7 +60,10 @@ const countSizeFunction = ObjectDefineProperty(() => 1, 'name', nameDescriptor);
* @type {QueuingStrategy}
*/
class ByteLengthQueuingStrategy {
[kType] = 'ByteLengthQueuingStrategy';

get [kType]() {
return 'ByteLengthQueuingStrategy';
}

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

Expand Down Expand Up @@ -116,7 +119,10 @@ ObjectDefineProperties(ByteLengthQueuingStrategy.prototype, {
* @type {QueuingStrategy}
*/
class CountQueuingStrategy {
[kType] = 'CountQueuingStrategy';

get [kType]() {
return 'CountQueuingStrategy';
}

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

Expand Down
31 changes: 25 additions & 6 deletions lib/internal/webstreams/readablestream.js
Expand Up @@ -204,7 +204,10 @@ const kRelease = Symbol('kRelease');
*/

class ReadableStream {
[kType] = 'ReadableStream';

get [kType]() {
return 'ReadableStream';
}

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

Expand Down Expand Up @@ -627,7 +630,10 @@ function TransferredReadableStream() {
TransferredReadableStream.prototype[kDeserialize] = () => {};

class ReadableStreamBYOBRequest {
[kType] = 'ReadableStreamBYOBRequest';

get [kType]() {
return 'ReadableStreamBYOBRequest';
}

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

Expand Down Expand Up @@ -767,7 +773,10 @@ class ReadIntoRequest {
}

class ReadableStreamDefaultReader {
[kType] = 'ReadableStreamDefaultReader';

get [kType]() {
return 'ReadableStreamDefaultReader';
}

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

Expand Down Expand Up @@ -857,7 +866,11 @@ ObjectDefineProperties(ReadableStreamDefaultReader.prototype, {
});

class ReadableStreamBYOBReader {
[kType] = 'ReadableStreamBYOBReader';

get [kType]() {
return 'ReadableStreamBYOBReader';
}


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

Expand Down Expand Up @@ -974,7 +987,10 @@ ObjectDefineProperties(ReadableStreamBYOBReader.prototype, {
});

class ReadableStreamDefaultController {
[kType] = 'ReadableStreamDefaultController';

get [kType]() {
return 'ReadableStreamDefaultController';
}

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

Expand Down Expand Up @@ -1046,7 +1062,10 @@ function createReadableStreamDefaultController() {
}

class ReadableByteStreamController {
[kType] = 'ReadableByteStreamController';

get [kType]() {
return 'ReadableByteStreamController';
}

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

Expand Down
10 changes: 8 additions & 2 deletions lib/internal/webstreams/transformstream.js
Expand Up @@ -100,7 +100,10 @@ const assert = require('internal/assert');
*/

class TransformStream {
[kType] = 'TransformStream';

get [kType]() {
return 'TransformStream';
}

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

Expand Down Expand Up @@ -259,7 +262,10 @@ function TransferredTransformStream() {
TransferredTransformStream.prototype[kDeserialize] = () => {};

class TransformStreamDefaultController {
[kType] = 'TransformStreamDefaultController';

get [kType]() {
return 'TransformStreamDefaultController';
}

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

Expand Down
15 changes: 12 additions & 3 deletions lib/internal/webstreams/writablestream.js
Expand Up @@ -119,7 +119,10 @@ const kError = Symbol('kError');
*/

class WritableStream {
[kType] = 'WritableStream';

get [kType]() {
return 'WritableStream';
}

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

Expand Down Expand Up @@ -346,7 +349,10 @@ function TransferredWritableStream() {
TransferredWritableStream.prototype[kDeserialize] = () => {};

class WritableStreamDefaultWriter {
[kType] = 'WritableStreamDefaultWriter';

get [kType]() {
return 'WritableStreamDefaultWriter';
}

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

Expand Down Expand Up @@ -490,7 +496,10 @@ ObjectDefineProperties(WritableStreamDefaultWriter.prototype, {
});

class WritableStreamDefaultController {
[kType] = 'WritableStreamDefaultController';

get [kType]() {
return 'WritableStreamDefaultController';
}

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

Expand Down
22 changes: 22 additions & 0 deletions test/parallel/test-webstream-string-tag.js
@@ -0,0 +1,22 @@
'use strict';

require('../common');

const assert = require('assert');

assert.strictEqual(WritableStream.prototype[Symbol.toStringTag], 'WritableStream');
assert.strictEqual(WritableStreamDefaultWriter.prototype[Symbol.toStringTag], 'WritableStreamDefaultWriter');
assert.strictEqual(WritableStreamDefaultController.prototype[Symbol.toStringTag], 'WritableStreamDefaultController');

assert.strictEqual(ReadableStream.prototype[Symbol.toStringTag], 'ReadableStream');
assert.strictEqual(ReadableStreamBYOBRequest.prototype[Symbol.toStringTag], 'ReadableStreamBYOBRequest');
assert.strictEqual(ReadableStreamDefaultReader.prototype[Symbol.toStringTag], 'ReadableStreamDefaultReader');
assert.strictEqual(ReadableStreamBYOBReader.prototype[Symbol.toStringTag], 'ReadableStreamBYOBReader');
assert.strictEqual(ReadableStreamDefaultController.prototype[Symbol.toStringTag], 'ReadableStreamDefaultController');
assert.strictEqual(ReadableByteStreamController.prototype[Symbol.toStringTag], 'ReadableByteStreamController');

assert.strictEqual(ByteLengthQueuingStrategy.prototype[Symbol.toStringTag], 'ByteLengthQueuingStrategy');
assert.strictEqual(CountQueuingStrategy.prototype[Symbol.toStringTag], 'CountQueuingStrategy');

assert.strictEqual(TransformStream.prototype[Symbol.toStringTag], 'TransformStream');
assert.strictEqual(TransformStreamDefaultController.prototype[Symbol.toStringTag], 'TransformStreamDefaultController');

0 comments on commit c1cb095

Please sign in to comment.