Skip to content

Commit 57e75d3

Browse files
authored
webidl changes (#3175)
1 parent 24f7ee6 commit 57e75d3

21 files changed

+342
-272
lines changed

lib/web/cache/cache.js

+39-26
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ class Cache {
4242

4343
async match (request, options = {}) {
4444
webidl.brandCheck(this, Cache)
45-
webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })
4645

47-
request = webidl.converters.RequestInfo(request)
48-
options = webidl.converters.CacheQueryOptions(options)
46+
const prefix = 'Cache.match'
47+
webidl.argumentLengthCheck(arguments, 1, prefix)
48+
49+
request = webidl.converters.RequestInfo(request, prefix, 'request')
50+
options = webidl.converters.CacheQueryOptions(options, prefix, 'options')
4951

5052
const p = this.#internalMatchAll(request, options, 1)
5153

@@ -59,17 +61,20 @@ class Cache {
5961
async matchAll (request = undefined, options = {}) {
6062
webidl.brandCheck(this, Cache)
6163

62-
if (request !== undefined) request = webidl.converters.RequestInfo(request)
63-
options = webidl.converters.CacheQueryOptions(options)
64+
const prefix = 'Cache.matchAll'
65+
if (request !== undefined) request = webidl.converters.RequestInfo(request, prefix, 'request')
66+
options = webidl.converters.CacheQueryOptions(options, prefix, 'options')
6467

6568
return this.#internalMatchAll(request, options)
6669
}
6770

6871
async add (request) {
6972
webidl.brandCheck(this, Cache)
70-
webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })
7173

72-
request = webidl.converters.RequestInfo(request)
74+
const prefix = 'Cache.add'
75+
webidl.argumentLengthCheck(arguments, 1, prefix)
76+
77+
request = webidl.converters.RequestInfo(request, prefix, 'request')
7378

7479
// 1.
7580
const requests = [request]
@@ -83,7 +88,9 @@ class Cache {
8388

8489
async addAll (requests) {
8590
webidl.brandCheck(this, Cache)
86-
webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })
91+
92+
const prefix = 'Cache.addAll'
93+
webidl.argumentLengthCheck(arguments, 1, prefix)
8794

8895
// 1.
8996
const responsePromises = []
@@ -95,7 +102,7 @@ class Cache {
95102
for (let request of requests) {
96103
if (request === undefined) {
97104
throw webidl.errors.conversionFailed({
98-
prefix: 'Cache.addAll',
105+
prefix,
99106
argument: 'Argument 1',
100107
types: ['undefined is not allowed']
101108
})
@@ -113,7 +120,7 @@ class Cache {
113120
// 3.2
114121
if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {
115122
throw webidl.errors.exception({
116-
header: 'Cache.addAll',
123+
header: prefix,
117124
message: 'Expected http/s scheme when method is not GET.'
118125
})
119126
}
@@ -131,7 +138,7 @@ class Cache {
131138
// 5.2
132139
if (!urlIsHttpHttpsScheme(r.url)) {
133140
throw webidl.errors.exception({
134-
header: 'Cache.addAll',
141+
header: prefix,
135142
message: 'Expected http/s scheme.'
136143
})
137144
}
@@ -251,10 +258,12 @@ class Cache {
251258

252259
async put (request, response) {
253260
webidl.brandCheck(this, Cache)
254-
webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })
255261

256-
request = webidl.converters.RequestInfo(request)
257-
response = webidl.converters.Response(response)
262+
const prefix = 'Cache.put'
263+
webidl.argumentLengthCheck(arguments, 2, prefix)
264+
265+
request = webidl.converters.RequestInfo(request, prefix, 'request')
266+
response = webidl.converters.Response(response, prefix, 'response')
258267

259268
// 1.
260269
let innerRequest = null
@@ -269,7 +278,7 @@ class Cache {
269278
// 4.
270279
if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {
271280
throw webidl.errors.exception({
272-
header: 'Cache.put',
281+
header: prefix,
273282
message: 'Expected an http/s scheme when method is not GET'
274283
})
275284
}
@@ -280,7 +289,7 @@ class Cache {
280289
// 6.
281290
if (innerResponse.status === 206) {
282291
throw webidl.errors.exception({
283-
header: 'Cache.put',
292+
header: prefix,
284293
message: 'Got 206 status'
285294
})
286295
}
@@ -295,7 +304,7 @@ class Cache {
295304
// 7.2.1
296305
if (fieldValue === '*') {
297306
throw webidl.errors.exception({
298-
header: 'Cache.put',
307+
header: prefix,
299308
message: 'Got * vary field value'
300309
})
301310
}
@@ -305,7 +314,7 @@ class Cache {
305314
// 8.
306315
if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {
307316
throw webidl.errors.exception({
308-
header: 'Cache.put',
317+
header: prefix,
309318
message: 'Response body is locked or disturbed'
310319
})
311320
}
@@ -380,10 +389,12 @@ class Cache {
380389

381390
async delete (request, options = {}) {
382391
webidl.brandCheck(this, Cache)
383-
webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })
384392

385-
request = webidl.converters.RequestInfo(request)
386-
options = webidl.converters.CacheQueryOptions(options)
393+
const prefix = 'Cache.delete'
394+
webidl.argumentLengthCheck(arguments, 1, prefix)
395+
396+
request = webidl.converters.RequestInfo(request, prefix, 'request')
397+
options = webidl.converters.CacheQueryOptions(options, prefix, 'options')
387398

388399
/**
389400
* @type {Request}
@@ -445,8 +456,10 @@ class Cache {
445456
async keys (request = undefined, options = {}) {
446457
webidl.brandCheck(this, Cache)
447458

448-
if (request !== undefined) request = webidl.converters.RequestInfo(request)
449-
options = webidl.converters.CacheQueryOptions(options)
459+
const prefix = 'Cache.keys'
460+
461+
if (request !== undefined) request = webidl.converters.RequestInfo(request, prefix, 'request')
462+
options = webidl.converters.CacheQueryOptions(options, prefix, 'options')
450463

451464
// 1.
452465
let r = null
@@ -810,17 +823,17 @@ const cacheQueryOptionConverters = [
810823
{
811824
key: 'ignoreSearch',
812825
converter: webidl.converters.boolean,
813-
defaultValue: false
826+
defaultValue: () => false
814827
},
815828
{
816829
key: 'ignoreMethod',
817830
converter: webidl.converters.boolean,
818-
defaultValue: false
831+
defaultValue: () => false
819832
},
820833
{
821834
key: 'ignoreVary',
822835
converter: webidl.converters.boolean,
823-
defaultValue: false
836+
defaultValue: () => false
824837
}
825838
]
826839

lib/web/cache/cachestorage.js

+13-7
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class CacheStorage {
2020

2121
async match (request, options = {}) {
2222
webidl.brandCheck(this, CacheStorage)
23-
webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })
23+
webidl.argumentLengthCheck(arguments, 1, 'CacheStorage.match')
2424

2525
request = webidl.converters.RequestInfo(request)
2626
options = webidl.converters.MultiCacheQueryOptions(options)
@@ -57,9 +57,11 @@ class CacheStorage {
5757
*/
5858
async has (cacheName) {
5959
webidl.brandCheck(this, CacheStorage)
60-
webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })
6160

62-
cacheName = webidl.converters.DOMString(cacheName)
61+
const prefix = 'CacheStorage.has'
62+
webidl.argumentLengthCheck(arguments, 1, prefix)
63+
64+
cacheName = webidl.converters.DOMString(cacheName, prefix, 'cacheName')
6365

6466
// 2.1.1
6567
// 2.2
@@ -73,9 +75,11 @@ class CacheStorage {
7375
*/
7476
async open (cacheName) {
7577
webidl.brandCheck(this, CacheStorage)
76-
webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })
7778

78-
cacheName = webidl.converters.DOMString(cacheName)
79+
const prefix = 'CacheStorage.open'
80+
webidl.argumentLengthCheck(arguments, 1, prefix)
81+
82+
cacheName = webidl.converters.DOMString(cacheName, prefix, 'cacheName')
7983

8084
// 2.1
8185
if (this.#caches.has(cacheName)) {
@@ -105,9 +109,11 @@ class CacheStorage {
105109
*/
106110
async delete (cacheName) {
107111
webidl.brandCheck(this, CacheStorage)
108-
webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })
109112

110-
cacheName = webidl.converters.DOMString(cacheName)
113+
const prefix = 'CacheStorage.delete'
114+
webidl.argumentLengthCheck(arguments, 1, prefix)
115+
116+
cacheName = webidl.converters.DOMString(cacheName, prefix, 'cacheName')
111117

112118
return this.#caches.delete(cacheName)
113119
}

lib/web/cookies/index.js

+16-15
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const { Headers } = require('../fetch/headers')
2424
* @returns {Record<string, string>}
2525
*/
2626
function getCookies (headers) {
27-
webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })
27+
webidl.argumentLengthCheck(arguments, 1, 'getCookies')
2828

2929
webidl.brandCheck(headers, Headers, { strict: false })
3030

@@ -51,11 +51,12 @@ function getCookies (headers) {
5151
* @returns {void}
5252
*/
5353
function deleteCookie (headers, name, attributes) {
54-
webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })
55-
5654
webidl.brandCheck(headers, Headers, { strict: false })
5755

58-
name = webidl.converters.DOMString(name)
56+
const prefix = 'deleteCookie'
57+
webidl.argumentLengthCheck(arguments, 2, prefix)
58+
59+
name = webidl.converters.DOMString(name, prefix, 'name')
5960
attributes = webidl.converters.DeleteCookieAttributes(attributes)
6061

6162
// Matches behavior of
@@ -73,7 +74,7 @@ function deleteCookie (headers, name, attributes) {
7374
* @returns {Cookie[]}
7475
*/
7576
function getSetCookies (headers) {
76-
webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })
77+
webidl.argumentLengthCheck(arguments, 1, 'getSetCookies')
7778

7879
webidl.brandCheck(headers, Headers, { strict: false })
7980

@@ -93,7 +94,7 @@ function getSetCookies (headers) {
9394
* @returns {void}
9495
*/
9596
function setCookie (headers, cookie) {
96-
webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })
97+
webidl.argumentLengthCheck(arguments, 2, 'setCookie')
9798

9899
webidl.brandCheck(headers, Headers, { strict: false })
99100

@@ -110,12 +111,12 @@ webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([
110111
{
111112
converter: webidl.nullableConverter(webidl.converters.DOMString),
112113
key: 'path',
113-
defaultValue: null
114+
defaultValue: () => null
114115
},
115116
{
116117
converter: webidl.nullableConverter(webidl.converters.DOMString),
117118
key: 'domain',
118-
defaultValue: null
119+
defaultValue: () => null
119120
}
120121
])
121122

@@ -137,32 +138,32 @@ webidl.converters.Cookie = webidl.dictionaryConverter([
137138
return new Date(value)
138139
}),
139140
key: 'expires',
140-
defaultValue: null
141+
defaultValue: () => null
141142
},
142143
{
143144
converter: webidl.nullableConverter(webidl.converters['long long']),
144145
key: 'maxAge',
145-
defaultValue: null
146+
defaultValue: () => null
146147
},
147148
{
148149
converter: webidl.nullableConverter(webidl.converters.DOMString),
149150
key: 'domain',
150-
defaultValue: null
151+
defaultValue: () => null
151152
},
152153
{
153154
converter: webidl.nullableConverter(webidl.converters.DOMString),
154155
key: 'path',
155-
defaultValue: null
156+
defaultValue: () => null
156157
},
157158
{
158159
converter: webidl.nullableConverter(webidl.converters.boolean),
159160
key: 'secure',
160-
defaultValue: null
161+
defaultValue: () => null
161162
},
162163
{
163164
converter: webidl.nullableConverter(webidl.converters.boolean),
164165
key: 'httpOnly',
165-
defaultValue: null
166+
defaultValue: () => null
166167
},
167168
{
168169
converter: webidl.converters.USVString,
@@ -172,7 +173,7 @@ webidl.converters.Cookie = webidl.dictionaryConverter([
172173
{
173174
converter: webidl.sequenceConverter(webidl.converters.DOMString),
174175
key: 'unparsed',
175-
defaultValue: []
176+
defaultValue: () => new Array(0)
176177
}
177178
])
178179

lib/web/eventsource/eventsource.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ class EventSource extends EventTarget {
105105
// 1. Let ev be a new EventSource object.
106106
super()
107107

108-
webidl.argumentLengthCheck(arguments, 1, { header: 'EventSource constructor' })
108+
const prefix = 'EventSource constructor'
109+
webidl.argumentLengthCheck(arguments, 1, prefix)
109110

110111
if (!experimentalWarned) {
111112
experimentalWarned = true
@@ -114,8 +115,8 @@ class EventSource extends EventTarget {
114115
})
115116
}
116117

117-
url = webidl.converters.USVString(url)
118-
eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict)
118+
url = webidl.converters.USVString(url, prefix, 'url')
119+
eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix, 'eventSourceInitDict')
119120

120121
this.#dispatcher = eventSourceInitDict.dispatcher
121122
this.#state = {
@@ -463,7 +464,7 @@ webidl.converters.EventSourceInitDict = webidl.dictionaryConverter([
463464
{
464465
key: 'withCredentials',
465466
converter: webidl.converters.boolean,
466-
defaultValue: false
467+
defaultValue: () => false
467468
},
468469
{
469470
key: 'dispatcher', // undici only

0 commit comments

Comments
 (0)