nodejs / nodejs/node

`esm_loader` should use a primordial to get `cwd`

Aperta
#44,742 2 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

loaders never-stale
Lingua principale
JavaScript
Stelle
122k
Fork
37.3k
Merge medio
4g 2h
PR unite (30g)
283

Descrizione

Version

v18.9.0

Platform

Linux vhost1 5.18.10-76051810-generic #202207071639~1657252310~22.04~7d5e891 SMP PREEMPT_DYNAMIC Fri J x86_64 x86_64 x86_64 GNU/Linux

Subsystem

esm_loader

What steps will reproduce the bug?
process.cwd = () => {
    (async () => {
        await import('.');
    })();
};

await import('.');
How often does it reproduce? Is there a required condition?

Always.

What is the expected behavior?

No RangeErrors.

What do you see instead?
Exception in PromiseRejectCallback:
node:internal/modules/esm/resolve:1110
  };

RangeError: Maximum call stack size exceeded
Exception in PromiseRejectCallback:
node:internal/modules/esm/loader:163
      const output = await hook(arg0, meta.context, nextNextHook);
Additional information

No response

Guida per i contributori

Apri la guida per i contributori

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.

Direzione di ricerca

Esegui la riproduzione fornita su Node.js v18.9.0, quindi ispeziona node:internal/modules/esm/resolve.js e node:internal/modules/esm/loader.js nei punti indicati dallo stack trace. Traccia il modo in cui esm_loader ottiene cwd e aggiornalo affinché usi il primordial richiesto; il lavoro è completato quando la riproduzione termina senza RangeErrors.

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

Valutazione

Stack tecnologico
javascript
Ambito
backend
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
55/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.