diff options
| author | 2023-04-16 22:20:22 -0700 | |
|---|---|---|
| committer | 2023-04-16 22:20:22 -0700 | |
| commit | eec1a07907129cb0e5996985207175472e049a5e (patch) | |
| tree | 4b812dbc07b7b590935b24d1e07426933dd1f8d8 /src/js_ast.zig | |
| parent | 30b0d006fe581673bc601a8f32d5ab891b9c5509 (diff) | |
| download | bun-eec1a07907129cb0e5996985207175472e049a5e.tar.gz bun-eec1a07907129cb0e5996985207175472e049a5e.tar.zst bun-eec1a07907129cb0e5996985207175472e049a5e.zip | |
Attempt to automatically handle some cyclical import issues with ESM
Fixes https://github.com/kysely-org/kysely/issues/412
Diffstat (limited to 'src/js_ast.zig')
| -rw-r--r-- | src/js_ast.zig | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/js_ast.zig b/src/js_ast.zig index 9173ce6eb..5c95b8f5e 100644 --- a/src/js_ast.zig +++ b/src/js_ast.zig @@ -4949,6 +4949,21 @@ pub const S = struct { pub const ExportDefault = struct { default_name: LocRef, // value may be a SFunction or SClass value: StmtOrExpr, + + pub fn canBeMovedAround(self: ExportDefault) bool { + return switch (self.value) { + .expr => |e| switch (e.data) { + .e_class => |class| class.extends == null, + .e_arrow, .e_function => true, + else => e.canBeConstValue(), + }, + .stmt => |s| switch (s.data) { + .s_class => |class| class.class.extends == null, + .s_function => true, + else => false, + }, + }; + } }; pub const Enum = struct { |
