aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-04-17 01:18:05 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-04-17 01:18:05 -0700
commit07b4b4ced01a13073b41eea8e8a1fbae4a63d343 (patch)
tree0d4918f6f15768e657bc759dd0b28900b25d6589
parente624dd6d4dec1c717d2edfa49558c2a9fc0ef8fe (diff)
downloadbun-07b4b4ced01a13073b41eea8e8a1fbae4a63d343.tar.gz
bun-07b4b4ced01a13073b41eea8e8a1fbae4a63d343.tar.zst
bun-07b4b4ced01a13073b41eea8e8a1fbae4a63d343.zip
Don't record named exports for deoptimized CJS
-rw-r--r--src/js_parser.zig16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/js_parser.zig b/src/js_parser.zig
index 496e7116e..e443d30b2 100644
--- a/src/js_parser.zig
+++ b/src/js_parser.zig
@@ -3267,15 +3267,15 @@ pub const Parser = struct {
var exports_kind = js_ast.ExportsKind.none;
const exports_ref_usage_count = p.symbols.items[p.exports_ref.innerIndex()].use_count_estimate;
const uses_exports_ref = exports_ref_usage_count > 0;
- const uses_module_ref = p.symbols.items[p.module_ref.innerIndex()].use_count_estimate > 0;
-
- var wrapper_expr: ?Expr = null;
-
if (uses_exports_ref and p.commonjs_named_exports.count() > 0) {
p.deoptimizeCommonJSNamedExports();
}
- if (p.commonjs_named_exports_deoptimized and p.commonjs_named_exports.count() > 0) {
+ const uses_module_ref = p.symbols.items[p.module_ref.innerIndex()].use_count_estimate > 0;
+
+ var wrapper_expr: ?Expr = null;
+
+ if (p.isDeoptimizedCommonJS()) {
exports_kind = .cjs;
} else if (p.esm_export_keyword.len > 0 or p.top_level_await_keyword.len > 0) {
exports_kind = .esm;
@@ -5522,11 +5522,15 @@ fn NewParser_(
"Multiple exports with the same name \"{s}\"",
.{std.mem.trim(u8, alias, "\"'")},
);
- } else {
+ } else if (!p.isDeoptimizedCommonJS()) {
try p.named_exports.put(alias, js_ast.NamedExport{ .alias_loc = loc, .ref = ref });
}
}
+ fn isDeoptimizedCommonJS(p: *P) bool {
+ return p.commonjs_named_exports_deoptimized and p.commonjs_named_exports.count() > 0;
+ }
+
pub fn recordUsage(p: *P, ref: Ref) void {
if (p.is_revisit_for_substitution) return;
// The use count stored in the symbol is used for generating symbol names
est for toml importsGravatar Jarred Sumner 2-0/+47 2022-02-05[TOML] Fix bug with [[arrays]]Gravatar Jarred Sumner 1-2/+5 2022-02-05Handle promise rejections in testsGravatar Jarred Sumner 2-19/+35 2022-02-05Update resolve_path.zigGravatar Jarred Sumner 1-37/+35 2022-02-05Always try to load bunfig.toml for `install`, `dev`, `bun`, `test`Gravatar Jarred Sumner 1-3/+25 2022-02-05()Gravatar Jarred Sumner 1-1/+1 2022-02-05One less memcpyGravatar Jarred Sumner 1-68/+100 2022-02-05Further reliability improvements to http clientGravatar Jarred Sumner 2-14/+62 2022-02-05Implement keep-alive but disable itGravatar Jarred Sumner 2-17/+126 2022-02-05Make bun-install slower but more reliable on Linux Kernel 5.5 and lowerGravatar Jarred SUmner 1-112/+31 2022-02-04Several reliability improvements to HTTPGravatar Jarred SUmner 12-141/+189 2022-02-04reminderGravatar Jarred Sumner 3-5/+6 2022-02-04`path.resolve()` passes testsGravatar Jarred Sumner 2-13/+81 2022-02-04Update multiple-var.jsGravatar Jarred Sumner 1-1/+2 2022-02-04:camera:Gravatar Jarred Sumner 74-340/+669 2022-02-04Update snippets.jsonGravatar Jarred Sumner 1-1/+3 2022-02-04Add integration test for reading .json files that have UTF-8 string literalsGravatar Jarred Sumner 2-0/+9 2022-02-04[http] fix segfaultGravatar Jarred Sumner 1-17/+25 2022-02-04[bun dev] Fix bug with serving static files on next.js apps introduced in af6...Gravatar Jarred Sumner 1-5/+7 2022-02-04Update types.zigGravatar Jarred Sumner 1-9/+10 2022-02-04Update test_command.zigGravatar Jarred Sumner 1-2/+0 2022-02-04`path.normalize()` tests passGravatar Jarred Sumner 2-146/+213 2022-02-03Fix test failures in path.joinGravatar Jarred Sumner 1-8/+115 2022-02-03Update mimalloc_arena.zigGravatar Jarred Sumner 1-0/+9 2022-02-03[bun test] Support multiple filesGravatar Jarred Sumner 1-2/+12 2022-02-03Update js_ast.zigGravatar Jarred Sumner 1-0/+1 2022-02-03Support loading multiple entry points by changing what `bun:main` points toGravatar Jarred Sumner 6-4/+36 2022-02-03[bun install] Configurable max http retry countGravatar Jarred Sumner 1-0/+7 2022-02-03Missing newline in errors in bun installGravatar Jarred Sumner 1-4/+8 2022-02-03Fix bug with http clientGravatar Jarred Sumner 6-107/+101 2022-02-03Move detectFastRefresh to later so HTTP request handler starts fasterGravatar Jarred Sumner 1-2/+1 2022-02-03Fix bug with macro remaps in Bun.Transpiler apiGravatar Jarred Sumner 2-5/+8 2022-02-03Slight improvement to non-ascii file path handlingGravatar Jarred Sumner 4-18/+79 2022-02-02`path.relative` passes Node's tests (which also fixed bugs)Gravatar Jarred Sumner 8-283/+571