GeezerVison is showing github.com — lib: make properties on Blob and URL enumerable · nodejs/node@2a3bd11
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: lib/internal/blob.js +11Lines changed: 11 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 4 | 4 | ArrayFrom, | 5 | 5 | MathMax, | 6 | 6 | MathMin, | | 7 | + ObjectDefineProperties, | 7 | 8 | ObjectDefineProperty, | 8 | 9 | PromiseResolve, | 9 | 10 | PromiseReject, | @@ -45,6 +46,7 @@ const { | 45 | 46 | createDeferredPromise, | 46 | 47 | customInspectSymbol: kInspect, | 47 | 48 | kEmptyObject, | | 49 | + kEnumerableProperty, | 48 | 50 | } = require('internal/util'); | 49 | 51 | const { inspect } = require('internal/util/inspect'); | 50 | 52 |
| @@ -364,6 +366,15 @@ ObjectDefineProperty(Blob.prototype, SymbolToStringTag, { | 364 | 366 | value: 'Blob', | 365 | 367 | }); | 366 | 368 |
| | 369 | +ObjectDefineProperties(Blob.prototype, { | | 370 | + size: kEnumerableProperty, | | 371 | + type: kEnumerableProperty, | | 372 | + slice: kEnumerableProperty, | | 373 | + stream: kEnumerableProperty, | | 374 | + text: kEnumerableProperty, | | 375 | + arrayBuffer: kEnumerableProperty, | | 376 | +}); | | 377 | + | 367 | 378 | function resolveObjectURL(url) { | 368 | 379 | url = `${url}`; | 369 | 380 | try { | |
Collapse file Copy file name to clipboardExpand all lines: lib/internal/url.js +5Lines changed: 5 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -1065,6 +1065,11 @@ ObjectDefineProperties(URL.prototype, { | 1065 | 1065 | toJSON: kEnumerableProperty, | 1066 | 1066 | }); | 1067 | 1067 |
| | 1068 | +ObjectDefineProperties(URL, { | | 1069 | + createObjectURL: kEnumerableProperty, | | 1070 | + revokeObjectURL: kEnumerableProperty, | | 1071 | +}); | | 1072 | + | 1068 | 1073 | function update(url, params) { | 1069 | 1074 | if (!url) | 1070 | 1075 | return; | |
Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-blob.js +17Lines changed: 17 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -187,6 +187,23 @@ assert.throws(() => new Blob({}), { | 187 | 187 | }); | 188 | 188 | } | 189 | 189 |
| | 190 | +{ | | 191 | + const descriptors = Object.getOwnPropertyDescriptors(Blob.prototype); | | 192 | + const enumerable = [ | | 193 | + 'size', | | 194 | + 'type', | | 195 | + 'slice', | | 196 | + 'stream', | | 197 | + 'text', | | 198 | + 'arrayBuffer', | | 199 | + ]; | | 200 | + | | 201 | + for (const prop of enumerable) { | | 202 | + assert.notStrictEqual(descriptors[prop], undefined); | | 203 | + assert.strictEqual(descriptors[prop].enumerable, true); | | 204 | + } | | 205 | +} | | 206 | + | 190 | 207 | { | 191 | 208 | const b = new Blob(['test', 42]); | 192 | 209 | b.text().then(common.mustCall((text) => { | |
Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-whatwg-url-properties.js +16Lines changed: 16 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -28,6 +28,13 @@ const { URL, URLSearchParams } = require('url'); | 28 | 28 | testAccessor(URL.prototype, name, readonly); | 29 | 29 | }); | 30 | 30 |
| | 31 | +[ | | 32 | + { name: 'createObjectURL' }, | | 33 | + { name: 'revokeObjectURL' }, | | 34 | +].forEach(({ name }) => { | | 35 | + testStaticAccessor(URL, name); | | 36 | +}); | | 37 | + | 31 | 38 | [ | 32 | 39 | { name: 'append' }, | 33 | 40 | { name: 'delete' }, | @@ -98,3 +105,12 @@ function testAccessor(target, name, readonly = false) { | 98 | 105 | ); | 99 | 106 | } | 100 | 107 | } | | 108 | + | | 109 | +function testStaticAccessor(target, name) { | | 110 | + const desc = Object.getOwnPropertyDescriptor(target, name); | | 111 | + assert.notStrictEqual(desc, undefined); | | 112 | + | | 113 | + assert.strictEqual(desc.configurable, true); | | 114 | + assert.strictEqual(desc.enumerable, true); | | 115 | + assert.strictEqual(desc.writable, true); | | 116 | +} |
|