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;
 }