diff options
-rw-r--r-- | src/bundler/bundle_v2.zig | 6 | ||||
-rw-r--r-- | test/bundler/bundler_edgecase.test.ts | 18 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/bundler/bundle_v2.zig b/src/bundler/bundle_v2.zig index b70bac229..bb6ac6d8a 100644 --- a/src/bundler/bundle_v2.zig +++ b/src/bundler/bundle_v2.zig @@ -398,6 +398,12 @@ pub const BundleV2 = struct { import_record.source_index = Index.invalid; break; } + + // Handle redirects to a builtin or external module + // https://github.com/oven-sh/bun/issues/3764 + if (!other_source.isValid()) { + break; + } } v.visit(import_record.source_index, check_dynamic_imports and import_record.kind == .dynamic, check_dynamic_imports); diff --git a/test/bundler/bundler_edgecase.test.ts b/test/bundler/bundler_edgecase.test.ts index bbbe4270b..de2482907 100644 --- a/test/bundler/bundler_edgecase.test.ts +++ b/test/bundler/bundler_edgecase.test.ts @@ -21,6 +21,24 @@ describe("bundler", () => { stdout: "object", }, }); + itBundled("edgecase/NestedRedirectToABuiltin", { + files: { + "/entry.js": /* js */ ` + import * as path from './module.cjs'; + console.log(path.join('a', 'b')) + `, + "/module.cjs": /* js */ ` + module.exports = require('./2nd') + `, + "/2nd.js": /* js */ ` + module.exports = require('path') + `, + }, + target: "bun", + run: { + stdout: "a/b", + }, + }); itBundled("edgecase/ImportStarFunction", { files: { "/entry.js": /* js */ ` |