Indirectly static import cjs with error will cause an uncaughtException
Đang mở
Chưa có ai nhận issue này.
confirmed-bug
module
- Ngôn ngữ chính
- JavaScript
- Star
- 122k
- Fork
- 37.4k
- Merge trung bình
- 4 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 283
Mô tả
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
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách chạy trình tái hiện trong main.mjs cùng với tệp main.mjs.cjs nằm liền kề, và kiểm tra cách các dynamic import xử lý lỗi từ các module CommonJS được import gián tiếp. Bản sửa được hoàn tất khi ví dụ in ra before và caught, không phát ra uncaught, và promise import của wrapper được settle.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100