-
-
Notifications
You must be signed in to change notification settings - Fork 34.3k
Closed as not planned
Description
Version
v18.15.0
Platform
No response
Subsystem
No response
What steps will reproduce the bug?
https://github.com/loynoir/reproduce-node-47971
Load SAME CJS module using
-
CJS require
-
ESM import
-
ESM createRequire
OK when using CJS require
Endless loop when ESM import or ESM createRequire.
How often does it reproduce? Is there a required condition?
See above.
What is the expected behavior? Why is that the expected behavior?
OK when using CJS require.
$ node ./test/test-require.cjs
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
{ plugin: [Module: null prototype] { foo: [Function: foo] } }What do you see instead?
Endless loop when ESM import or ESM createRequire.
$ node ./test/test-import.mjs
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
...
# endless loop
...$ node ./test/test-createRequire.mjs
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
waiting import('./plugin.mjs')
...
# endless loop
...Additional information
https://github.com/abbr/deasync/blob/master/src/deasync.cc#L7C1-L12
Metadata
Metadata
Assignees
Labels
No labels