diff --git a/js/primitives/Primitives.js b/js/primitives/Primitives.js index 6000f00..d8e2a40 100644 --- a/js/primitives/Primitives.js +++ b/js/primitives/Primitives.js @@ -30,7 +30,7 @@ Primitives.prototype.addPrimsTo = function(primTable) { primTable['-'] = function(b) { return interp.numarg(b, 0) - interp.numarg(b, 1); }; primTable['*'] = function(b) { return interp.numarg(b, 0) * interp.numarg(b, 1); }; primTable['/'] = function(b) { return interp.numarg(b, 0) / interp.numarg(b, 1); }; - primTable['%'] = function(b) { return interp.numarg(b, 0) % interp.numarg(b, 1); }; + primTable['%'] = this.primModulo; primTable['randomFrom:to:'] = this.primRandom; primTable['<'] = function(b) { return (interp.numarg(b, 0) < interp.numarg(b, 1)); }; primTable['='] = function(b) { return (interp.arg(b, 0) == interp.arg(b, 1)); }; @@ -78,9 +78,9 @@ Primitives.prototype.primLetterOf = function(b) { } Primitives.prototype.primModulo = function(b) { - var modulus = interp.numarg(b, 1); - var n = interp.numarg(b, 0) % modulus; - if (n < 0) n += modulus; + var dividend = interp.numarg(b, 1); + var n = interp.numarg(b, 0) % dividend; + if (n / dividend < 0) n += dividend; return n; }