@@ -30,39 +30,6 @@ const { getMaxListeners, setMaxListeners, defaultMaxListeners } = require('node:
3030
3131const kAbortController = Symbol ( 'abortController' )
3232
33- /**
34- * Fetch's "If init is not empty" check is based on user-specified
35- * RequestInit members, not dictionary defaults. undici's `priority`
36- * member defaults to `"auto"`, so `Object.keys(convertedInit)` is
37- * never empty and would otherwise force the expensive header
38- * clone/clear/re-append path on every `fetch(url)` / `new Request(url)`.
39- *
40- * Matches the spec / Servo / Chromium "any members present" test.
41- *
42- * @param {object | null | undefined } init
43- * @returns {boolean }
44- */
45- function requestInitHasUserMembers ( init ) {
46- return init != null && (
47- init . method !== undefined ||
48- init . headers !== undefined ||
49- init . body !== undefined ||
50- init . referrer !== undefined ||
51- init . referrerPolicy !== undefined ||
52- init . mode !== undefined ||
53- init . credentials !== undefined ||
54- init . cache !== undefined ||
55- init . redirect !== undefined ||
56- init . integrity !== undefined ||
57- init . keepalive !== undefined ||
58- init . signal !== undefined ||
59- 'window' in init ||
60- init . duplex !== undefined ||
61- init . dispatcher !== undefined ||
62- init . priority !== undefined
63- )
64- }
65-
6633const requestFinalizer = new FinalizationRegistry ( ( { signal, abort } ) => {
6734 signal . removeEventListener ( 'abort' , abort )
6835} )
@@ -149,8 +116,6 @@ class Request {
149116 webidl . argumentLengthCheck ( arguments , 1 , prefix )
150117
151118 input = webidl . converters . RequestInfo ( input )
152- // Capture this before WebIDL conversion fills dictionary defaults.
153- const initHasKey = requestInitHasUserMembers ( init )
154119 init = webidl . converters . RequestInit ( init )
155120
156121 // 1. Let request be null.
@@ -276,6 +241,8 @@ class Request {
276241 urlList : [ ...request . urlList ]
277242 } )
278243
244+ const initHasKey = Object . keys ( init ) . length !== 0
245+
279246 // 13. If init is not empty, then:
280247 if ( initHasKey ) {
281248 // 1. If request’s mode is "navigate", then set it to "same-origin".
@@ -956,7 +923,7 @@ function makeRequest (init) {
956923 serviceWorkers : init . serviceWorkers ?? 'all' ,
957924 initiator : init . initiator ?? '' ,
958925 destination : init . destination ?? '' ,
959- priority : init . priority ?? null ,
926+ priority : init . priority ?? 'auto' ,
960927 origin : init . origin ?? 'client' ,
961928 policyContainer : init . policyContainer ?? 'client' ,
962929 referrer : init . referrer ?? 'client' ,
@@ -1162,8 +1129,7 @@ webidl.converters.RequestInit = webidl.dictionaryConverter([
11621129 {
11631130 key : 'priority' ,
11641131 converter : webidl . converters . DOMString ,
1165- allowedValues : [ 'high' , 'low' , 'auto' ] ,
1166- defaultValue : ( ) => 'auto'
1132+ allowedValues : [ 'high' , 'low' , 'auto' ]
11671133 }
11681134] )
11691135
0 commit comments