diff --git a/CHANGELOG.md b/CHANGELOG.md index a6787ae2da43..4c7c910be788 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -- Nothing yet! +### Fixed + +- Ensure `Symbol.dispose` and `Symbol.asyncDispose` are polyfilled ([#15404](https://github.com/tailwindlabs/tailwindcss/pull/15404)) ## [4.0.0-beta.7] - 2024-12-13 @@ -763,3 +765,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Move the CLI into a separate `@tailwindcss/cli` package ([#13095](https://github.com/tailwindlabs/tailwindcss/pull/13095)) ## [4.0.0-alpha.1] - 2024-03-06 + diff --git a/packages/@tailwindcss-node/src/instrumentation.ts b/packages/@tailwindcss-node/src/instrumentation.ts index c408c4db786f..d27858d888bd 100644 --- a/packages/@tailwindcss-node/src/instrumentation.ts +++ b/packages/@tailwindcss-node/src/instrumentation.ts @@ -1,12 +1,20 @@ import { DefaultMap } from '../../tailwindcss/src/utils/default-map' import * as env from './env' +// See: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#:~:text=Symbol.dispose,-??=%20Symbol(%22Symbol.dispose +// @ts-expect-error — Ensure Symbol.dispose exists +Symbol.dispose ??= Symbol('Symbol.dispose') +// @ts-expect-error — Ensure Symbol.asyncDispose exists +Symbol.asyncDispose ??= Symbol('Symbol.asyncDispose') + export class Instrumentation implements Disposable { #hits = new DefaultMap(() => ({ value: 0 })) #timers = new DefaultMap(() => ({ value: 0n })) #timerStack: { id: string; label: string; namespace: string; value: bigint }[] = [] - constructor(private defaultFlush = (message: string) => process.stderr.write(`${message}\n`)) {} + constructor( + private defaultFlush = (message: string) => void process.stderr.write(`${message}\n`), + ) {} hit(label: string) { this.#hits.get(label).value++