Compare commits

...

1 Commits

Author SHA1 Message Date
dave caruso
f2df8c1864 fix 9416 2024-10-01 13:56:46 -07:00
3 changed files with 25 additions and 0 deletions

View File

@@ -18780,6 +18780,10 @@ fn NewParser_(
if (strings.eqlComptime(name, "main")) {
return p.valueForImportMetaMain(false, target.loc);
}
if (strings.eqlComptime(name, "require")) {
return p.valueForRequire(target.loc);
}
},
.e_require_call_target => {
if (strings.eqlComptime(name, "main")) {

View File

@@ -1870,6 +1870,22 @@ describe("bundler", () => {
target: "bun",
run: { stdout: `123` },
});
itBundled('edgecase/RebundleImportMetaRequire', {
// We don't officially support people manually using import.meta.require,
// however it is very easy to handle, and has caused issues when bundles
// are fed back into `bun build`. See https://github.com/oven-sh/bun/issues/9416
files: {
'/entry.js': `
console.log(import.meta.require('node:fs'));
`,
},
outfile: 'out.mjs',
target: 'node',
run: { runtime: 'node' }, // will throw since they do not have import.meta.require
onAfterBundle(api) {
api.expectFile('/out.mjs').not.toInclude('import.meta.require');
},
});
itBundled("edgecase/Latin1StringKeyBrowser", {
files: {
"/entry.ts": `

View File

@@ -443,6 +443,9 @@ describe("bundler", () => {
capture(!!(require.main !== module));
capture(!!(require.main == module));
capture(!!(require.main != module));
capture(import.meta.require.main === module);
capture(import.meta.require.main !== module);
`,
},
outfile: "/out.js",
@@ -459,6 +462,8 @@ describe("bundler", () => {
"!import.meta.main",
"import.meta.main",
"!import.meta.main",
"import.meta.main",
"!import.meta.main",
],
minifySyntax: true,
onAfterBundle(api) {