buffer: add @@toStringTag to Blob

This commit adds the toStringTag to the Blob class to match
the behavior of Chrome and Firefox.

PR-URL: https://github.com/nodejs/node/pull/37336
Fixes: https://github.com/nodejs/node/issues/37337
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
cjihrig
2021-02-12 17:27:06 -05:00
parent 0177d4cc20
commit a7ba592483
2 changed files with 18 additions and 0 deletions

View File

@@ -2,12 +2,14 @@
const {
ArrayFrom,
ObjectDefineProperty,
ObjectSetPrototypeOf,
PromiseResolve,
RegExpPrototypeTest,
StringPrototypeToLowerCase,
Symbol,
SymbolIterator,
SymbolToStringTag,
Uint8Array,
} = primordials;
@@ -217,6 +219,11 @@ class Blob extends JSTransferable {
}
}
ObjectDefineProperty(Blob.prototype, SymbolToStringTag, {
configurable: true,
value: 'Blob',
});
InternalBlob.prototype.constructor = Blob;
ObjectSetPrototypeOf(
InternalBlob.prototype,

View File

@@ -184,3 +184,14 @@ assert.throws(() => new Blob(['test', 1]), {
const b = new Blob(['hello'], { type: '\x01' });
assert.strictEqual(b.type, '');
}
{
const descriptor =
Object.getOwnPropertyDescriptor(Blob.prototype, Symbol.toStringTag);
assert.deepStrictEqual(descriptor, {
configurable: true,
enumerable: false,
value: 'Blob',
writable: false
});
}