mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
This handles two cases caused by using Promise.all() with multiple dynamic import() that can make an asynchronously linked module job that has finished/failed linking but has not yet started actual evaluation appear in the load cache when another require request is in turn to handle it. - When the cached async job has finished linking but has not started its evaluation because the async run() task would be later in line, start the evaluation from require() with runSync(). - When the cached async job have already encountered a linking error that gets wrapped into a rejection, but is still later in line to throw on it, just unwrap and throw the linking error from require(). PR-URL: https://github.com/nodejs/node/pull/57187 Fixes: https://github.com/nodejs/node/issues/57172 Refs: https://github.com/shufo/prettier-plugin-blade/issues/311 Refs: https://github.com/fisker/prettier-plugin-blade-311 Refs: https://github.com/mochajs/mocha/issues/5290 Refs: https://github.com/JoshuaKGoldberg/repros/tree/mocha-missing-module-cyclic Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>