on master help sign in
Correct errors with `mod` function.
commit3a83d69168c5cc70e3fc899d82cc30730d41bd55 authorevancz <info@elm-lang.org> dateMon 30 Apr 2012, 23:13 (15 years ago) parente87d8c4
3 files changed+7−5
core-js/Everything.js+4−1 elm-mini.js+3−3 src/CompileToJS.hs−1
core-js/Everything.js+4−1
@@ -5,7 +5,10 @@ var not = function(exp) { return !exp; };
55var sqrt = function(x) { return Math.sqrt(x); };
66var rem = function(x) { return function(y) { return x % y; }; };
77var mod = function(x) { return function(y) {
8− return y>0 ? (x>0 ? x % y : y + (x%y)) : -mod(-x)(-y); }; };
8+ var r = x % y;
9+ var m = x==0 ? 0 : (y>0 ? (x>=0 ? r : r+y) : -mod(-x)(-y));
10+ return m == y ? 0 : m;
11+}; };
912var abs = function(x) { return Math.abs(x); };
1013var logBase = function(base) { return function(x) { return Math.log(x) / Math.log(base); }; };
1114
elm-mini.js+3−3
@@ -38,8 +38,8 @@ b}})(1),r=d(function(a){return function(b){return Math.max(a,b)}}),t=d(function(
3838scanl:e,scanl1:function(a){return function(b){if("Cons"!==b[0])throw"Error: 'scanl1' requires a list of at least length 1.";return e(a)(b[1])(b[2])}},filter:function(a){return function(b){if("Nil"===b[0])return b;"Cons"!==b[0]&&i();for(var c=[];"Cons"===b[0];)a(b[1])&&c.push(b[1]),b=b[2];for(var b=["Nil"],d=c.length;d--;)b=["Cons",c[d],b];return b}},length:function(a){for(var b=0;"Cons"===a[0];)b+=1,a=a[2];return b},reverse:k,concat:l,concatMap:function(a){return function(b){return l(c(a)(b))}},and:p,
3939or:m,forall:function(b){return a(function(a){return function(c){return c&&b(a)}})(!0)},exists:function(b){return a(function(a){return function(c){return c||b(a)}})(!1)},sum:n,product:o,maximum:r,minimum:t,partition:g,zipWith:function(a){return function(b){return function(c){if("Nil"===b[0]||"Nil"===c[0])return b;("Cons"!==b[0]||"Cons"!==c[0])&&i();for(var d=[];"Cons"===b[0]&&"Cons"===c[0];)d.push(a(b[1])(c[1])),b=b[2],c=c[2];for(var c=["Nil"],e=d.length;e--;)c=["Cons",d[e],c];return c}}},zip:function(a){return function(b){if("Nil"===
4040a[0]||"Nil"===b[0])return a;("Cons"!==a[0]||"Cons"!==b[0])&&i();for(var c=[];"Cons"===a[0]&&"Cons"===b[0];)c.push(["Tuple2",a[1],b[1]]),a=a[2],b=b[2];for(var b=["Nil"],d=c.length;d--;)b=["Cons",c[d],b];return b}},unzip:f,intersperse:h,intercalate:j,sort:function(a){if("Nil"===a[0])return a;"Cons"!==a[0]&&i();for(var b=[];"Cons"===a[0];)b.push(a[1]),a=a[2];b.sort(function(a,b){return a-b});for(var a=["Nil"],c=b.length;c--;)a=["Cons",b[c],a];return a}}}(),id=function(c){return c},not=function(c){return!c},
41−sqrt=function(c){return Math.sqrt(c)},rem=function(c){return function(a){return c%a}},mod=function(c){return function(a){return 0<a?0<c?c%a:a+c%a:-mod(-c)(-a)}},abs=function(c){return Math.abs(c)},logBase=function(c){return function(a){return Math.log(a)/Math.log(c)}},min=function(c){return function(a){return Math.min(c,a)}},max=function(c){return function(a){return Math.max(c,a)}},clamp=function(c){return function(a){return function(b){return Math.min(a,Math.max(c,b))}}},sin=Math.sin,cos=Math.cos,
42−tan=Math.tan,asin=Math.asin,acos=Math.acos,atan=Math.atan,flip=function(c){return function(a){return function(b){return c(b)(a)}}},Just=function(c){return["Just",c]},Nothing=["Nothing"];function constant(c){return Elm.Input(c)}function lift(c){return function(a){return Elm.Lift(c,[a])}}function lift2(c){return function(a){return function(b){return Elm.Lift(c,[a,b])}}}function lift3(c){return function(a){return function(b){return function(d){return Elm.Lift(c,[a,b,d])}}}}
43−function lift4(c){return function(a){return function(b){return function(d){return function(e){return Elm.Lift(c,[a,b,d,e])}}}}}function foldp(c){return function(a){return function(b){return Elm.Fold(c,a,b)}}}var includeGlobal=this;
41+sqrt=function(c){return Math.sqrt(c)},rem=function(c){return function(a){return c%a}},mod=function(c){return function(a){var b=c%a,b=0==c?0:0<a?0<=c?b:b+a:-mod(-c)(-a);return b==a?0:b}},abs=function(c){return Math.abs(c)},logBase=function(c){return function(a){return Math.log(a)/Math.log(c)}},min=function(c){return function(a){return Math.min(c,a)}},max=function(c){return function(a){return Math.max(c,a)}},clamp=function(c){return function(a){return function(b){return Math.min(a,Math.max(c,b))}}},
42+sin=Math.sin,cos=Math.cos,tan=Math.tan,asin=Math.asin,acos=Math.acos,atan=Math.atan,flip=function(c){return function(a){return function(b){return c(b)(a)}}},Just=function(c){return["Just",c]},Nothing=["Nothing"];function constant(c){return Elm.Input(c)}function lift(c){return function(a){return Elm.Lift(c,[a])}}function lift2(c){return function(a){return function(b){return Elm.Lift(c,[a,b])}}}
43+function lift3(c){return function(a){return function(b){return function(d){return Elm.Lift(c,[a,b,d])}}}}function lift4(c){return function(a){return function(b){return function(d){return function(e){return Elm.Lift(c,[a,b,d,e])}}}}}function foldp(c){return function(a){return function(b){return Elm.Fold(c,a,b)}}}var includeGlobal=this;
4444(function(){var c=function(a){for(var c in a)if("Internal"!==c)try{includeGlobal[c]=a[c]}catch(e){"length"===c&&(includeGlobal.execScript("var length;"),length=a[c])}},a=function(a){return function(c){includeGlobal[a]=includeGlobal[a]||{};for(var e in c)"Internal"!==e&&(includeGlobal[a][e]=c[e])}};c(Element);c(Text);color=Element.color;height=Element.height;show=Value.show;a("Time")(Signal.Time);a("Mouse")(Signal.Mouse);a("Window")(Signal.Window);a("HTTP")(Signal.HTTP);a("Input")(Signal.Input);a("Random")(Signal.Random);
4545c(Color);c(Shape);c(Line)})();
src/CompileToJS.hs−1
@@ -76,7 +76,6 @@ jsRange e1 e2 = (++"()") . jsFunc "" $
7676 ret "lst"
7777
7878binop (o:p) e1 e2
79− | (o:p) == "mod" = e1 ++ "%" ++ e2
8079 | isAlpha o || '_' == o = (o:p) ++ parens e1 ++ parens e2
8180 | otherwise = case o:p of
8281 ":" -> jsCons e1 e2