diff --git a/lib/internal/blob.js b/lib/internal/blob.js index 397bffabba7b5a..69feb22c3304f0 100644 --- a/lib/internal/blob.js +++ b/lib/internal/blob.js @@ -4,6 +4,7 @@ const { ArrayFrom, MathMax, MathMin, + ObjectDefineProperties, ObjectDefineProperty, PromiseResolve, PromiseReject, @@ -45,6 +46,7 @@ const { createDeferredPromise, customInspectSymbol: kInspect, kEmptyObject, + kEnumerableProperty, } = require('internal/util'); const { inspect } = require('internal/util/inspect'); @@ -364,6 +366,15 @@ ObjectDefineProperty(Blob.prototype, SymbolToStringTag, { value: 'Blob', }); +ObjectDefineProperties(Blob.prototype, { + size: kEnumerableProperty, + type: kEnumerableProperty, + slice: kEnumerableProperty, + stream: kEnumerableProperty, + text: kEnumerableProperty, + arrayBuffer: kEnumerableProperty, +}); + function resolveObjectURL(url) { url = `${url}`; try { diff --git a/lib/internal/url.js b/lib/internal/url.js index 2a4ffefe245070..1f84e05e1d6142 100644 --- a/lib/internal/url.js +++ b/lib/internal/url.js @@ -1065,6 +1065,11 @@ ObjectDefineProperties(URL.prototype, { toJSON: kEnumerableProperty, }); +ObjectDefineProperties(URL, { + createObjectURL: kEnumerableProperty, + revokeObjectURL: kEnumerableProperty, +}); + function update(url, params) { if (!url) return; diff --git a/test/parallel/test-blob.js b/test/parallel/test-blob.js index fe66ff08f945e1..7bec9dbf69e7c5 100644 --- a/test/parallel/test-blob.js +++ b/test/parallel/test-blob.js @@ -187,6 +187,23 @@ assert.throws(() => new Blob({}), { }); } +{ + const descriptors = Object.getOwnPropertyDescriptors(Blob.prototype); + const enumerable = [ + 'size', + 'type', + 'slice', + 'stream', + 'text', + 'arrayBuffer', + ]; + + for (const prop of enumerable) { + assert.notStrictEqual(descriptors[prop], undefined); + assert.strictEqual(descriptors[prop].enumerable, true); + } +} + { const b = new Blob(['test', 42]); b.text().then(common.mustCall((text) => { diff --git a/test/parallel/test-whatwg-url-properties.js b/test/parallel/test-whatwg-url-properties.js index 067a32919571ac..a74fa93ddfaf28 100644 --- a/test/parallel/test-whatwg-url-properties.js +++ b/test/parallel/test-whatwg-url-properties.js @@ -28,6 +28,13 @@ const { URL, URLSearchParams } = require('url'); testAccessor(URL.prototype, name, readonly); }); +[ + { name: 'createObjectURL' }, + { name: 'revokeObjectURL' }, +].forEach(({ name }) => { + testStaticAccessor(URL, name); +}); + [ { name: 'append' }, { name: 'delete' }, @@ -98,3 +105,12 @@ function testAccessor(target, name, readonly = false) { ); } } + +function testStaticAccessor(target, name) { + const desc = Object.getOwnPropertyDescriptor(target, name); + assert.notStrictEqual(desc, undefined); + + assert.strictEqual(desc.configurable, true); + assert.strictEqual(desc.enumerable, true); + assert.strictEqual(desc.writable, true); +}