aboutsummaryrefslogtreecommitdiff
path: root/src/js_parser.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-04-25 07:25:00 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-04-25 07:25:00 -0700
commit5353d4101493632cb25d0cdddfef94f62bc5902d (patch)
tree6a59ca58ab8ef3be986049dfee4e7d434eecf55b /src/js_parser.zig
parent460563ee8996d721d341f3ae0f704a9e3a1ba38d (diff)
downloadbun-5353d4101493632cb25d0cdddfef94f62bc5902d.tar.gz
bun-5353d4101493632cb25d0cdddfef94f62bc5902d.tar.zst
bun-5353d4101493632cb25d0cdddfef94f62bc5902d.zip
Fixes #2738
Diffstat (limited to '')
-rw-r--r--src/js_parser.zig8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/js_parser.zig b/src/js_parser.zig
index 1a0e582f1..ad8dd0ecd 100644
--- a/src/js_parser.zig
+++ b/src/js_parser.zig
@@ -15670,8 +15670,12 @@ fn NewParser_(
.bin_rem => {
if (p.should_fold_typescript_constant_expressions) {
if (Expr.extractNumericValues(e_.left.data, e_.right.data)) |vals| {
- // is this correct?
- return p.newExpr(E.Number{ .value = std.math.mod(f64, vals[0], vals[1]) catch 0.0 }, expr.loc);
+ return p.newExpr(
+ // Use libc fmod here to be consistent with what JavaScriptCore does
+ // https://github.com/oven-sh/WebKit/blob/7a0b13626e5db69aa5a32d037431d381df5dfb61/Source/JavaScriptCore/runtime/MathCommon.cpp#L574-L597
+ E.Number{ .value = bun.C.fmod(vals[0], vals[1]) },
+ expr.loc,
+ );
}
}
},