aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-06-10 14:56:39 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-06-10 14:56:39 -0700
commitf280758fa7eb8565590c129e3883cd7a7daa6638 (patch)
treeefa5fa7bb1167eeb9939c45d9b196a83f465a474 /src
parenta2d8026810d024b8d229d810e81d8170c842c267 (diff)
downloadbun-f280758fa7eb8565590c129e3883cd7a7daa6638.tar.gz
bun-f280758fa7eb8565590c129e3883cd7a7daa6638.tar.zst
bun-f280758fa7eb8565590c129e3883cd7a7daa6638.zip
We don't do the exports resolve step, so we must copy the namespace alias
Former-commit-id: b1dd6cf400112241e1a7b55bae49e46e188052c2
Diffstat (limited to 'src')
-rw-r--r--src/js_parser/js_parser.zig15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/js_parser/js_parser.zig b/src/js_parser/js_parser.zig
index d0998876a..0918298f8 100644
--- a/src/js_parser/js_parser.zig
+++ b/src/js_parser/js_parser.zig
@@ -122,7 +122,7 @@ pub const ImportScanner = struct {
if (st.default_name) |default_name| {
found_imports = true;
- var symbol = p.symbols.items[default_name.ref.?.inner_index];
+ const symbol = p.symbols.items[default_name.ref.?.inner_index];
// TypeScript has a separate definition of unused
if (p.options.ts and p.ts_use_counts.items[default_name.ref.?.inner_index] != 0) {
@@ -2958,13 +2958,15 @@ pub fn NewParser(
p.bundle_export_ref = try p.declareSymbol(.unbound, logger.Loc.Empty, "IF_YOU_SEE_THIS_ITS_A_BUNDLER_BUG_PLEASE_FILE_AN_ISSUE_THX");
p.runtime_imports.__reExport = try p.declareSymbol(.unbound, logger.Loc.Empty, "__reExport");
p.runtime_imports.register = try p.declareSymbol(.unbound, logger.Loc.Empty, "$$m");
- p.runtime_imports.__export = try p.declareSymbol(.unbound, logger.Loc.Empty, "__export");
+ p.runtime_imports.lazy_export = try p.declareSymbol(.unbound, logger.Loc.Empty, "$$lzy");
p.exports_ref = try p.declareSymbol(.hoisted, logger.Loc.Empty, "exports");
p.module_ref = try p.declareSymbol(.hoisted, logger.Loc.Empty, "module");
+ p.runtime_imports.__export = p.exports_ref;
} else {
p.exports_ref = try p.declareSymbol(.hoisted, logger.Loc.Empty, "exports");
p.module_ref = try p.declareSymbol(.hoisted, logger.Loc.Empty, "module");
+ p.runtime_imports.__export = p.exports_ref;
}
p.runtime_imports.__require = p.require_ref;
@@ -2996,7 +2998,7 @@ pub fn NewParser(
if (!scope.kindStopsHoisting()) {
var iter = scope.members.iterator();
nextMember: while (iter.next()) |res| {
- var symbol = p.symbols.items[res.value.ref.inner_index];
+ var symbol = &p.symbols.items[res.value.ref.inner_index];
if (!symbol.isHoisted()) {
continue :nextMember;
}
@@ -6720,7 +6722,7 @@ pub fn NewParser(
var entry = try scope.members.getOrPut(name);
if (entry.found_existing) {
const existing = entry.entry.value;
- var symbol: Symbol = p.symbols.items[@intCast(usize, existing.ref.inner_index)];
+ var symbol: *Symbol = &p.symbols.items[@intCast(usize, existing.ref.inner_index)];
switch (p.canMergeSymbols(scope, symbol.kind, kind)) {
.forbidden => {
@@ -11283,11 +11285,14 @@ pub fn NewParser(
import_items.put(name, item) catch unreachable;
p.is_import_item.put(item.ref orelse unreachable, true) catch unreachable;
- var symbol = p.symbols.items[item.ref.?.inner_index];
+ var symbol = &p.symbols.items[item.ref.?.inner_index];
// Mark this as generated in case it's missing. We don't want to
// generate errors for missing import items that are automatically
// generated.
symbol.import_item_status = .generated;
+
+ // Make sure the printer prints this as a property access
+ symbol.namespace_alias = G.NamespaceAlias{ .namespace_ref = id.ref, .alias = name };
} else {
item = import_items.get(name) orelse unreachable;
}