nodejs / nodejs/node

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

Offen
#44,742 2 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

loaders never-stale
Vorherrschende Sprache
JavaScript
Sterne
122k
Forks
37.3k
Ø Merge
4 T. 2 Std.
Gemergte PRs (30 T.)
283

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Führe die bereitgestellte Reproduktion unter Node.js v18.9.0 aus und untersuche anschließend node:internal/modules/esm/resolve.js und node:internal/modules/esm/loader.js an den im Stack-Trace angegebenen Stellen. Verfolge, wie esm_loader cwd erhält, und aktualisiere es so, dass das angeforderte primordial verwendet wird; als erledigt gilt die Aufgabe, wenn die Reproduktion ohne RangeErrors abgeschlossen wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.