Skip to content

Commit fe8fb75

Browse files
committed
[js] Change mod_n to be more like the jvm and moarvm backends.
1 parent 9772f2a commit fe8fb75

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/vm/js/QAST/Compiler.nqp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,9 @@ class QAST::OperationsJS {
440440
add_infix_op('div_n', $T_NUM, '/', $T_NUM, $T_NUM);
441441
add_infix_op('mod_n', $T_NUM, '%', $T_NUM, $T_NUM);
442442

443+
add_simple_op('mod_n', $T_NUM, [$T_NUM, $T_NUM]);
444+
445+
443446
add_simple_op('neg_n', $T_NUM, [$T_NUM], sub ($num) {"(-$num)"});
444447
add_simple_op('neg_i', $T_INT, [$T_INT], sub ($num) {"(-$num)"});
445448

src/vm/js/nqp-runtime/core.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,10 @@ op.lcm_i = function(a, b) {
695695
return (a * b) / op.gcd_i(a, b);
696696
};
697697

698+
op.mod_n = function(a, b) {
699+
return a - Math.floor(a / b) * b;
700+
};
701+
698702
function typeparameters(ctx, type) {
699703
var st = type._STable;
700704
if (!st.parametricType) {

0 commit comments

Comments
 (0)