Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions lib/util/promise.js

This file was deleted.

14 changes: 6 additions & 8 deletions lib/web/cache/cache.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ const { cloneResponse, fromInnerResponse, getResponseState } = require('../fetch
const { Request, fromInnerRequest, getRequestState } = require('../fetch/request')
const { fetching } = require('../fetch/index')
const { urlIsHttpHttpsScheme, readAllBytes } = require('../fetch/util')
const { createDeferredPromise } = require('../../util/promise')

/**
* @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation
* @typedef {Object} CacheBatchOperation
Expand Down Expand Up @@ -153,7 +151,7 @@ class Cache {
requestList.push(r)

// 5.6
const responsePromise = createDeferredPromise()
const responsePromise = Promise.withResolvers()

// 5.7
fetchControllers.push(fetching({
Expand Down Expand Up @@ -231,7 +229,7 @@ class Cache {
}

// 7.5
const cacheJobPromise = createDeferredPromise()
const cacheJobPromise = Promise.withResolvers()

// 7.6.1
let errorData = null
Expand Down Expand Up @@ -325,7 +323,7 @@ class Cache {
const clonedResponse = cloneResponse(innerResponse)

// 10.
const bodyReadPromise = createDeferredPromise()
const bodyReadPromise = Promise.withResolvers()

// 11.
if (innerResponse.body != null) {
Expand Down Expand Up @@ -364,7 +362,7 @@ class Cache {
}

// 19.1
const cacheJobPromise = createDeferredPromise()
const cacheJobPromise = Promise.withResolvers()

// 19.2.1
let errorData = null
Expand Down Expand Up @@ -427,7 +425,7 @@ class Cache {

operations.push(operation)

const cacheJobPromise = createDeferredPromise()
const cacheJobPromise = Promise.withResolvers()

let errorData = null
let requestResponses
Expand Down Expand Up @@ -483,7 +481,7 @@ class Cache {
}

// 4.
const promise = createDeferredPromise()
const promise = Promise.withResolvers()

// 5.
// 5.1
Expand Down
3 changes: 1 addition & 2 deletions lib/web/fetch/body.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ const { isErrored, isDisturbed } = require('node:stream')
const { isUint8Array } = require('node:util/types')
const { serializeAMimeType } = require('./data-url')
const { multipartFormDataParser } = require('./formdata-parser')
const { createDeferredPromise } = require('../../util/promise')
const { parseJSONFromBytes } = require('../infra')
const { utf8DecodeBytes } = require('../../encoding')
const { runtimeFeatures } = require('../../util/runtime-features.js')
Expand Down Expand Up @@ -431,7 +430,7 @@ function consumeBody (object, convertBytesToJSValue, instance, getInternalState)
}

// 2. Let promise be a new promise.
const promise = createDeferredPromise()
const promise = Promise.withResolvers()

// 3. Let errorSteps given error be to reject promise with error.
const errorSteps = promise.reject
Expand Down
3 changes: 1 addition & 2 deletions lib/web/fetch/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ const { getGlobalDispatcher } = require('../../global')
const { webidl } = require('../webidl')
const { STATUS_CODES } = require('node:http')
const { bytesMatch } = require('../subresource-integrity/subresource-integrity')
const { createDeferredPromise } = require('../../util/promise')
const { isomorphicEncode } = require('../infra')
const { runtimeFeatures } = require('../../util/runtime-features')

Expand Down Expand Up @@ -136,7 +135,7 @@ function fetch (input, init = undefined) {
webidl.argumentLengthCheck(arguments, 1, 'globalThis.fetch')

// 1. Let p be a new promise.
let p = createDeferredPromise()
let p = Promise.withResolvers()

// 2. Let requestObject be the result of invoking the initial value of
// Request as constructor with input and init as arguments. If this throws
Expand Down
11 changes: 5 additions & 6 deletions lib/web/websocket/stream/websocketstream.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict'

const { createDeferredPromise } = require('../../../util/promise')
const { environmentSettingsObject } = require('../../fetch/util')
const { states, opcodes, sentCloseFrameState } = require('../constants')
const { webidl } = require('../../webidl')
Expand All @@ -21,11 +20,11 @@ class WebSocketStream {
#url

// Each WebSocketStream object has an associated opened promise , which is a promise.
/** @type {import('../../../util/promise').DeferredPromise} */
/** @type {ReturnType<typeof Promise.withResolvers>} */
#openedPromise

// Each WebSocketStream object has an associated closed promise , which is a promise.
/** @type {import('../../../util/promise').DeferredPromise} */
/** @type {ReturnType<typeof Promise.withResolvers>} */
#closedPromise

// Each WebSocketStream object has an associated readable stream , which is a ReadableStream .
Expand Down Expand Up @@ -113,8 +112,8 @@ class WebSocketStream {
this.#url = urlRecord.toString()

// 6. Set this 's opened promise and closed promise to new promises.
this.#openedPromise = createDeferredPromise()
this.#closedPromise = createDeferredPromise()
this.#openedPromise = Promise.withResolvers()
this.#closedPromise = Promise.withResolvers()

// 7. Apply backpressure to the WebSocket.
// TODO
Expand Down Expand Up @@ -202,7 +201,7 @@ class WebSocketStream {
chunk = webidl.converters.WebSocketStreamWrite(chunk)

// 1. Let promise be a new promise created in stream ’s relevant realm .
const promise = createDeferredPromise()
const promise = Promise.withResolvers()

// 2. Let data be null.
let data = null
Expand Down
4 changes: 1 addition & 3 deletions test/fetch/exiting.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,10 @@ const { fetch } = require('../..')
const { createServer } = require('node:http')
const { closeServerAsPromise } = require('../utils/node-http')
const { once } = require('node:events')
const { createDeferredPromise } = require('../../lib/util/promise')

test('abort the request on the other side if the stream is canceled', async (t) => {
t.plan(1)

const promise = createDeferredPromise()
const promise = Promise.withResolvers()

const server = createServer({ joinDuplicateHeaders: true }, (req, res) => {
res.writeHead(200)
Expand Down
4 changes: 1 addition & 3 deletions test/fetch/issue-4105.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,13 @@ const { createServer } = require('node:http')
const { test } = require('node:test')
const { fetch } = require('../..')
const { PerformanceObserver } = require('node:perf_hooks')
const { createDeferredPromise } = require('../../lib/util/promise')

const isAtLeastv22 = process.versions.node.split('.').map(Number)[0] >= 22

// https://github.com/nodejs/undici/issues/4105
test('markResourceTiming responseStatus is set', { skip: !isAtLeastv22 }, async (t) => {
t.plan(1)

const promise = createDeferredPromise()
const promise = Promise.withResolvers()

const server = createServer((req, res) => {
res.statusCode = 200
Expand Down
6 changes: 0 additions & 6 deletions test/web-platform-tests/runner/utils.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,3 @@ export function sanitizeUnpairedSurrogates (str) {
function codeUnitStr (char) {
return 'U+' + char.charCodeAt(0).toString(16)
}

/**
* @type {import('../../../lib/util/promise')['createDeferredPromise']}
*/
export const createDeferredPromise =
Promise.withResolvers?.bind(Promise) ?? (await import('../../../lib/util/promise.js')).createDeferredPromise
9 changes: 4 additions & 5 deletions test/web-platform-tests/wpt-runner.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import { join } from 'node:path'
import { createInterface } from 'node:readline'
import { debuglog } from 'node:util'
import {
sanitizeUnpairedSurrogates,
createDeferredPromise
sanitizeUnpairedSurrogates
} from './runner/utils.mjs'
import * as jsondiffpatch from 'jsondiffpatch'

Expand Down Expand Up @@ -121,8 +120,8 @@ async function ensureWPTCheckout () {
}

async function runWithTestUtil (testFunction) {
const { promise, resolve, reject } = createDeferredPromise()
const { promise: readyPromise, resolve: resolveReady, reject: rejectReady } = createDeferredPromise()
const { promise, resolve, reject } = Promise.withResolvers()
const { promise: readyPromise, resolve: resolveReady, reject: rejectReady } = Promise.withResolvers()
const readyChecks = new Set()
const serverUrl = 'http://web-platform.test:8000/'
let serverResponding = false
Expand Down Expand Up @@ -224,7 +223,7 @@ async function runWithTestUtil (testFunction) {

function runSingleTest (url, options, expectation, timeout = 10000) {
const startTime = Date.now()
const { promise, resolve, reject } = createDeferredPromise()
const { promise, resolve, reject } = Promise.withResolvers()
// NODE_EXTRA_CA_CERTS is required for HTTPS/WSS pages, but it causes the
// WebSocket-over-HTTP/2 WPT variants to exit without emitting harness output.
const useExtraCACerts = !(url.pathname.startsWith('/websockets/') && url.searchParams.get('wpt_flags')?.includes('h2'))
Expand Down
Loading