Skip to content

Commit c2c6161

Browse files
authored
remove double validation in webidl (#3516)
* webidl don't double validate * remove unused converters * remove BufferSource
1 parent de0424f commit c2c6161

File tree

5 files changed

+8
-58
lines changed

5 files changed

+8
-58
lines changed

lib/web/fetch/request.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -916,18 +916,14 @@ Object.defineProperties(Request.prototype, {
916916
}
917917
})
918918

919-
webidl.converters.Request = webidl.interfaceConverter(
920-
Request
921-
)
922-
923919
// https://fetch.spec.whatwg.org/#requestinfo
924920
webidl.converters.RequestInfo = function (V, prefix, argument) {
925921
if (typeof V === 'string') {
926922
return webidl.converters.USVString(V)
927923
}
928924

929925
if (V instanceof Request) {
930-
return webidl.converters.Request(V, prefix, argument)
926+
return V
931927
}
932928

933929
return webidl.converters.USVString(V)

lib/web/fetch/response.js

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -522,38 +522,26 @@ function fromInnerResponse (innerResponse, guard) {
522522
return response
523523
}
524524

525-
webidl.converters.ReadableStream = webidl.interfaceConverter(
526-
ReadableStream
527-
)
528-
529-
webidl.converters.FormData = webidl.interfaceConverter(
530-
FormData
531-
)
532-
533-
webidl.converters.URLSearchParams = webidl.interfaceConverter(
534-
URLSearchParams
535-
)
536-
537525
// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit
538526
webidl.converters.XMLHttpRequestBodyInit = function (V, prefix, name) {
539527
if (typeof V === 'string') {
540528
return webidl.converters.USVString(V, prefix, name)
541529
}
542530

543531
if (V instanceof Blob) {
544-
return webidl.converters.Blob(V, prefix, name)
532+
return V
545533
}
546534

547535
if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) {
548-
return webidl.converters.BufferSource(V, prefix, name)
536+
return V
549537
}
550538

551539
if (V instanceof FormData) {
552-
return webidl.converters.FormData(V, prefix, name)
540+
return V
553541
}
554542

555543
if (V instanceof URLSearchParams) {
556-
return webidl.converters.URLSearchParams(V, prefix, name)
544+
return V
557545
}
558546

559547
return webidl.converters.DOMString(V, prefix, name)
@@ -562,7 +550,7 @@ webidl.converters.XMLHttpRequestBodyInit = function (V, prefix, name) {
562550
// https://fetch.spec.whatwg.org/#bodyinit
563551
webidl.converters.BodyInit = function (V, prefix, argument) {
564552
if (V instanceof ReadableStream) {
565-
return webidl.converters.ReadableStream(V, prefix, argument)
553+
return V
566554
}
567555

568556
// Note: the spec doesn't include async iterables,

lib/web/fetch/webidl.js

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -654,27 +654,6 @@ webidl.converters.DataView = function (V, prefix, name, opts) {
654654
return V
655655
}
656656

657-
// https://webidl.spec.whatwg.org/#BufferSource
658-
webidl.converters.BufferSource = function (V, prefix, name, opts) {
659-
if (types.isAnyArrayBuffer(V)) {
660-
return webidl.converters.ArrayBuffer(V, prefix, name, { ...opts, allowShared: false })
661-
}
662-
663-
if (types.isTypedArray(V)) {
664-
return webidl.converters.TypedArray(V, V.constructor, prefix, name, { ...opts, allowShared: false })
665-
}
666-
667-
if (types.isDataView(V)) {
668-
return webidl.converters.DataView(V, prefix, name, { ...opts, allowShared: false })
669-
}
670-
671-
throw webidl.errors.conversionFailed({
672-
prefix,
673-
argument: `${name} ("${webidl.util.Stringify(V)}")`,
674-
types: ['BufferSource']
675-
})
676-
}
677-
678657
webidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(
679658
webidl.converters.ByteString
680659
)

lib/web/websocket/websocket.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -794,11 +794,11 @@ webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = functio
794794
webidl.converters.WebSocketSendData = function (V) {
795795
if (webidl.util.Type(V) === 'Object') {
796796
if (V instanceof Blob) {
797-
return webidl.converters.Blob(V)
797+
return V
798798
}
799799

800800
if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) {
801-
return webidl.converters.BufferSource(V)
801+
return V
802802
}
803803
}
804804

test/webidl/converters.js

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -156,19 +156,6 @@ test('DataView', () => {
156156
assert.equal(webidl.converters.DataView(view, 'converter', 'converter'), view)
157157
})
158158

159-
test('BufferSource', () => {
160-
assert.doesNotThrow(() => {
161-
const buffer = new ArrayBuffer(16)
162-
const view = new DataView(buffer, 0)
163-
164-
webidl.converters.BufferSource(view, 'converter', 'converter')
165-
})
166-
167-
assert.throws(() => {
168-
webidl.converters.BufferSource(3, 'converter', 'converter')
169-
}, TypeError)
170-
})
171-
172159
test('ByteString', () => {
173160
assert.doesNotThrow(() => {
174161
webidl.converters.ByteString('', 'converter', 'converter')

0 commit comments

Comments
 (0)