[Bug]: Intl.DateTimeFormat.prototype has no own `format` getter after clock.install()

Chiusa Adatta ai principianti
#43,492 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Una pull request collegata è già stata integrata.

  • #43510 di @alok-108 — chiusa senza merge
  • #43523 di @yury-s — integrata

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
playwright, typescript
Ambito
frontend, testing

Direzione di ricerca

Inizia dai passaggi per riprodurre il problema e dal codice citato in packages/injected/src/clock.ts, intorno alla riga 578, dove viene creato il prototipo fittizio di Intl.DateTimeFormat. Esegui il test Playwright della riproduzione per confermare che manca il getter proprio. Il lavoro è terminato quando l’orologio installato conserva il getter format proprio e la regressione è coperta da un test.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Version

1.64.1 (also 1.65.0-alpha-2026-10-16)

Steps to reproduce

https://github.com/lumatic2/playwright-clock-intl-format-repro

  1. npm install && npx playwright install chromium
  2. npx playwright test
await page.clock.install();
await page.goto('about:blank');
await page.evaluate(() =>
  Object.getOwnPropertyDescriptor(Intl.DateTimeFormat.prototype, 'format').get);
Expected behavior

The format getter is there, same as without the clock.

Actual behavior
before install: {"hasGetter":"function","isOwnAccessor":true,"callResult":"ok: function"}
after install:  {"hasGetter":"undefined","isOwnAccessor":false,"callResult":"throws: Cannot read properties of undefined (reading 'get')"}
Additional context

This happened to me while replaying a Framer site with the clock installed, since Framer reads that descriptor on load. The fake prototype is created with Object.create(NativeIntl.DateTimeFormat.prototype), so format is only inherited. I'd be happy to send a PR if this approach is acceptable.

Environment
  System:
    OS: Windows 11 10.0.26200
    CPU: (32) x64 AMD Ryzen 9 9950X3D 16-Core Processor
    Memory: 93.88 GB / 125.64 GB
  Binaries:
    Node: 24.14.1 - C:\Program Files\nodejs\node.EXE
    npm: 11.11.0 - C:\Program Files\nodejs\npm.CMD
    pnpm: 10.33.0
  IDEs:
    VSCode: 1.136.2
  Languages:
    Bash: 5.2.37
  npmPackages:
    @playwright/test: ^1.64.1 => 1.64.1
Lingua principale
TypeScript
Stelle
99.1k
Fork
6.8k
Merge medio
16h 3m
PR unite (30g)
315

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/playwright

Tutte le issue di microsoft/playwright

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.