Indirectly static import cjs with error will cause an uncaughtException
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 122k
- Forks
- 37.3k
- Merge moyen
- 4 j 2 h
- PR mergées (30 j)
- 283
Description
Version
v20.10.0
Platform
No response
Subsystem
No response
What steps will reproduce the bug?
// ./main.mjs
process.on('uncaughtException', ()=>console.log('uncaught'));
try {
await import(`data:text/javascript,
import "data:text/javascript,console.log('before')";
import "${import.meta.url}.cjs";
`);
}
catch { console.log('caught'); }
// ./main.mjs.cjs
throw Error('abc');
How often does it reproduce? Is there a required condition?
every time
What is the expected behavior? Why is that the expected behavior?
before
caught
same with dynamic await import('./main.mjs.cjs') directly or indirectly.
also intuitive.
What do you see instead?
before
uncaught
and the wrapper dynamic import promise will be forever pending
Additional information
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par exécuter le reproducteur dans main.mjs avec le fichier adjacent main.mjs.cjs, puis examinez la façon dont les imports dynamiques gèrent les erreurs provenant de modules CommonJS importés indirectement. La correction est terminée lorsque l’exemple affiche before et caught, n’émet pas uncaught et que la promesse d’import du wrapper se termine.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100