on master help sign in
Update runtime.
commitc77b390f8f02f1346558c4f3905a48b841d6b31b authorevancz <info@elm-lang.org> dateMon 14 Jan 2013, 00:15 (14 years ago) parent9f47e87
1 file changed+40−26
elm/elm-runtime-0.7.1.js+40−26
elm/elm-runtime-0.7.1.js+40−26
@@ -2519,6 +2519,12 @@ Elm.Signal = function() {
25192519 return Elm.List.foldl1(mrg)(ss);
25202520 }
25212521
2522+ function mergeEither(s1) { return function(s2) {
2523+ function f(s) { return function(x) { return [s,x]; }; }
2524+ return new merge(new lift(f,[s1]), new lift(f,[s2]));
2525+ };
2526+ }
2527+
25222528 function average(sampleSize) { return function(s) {
25232529 var sample = new Array(sampleSize);
25242530 var i = sampleSize;
@@ -2578,6 +2584,7 @@ Elm.Signal = function() {
25782584 delay : delay,
25792585 merge : function(s1) { return function(s2) { return new merge(s1,s2)}; },
25802586 merges : merges,
2587+ mergeEither : mergeEither,
25812588 average : average,
25822589 count : function(sig) {
25832590 var incr = function(_){return function(c){return c+1;};};
@@ -2615,7 +2622,8 @@ var Dispatcher = function() {
26152622 content.appendChild(Render.render(currentElement));
26162623 var w = document.getElementById('widthChecker').offsetWidth;
26172624 if (w !== window.innerWidth) {
2618− Dispatcher.notify(Elm.Window.dimensions.id, Value.Tuple(w, window.innerHeight));
2625+ Dispatcher.notify(Elm.Window.dimensions.id,
2626+ Value.Tuple(w, window.innerHeight));
26192627 }
26202628 program = Elm.Signal.lift(function(value) {
26212629 var content = document.getElementById('content');
@@ -2647,7 +2655,7 @@ var Dispatcher = function() {
26472655 function filterDeadInputs() {
26482656 var temp = [];
26492657 for (var i = inputs.length; i--; ) {
2650− if (isAlive(inputs[i])) temp.push(inputs[i]);
2658+ if (isAlive(inputs[i])) { temp.push(inputs[i]); }
26512659 }
26522660 inputs = temp;
26532661 }
@@ -2932,12 +2940,12 @@ Elm.Mouse = function() {
29322940 var hasListener2 = Dispatcher.notify(clicks.id, Value.Tuple());
29332941 Dispatcher.notify(isClicked.id, false);
29342942 if (!hasListener1 && !hasListener2)
2935− this.removeEventListener('click',arguments.callee,false);
2943+ this.removeEventListener('click',arguments.callee,false);
29362944 });
29372945 Value.addListener(document, 'mousedown', function(e) {
29382946 var hasListener = Dispatcher.notify(isDown.id, true);
29392947 if (!hasListener)
2940− this.removeEventListener('mousedown',arguments.callee,false);
2948+ this.removeEventListener('mousedown',arguments.callee,false);
29412949 });
29422950 Value.addListener(document, 'mouseup', function(e) {
29432951 var hasListener = Dispatcher.notify(isDown.id, false);
@@ -3111,6 +3119,18 @@ Value.addListener(document, 'elm_title', function(e) {document.title = e.value;}
31113119Value.addListener(document, 'elm_redirect', function(e) {
31123120 if (e.value.length > 0) { window.location = e.value; }
31133121 });
3122+Value.addListener(document, 'elm_viewport', function(e) {
3123+ var node = document.getElementById('elm_viewport');
3124+ if (!node) {
3125+ node = document.createElement('meta');
3126+ node.id = 'elm_viewport';
3127+ node.name = 'viewport';
3128+ document.head.appendChild(node);
3129+ }
3130+ node.content = e.value;
3131+ Dispatcher.notify(Elm.Window.dimensions.id,
3132+ Value.Tuple(window.innerWidth, window.innerHeight));
3133+ });
31143134
31153135Elm.Prelude = function() {
31163136 var mod = function(x) { return function(y) {
@@ -3271,6 +3291,8 @@ Elm.Prelude = function() {
32713291 foldp$ : Elm.Signal.foldp$,
32723292 constant : Elm.Signal.constant,
32733293 merge : Elm.Signal.merge,
3294+ merges : Elm.Signal.merges,
3295+ mergeEither : Elm.Signal.mergeEither,
32743296 count : Elm.Signal.count,
32753297 countIf : Elm.Signal.countIf,
32763298 average : Elm.Signal.average,
@@ -3303,16 +3325,6 @@ Elm.Prelude = function() {
33033325
33043326Elm.Touch = function() {
33053327
3306− function log(id,msg) {
3307− var e = document.getElementById('logger' + id);
3308− if (!e) {
3309− e = document.createElement('div');
3310− e.id = 'logger' + id;
3311− document.body.appendChild(e);
3312− }
3313− e.innerHTML = msg;
3314− }
3315−
33163328 function Dict() {
33173329 this.keys = [];
33183330 this.values = [];
@@ -3320,11 +3332,11 @@ Elm.Touch = function() {
33203332 this.insert = function(key,value) {
33213333 this.keys.push(key);
33223334 this.values.push(value);
3323− }
3335+ };
33243336 this.lookup = function(key) {
33253337 var i = this.keys.indexOf(key)
33263338 return i >= 0 ? this.values[i] : {x:0,y:0,t:0};
3327− }
3339+ };
33283340 this.remove = function(key) {
33293341 var i = this.keys.indexOf(key);
33303342 if (i < 0) return;
@@ -3332,7 +3344,7 @@ Elm.Touch = function() {
33323344 this.keys.splice(i,1);
33333345 this.values.splice(i,1);
33343346 return t;
3335− }
3347+ };
33363348 }
33373349
33383350 var root = Elm.Signal.constant([]),
@@ -3340,7 +3352,7 @@ Elm.Touch = function() {
33403352 hasTap = false,
33413353 tap = {_:[true],x:[0],y:[0]},
33423354 dict = new Dict();
3343−
3355+
33443356 function touch(t) {
33453357 var r = dict.lookup(t.identifier);
33463358 return {_ : [true], id: [t.identifier],
@@ -3366,8 +3378,7 @@ Elm.Touch = function() {
33663378 var ts = new Array(e.touches.length);
33673379 for (var i = e.touches.length; i--; ) { ts[i] = touch(e.touches[i]); }
33683380 var hasListener = Dispatcher.notify(root.id, ts);
3369− if (!hasListener)
3370− return this.removeEventListener(name,arguments.callee,false);
3381+ if (!hasListener) return document.removeEventListener(name, update);
33713382 e.preventDefault();
33723383 }
33733384 Value.addListener(document, name, update);
@@ -3380,19 +3391,22 @@ Elm.Touch = function() {
33803391 listen("touchleave", end);
33813392
33823393 function dependency(f) {
3383− var signal = Elm.Signal.lift(f)(root);
3384− root.defaultNumberOfKids += 1;
3385− signal.defaultNumberOfKids = 0;
3386− return signal;
3394+ var sig = Elm.Signal.lift(f)(root);
3395+ root.defaultNumberOfKids += 1;
3396+ sig.defaultNumberOfKids = 0;
3397+ return sig;
33873398 }
33883399
33893400 var touches = dependency(function(ts) {
33903401 return Elm.JavaScript.castJSArrayToList(ts);
33913402 });
33923403 var taps = function() {
3393− function pred(_) { var b = hasTap; hasTap = false; return b; }
33943404 var sig = dependency(function(_) { return tap; });
3395− return Elm.Signal.keepIf(pred)({_:[true],x:[0],y:[0]})(sig);
3405+ sig.defaultNumberOfKids = 1;
3406+ function pred(_) { var b = hasTap; hasTap = false; return b; }
3407+ var sig2 = Elm.Signal.keepIf(pred)({_:[true],x:[0],y:[0]})(sig);
3408+ sig2.defaultNumberOfKids = 0;
3409+ return sig2;
33963410 }();
33973411
33983412 return { touches: touches, taps: taps };