aboutsummaryrefslogtreecommitdiff
path: root/src/resolver/package_json.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/resolver/package_json.zig')
-rw-r--r--src/resolver/package_json.zig8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/resolver/package_json.zig b/src/resolver/package_json.zig
index e759374e7..81dcbf3a6 100644
--- a/src/resolver/package_json.zig
+++ b/src/resolver/package_json.zig
@@ -1769,8 +1769,12 @@ pub const ESModule = struct {
const slice = object.list.slice();
const keys = slice.items(.key);
- for (keys, 0..) |key, i| {
- if (r.conditions.contains(key)) {
+
+ // This looping order is really sublte and important.
+ // https://github.com/oven-sh/bun/issues/3371
+ // https://github.com/oven-sh/bun/pull/2673
+ for (r.conditions.keys()) |key| {
+ if (strings.indexEqualAny(keys, key)) |i| {
if (r.debug_logs) |log| {
log.addNoteFmt("The key \"{s}\" matched", .{key});
}