From 489a212feeff7f848258c216aa9fbc6b748f65ac Mon Sep 17 00:00:00 2001 From: Nathan Dinsmore <nfdins@gmail.com> Date: Thu, 19 Dec 2013 15:11:02 -0500 Subject: [PATCH] Fixed #22 Modulo now behaves exactly like Scratch 1.4 and passes http://scratch.mit.edu/projects/13839488/ --- js/primitives/Primitives.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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; }