on master help sign in
New convention for storing module values, fixes bug
b40f295Evan Czaplicki
compiler/Generate/JavaScript.hs+3−3
@@ -282,9 +282,9 @@ jsModule modul =
282 show . prettyPrint $ setup (Just "Elm") (names modul ++ ["make"]) ++
282 show . prettyPrint $ setup (Just "Elm") (names modul ++ ["make"]) ++
283 [ assign ("Elm" : names modul ++ ["make"]) (function ["elm"] programStmts) ]
283 [ assign ("Elm" : names modul ++ ["make"]) (function ["elm"] programStmts) ]
284 where
284 where
285− thisModule = dotSep ("elm" : names modul)
285+ thisModule = dotSep ("elm" : names modul ++ ["values"])
286 programStmts =
286 programStmts =
287− concat [ setup (Just "elm") (names modul)
287+ concat [ setup (Just "elm") (names modul ++ ["values"])
288 , [ IfSingleStmt () thisModule (ReturnStmt () (Just thisModule)) ]
288 , [ IfSingleStmt () thisModule (ReturnStmt () (Just thisModule)) ]
289 , [ internalImports (List.intercalate "." (names modul)) ]
289 , [ internalImports (List.intercalate "." (names modul)) ]
290 , concatMap jsImport (imports modul)
290 , concatMap jsImport (imports modul)
@@ -296,7 +296,7 @@ jsModule modul =
296 , [ ReturnStmt () (Just thisModule) ]
296 , [ ReturnStmt () (Just thisModule) ]
297 ]
297 ]
298
298
299− jsExports = assign ("elm" : names modul) (ObjectLit () exs)
299+ jsExports = assign ("elm" : names modul ++ ["values"]) (ObjectLit () exs)
300 where
300 where
301 exs = map entry . filter (not . isOp) $ "_op" : exports modul
301 exs = map entry . filter (not . isOp) $ "_op" : exports modul
302 entry x = (PropId () (var x), ref x)
302 entry x = (PropId () (var x), ref x)
libraries/Native/Basics.js+4−2
@@ -1,7 +1,9 @@
1
1
2Elm.Native.Basics = {};
2Elm.Native.Basics = {};
3Elm.Native.Basics.make = function(elm) {
3Elm.Native.Basics.make = function(elm) {
4+ elm.Native = elm.Native || {};
5+ elm.Native.Basics = elm.Native.Basics || {};
4− if (elm.Native.Basics) return elm.Native.Basics;
6+ if (elm.Native.Basics.values) return elm.Native.Basics.values;
5
7
6 var JS = Elm.Native.JavaScript.make(elm);
8 var JS = Elm.Native.JavaScript.make(elm);
7 // var Maybe = Elm.Maybe(elm);
9 // var Maybe = Elm.Maybe(elm);
@@ -104,5 +106,5 @@ Elm.Native.Basics.make = function(elm) {
104 snd:snd
106 snd:snd
105 };
107 };
106
108
107− return elm.Native.Basics = basics;
109+ return elm.Native.Basics.values = basics;
108};
110};
libraries/Native/Char.js+3−2
@@ -1,7 +1,8 @@
1Elm.Native.Char = {};
1Elm.Native.Char = {};
2Elm.Native.Char.make = function(elm) {
2Elm.Native.Char.make = function(elm) {
3 elm.Native = elm.Native || {};
3 elm.Native = elm.Native || {};
4+ elm.Native.Char = elm.Native.Char || {};
4− if (elm.Native.Char) return elm.Native.Char;
5+ if (elm.Native.Char.values) return elm.Native.Char.values;
5
6
6 function isBetween(lo,hi) { return function(chr) {
7 function isBetween(lo,hi) { return function(chr) {
7 var c = chr.charCodeAt(0);
8 var c = chr.charCodeAt(0);
@@ -12,7 +13,7 @@ Elm.Native.Char.make = function(elm) {
12 var chk1 = isBetween('a'.charCodeAt(0),'f'.charCodeAt(0));
13 var chk1 = isBetween('a'.charCodeAt(0),'f'.charCodeAt(0));
13 var chk2 = isBetween('A'.charCodeAt(0),'F'.charCodeAt(0));
14 var chk2 = isBetween('A'.charCodeAt(0),'F'.charCodeAt(0));
14
15
15− return elm.Native.Char = {
16+ return elm.Native.Char.values = {
16 fromCode : function(c) { return String.fromCharCode(c); },
17 fromCode : function(c) { return String.fromCharCode(c); },
17 toCode : function(c) { return c.toUpperCase().charCodeAt(0); },
18 toCode : function(c) { return c.toUpperCase().charCodeAt(0); },
18 toUpper : function(c) { return c.toUpperCase(); },
19 toUpper : function(c) { return c.toUpperCase(); },
libraries/Native/Color.js+3−2
@@ -1,7 +1,8 @@
1Elm.Native.Color = {};
1Elm.Native.Color = {};
2Elm.Native.Color.make = function(elm) {
2Elm.Native.Color.make = function(elm) {
3 elm.Native = elm.Native || {};
3 elm.Native = elm.Native || {};
4+ elm.Native.Color = elm.Native.Color || {};
4− if (elm.Native.Color) return elm.Native.Color;
5+ if (elm.Native.Color.values) return elm.Native.Color.values;
5
6
6 var Utils = Elm.Native.Utils.make(elm);
7 var Utils = Elm.Native.Utils.make(elm);
7
8
@@ -59,7 +60,7 @@ Elm.Native.Color.make = function(elm) {
59 return { ctor:"Color", _0:norm(r+m), _1:norm(g+m), _2:norm(b+m), _3:1 };
60 return { ctor:"Color", _0:norm(r+m), _1:norm(g+m), _2:norm(b+m), _3:1 };
60 }
61 }
61
62
62− return elm.Native.Color = {
63+ return elm.Native.Color.values = {
63 hsva:F4(hsva),
64 hsva:F4(hsva),
64 hsv:F3(hsv),
65 hsv:F3(hsv),
65 complement:complement
66 complement:complement
libraries/Native/Date.js+3−2
@@ -1,7 +1,8 @@
1Elm.Native.Date = {};
1Elm.Native.Date = {};
2Elm.Native.Date.make = function(elm) {
2Elm.Native.Date.make = function(elm) {
3 elm.Native = elm.Native || {};
3 elm.Native = elm.Native || {};
4+ elm.Native.Date = elm.Native.Date || {};
4− if (elm.Native.Date) return elm.Native.Date;
5+ if (elm.Native.Date.values) return elm.Native.Date.values;
5
6
6 var JS = Elm.JavaScript.make(elm);
7 var JS = Elm.JavaScript.make(elm);
7 var Maybe = Elm.Maybe.make(elm);
8 var Maybe = Elm.Maybe.make(elm);
@@ -17,7 +18,7 @@ Elm.Native.Date.make = function(elm) {
17 var monthTable = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
18 var monthTable = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
18 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
19 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
19
20
20− return elm.Native.Date = {
21+ return elm.Native.Date.values = {
21 read : readDate,
22 read : readDate,
22 year : function(d) { return d.getFullYear(); },
23 year : function(d) { return d.getFullYear(); },
23 month : function(d) { return { ctor:monthTable[d.getMonth()] }; },
24 month : function(d) { return { ctor:monthTable[d.getMonth()] }; },
libraries/Native/Error.js+3−2
@@ -1,7 +1,8 @@
1Elm.Native.Error = {};
1Elm.Native.Error = {};
2Elm.Native.Error.make = function(elm) {
2Elm.Native.Error.make = function(elm) {
3 elm.Native = elm.Native || {};
3 elm.Native = elm.Native || {};
4+ elm.Native.Error = elm.Native.Error || {};
4− if (elm.Native.Error) return elm.Native.Error;
5+ if (elm.Native.Error.values) return elm.Native.Error.values;
5
6
6 var fromString = Elm.Native.JavaScript.make(elm).fromString;
7 var fromString = Elm.Native.JavaScript.make(elm).fromString;
7
8
@@ -27,5 +28,5 @@ Elm.Native.Error.make = function(elm) {
27
28
28 function raise(str) { throw new Error(fromString(str)); }
29 function raise(str) { throw new Error(fromString(str)); }
29
30
30− return elm.Native.Error = { Case: Case, If: If, raise: raise };
31+ return elm.Native.Error.values = { Case: Case, If: If, raise: raise };
31};
32};
libraries/Native/Graphics/Collage.js+3−2
@@ -3,7 +3,8 @@ Elm.Native.Graphics.Collage.make = function(elm) {
3
3
4 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5 elm.Native.Graphics = elm.Native.Graphics || {};
5 elm.Native.Graphics = elm.Native.Graphics || {};
6+ elm.Native.Graphics.Collage = elm.Native.Graphics.Collage || {};
6− if (elm.Native.Graphics.Collage) return elm.Native.Graphics.Collage;
7+ if (elm.Native.Graphics.Collage.values) return elm.Native.Graphics.Collage.values;
7
8
8 var newElement = Elm.Graphics.Element.make(elm).newElement;
9 var newElement = Elm.Graphics.Element.make(elm).newElement;
9 var C = ElmRuntime.use(ElmRuntime.Render.Collage);
10 var C = ElmRuntime.use(ElmRuntime.Render.Collage);
@@ -17,6 +18,6 @@ Elm.Native.Graphics.Collage.make = function(elm) {
17 model: {w:w, h:h, forms:forms}
18 model: {w:w, h:h, forms:forms}
18 });
19 });
19 }
20 }
20− return elm.Native.Graphics.Collage = { collage:F3(collage) };
21+ return elm.Native.Graphics.Collage.values = { collage:F3(collage) };
21
22
22};
23};
libraries/Native/Graphics/Input.js+3−2
@@ -3,7 +3,8 @@ Elm.Native.Graphics.Input.make = function(elm) {
3
3
4 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5 elm.Native.Graphics = elm.Native.Graphics || {};
5 elm.Native.Graphics = elm.Native.Graphics || {};
6+ elm.Native.Graphics.Input = elm.Native.Graphics.Input || {};
6− if (elm.Native.Graphics.Input) return elm.Native.Graphics.Input;
7+ if (elm.Native.Graphics.Input.values) return elm.Native.Graphics.Input.values;
7
8
8 var Render = ElmRuntime.use(ElmRuntime.Render.Element);
9 var Render = ElmRuntime.use(ElmRuntime.Render.Element);
9 var newNode = ElmRuntime.use(ElmRuntime.Render.Utils).newElement;
10 var newNode = ElmRuntime.use(ElmRuntime.Render.Utils).newElement;
@@ -289,7 +290,7 @@ Elm.Native.Graphics.Input.make = function(elm) {
289 }
290 }
290 }
291 }
291
292
292− return elm.Native.Graphics.Input = {
293+ return elm.Native.Graphics.Input.values = {
293 buttons:buttons,
294 buttons:buttons,
294 customButtons:customButtons,
295 customButtons:customButtons,
295 hoverables:hoverables,
296 hoverables:hoverables,
libraries/Native/JavaScript.js+3−2
@@ -1,7 +1,8 @@
1Elm.Native.JavaScript = {};
1Elm.Native.JavaScript = {};
2Elm.Native.JavaScript.make = function(elm) {
2Elm.Native.JavaScript.make = function(elm) {
3 elm.Native = elm.Native || {};
3 elm.Native = elm.Native || {};
4+ elm.Native.JavaScript = elm.Native.JavaScript || {};
4− if (elm.Native.JavaScript) return elm.Native.JavaScript;
5+ if (elm.Native.JavaScript.values) return elm.Native.JavaScript.values;
5
6
6 var List = Elm.Native.List.make(elm);
7 var List = Elm.Native.List.make(elm);
7 var Render = ElmRuntime.use(ElmRuntime.Render.Element);
8 var Render = ElmRuntime.use(ElmRuntime.Render.Element);
@@ -82,7 +83,7 @@ Elm.Native.JavaScript.make = function(elm) {
82 return Render.render(element);
83 return Render.render(element);
83 }
84 }
84
85
85− return elm.Native.JavaScript = {
86+ return elm.Native.JavaScript.values = {
86 toFloat : id,
87 toFloat : id,
87 toBool : id,
88 toBool : id,
88 toInt : function(n) { return n|0; },
89 toInt : function(n) { return n|0; },
libraries/Native/Json.js+5−1
@@ -1,6 +1,10 @@
1Elm.Native.Json = {};
1Elm.Native.Json = {};
2Elm.Native.Json.make = function(elm) {
2Elm.Native.Json.make = function(elm) {
3
3
4+ elm.Native = elm.Native || {};
5+ elm.Native.Json = elm.Native.Json || {};
6+ if (elm.Native.Json.values) return elm.Native.Json.values;
7+
4 var Maybe = Elm.Maybe.make(elm);
8 var Maybe = Elm.Maybe.make(elm);
5 var Dict = Elm.Dict.make(elm);
9 var Dict = Elm.Dict.make(elm);
6 var List = Elm.List.make(elm);
10 var List = Elm.List.make(elm);
@@ -58,7 +62,7 @@ Elm.Native.Json.make = function(elm) {
58 }
62 }
59 }
63 }
60
64
61− return elm.Native.Json = {
65+ return elm.Native.Json.values = {
62 toJSString : F2(toPrettyJSString),
66 toJSString : F2(toPrettyJSString),
63 fromJSString : fromJSString,
67 fromJSString : fromJSString,
64 toJSObject : fromValue,
68 toJSObject : fromValue,
libraries/Native/List.js+3−2
@@ -1,9 +1,10 @@
1Elm.Native.List = {};
1Elm.Native.List = {};
2Elm.Native.List.make = function(elm) {
2Elm.Native.List.make = function(elm) {
3 elm.Native = elm.Native || {};
3 elm.Native = elm.Native || {};
4+ elm.Native.List = elm.Native.List || {};
4− if (elm.Native.List) return elm.Native.List;
5+ if (elm.Native.List.values) return elm.Native.List.values;
5 if ('values' in Elm.Native.List)
6 if ('values' in Elm.Native.List)
6− return elm.Native.List = Elm.Native.List.values;
7+ return elm.Native.List.values = Elm.Native.List.values;
7
8
8 var Utils = Elm.Native.Utils.make(elm);
9 var Utils = Elm.Native.Utils.make(elm);
9
10
libraries/Native/Prelude.js+5−3
@@ -1,6 +1,8 @@
1Elm.Native.Prelude = {};
1Elm.Native.Prelude = {};
2Elm.Native.Prelude.make = function(elm) {
2Elm.Native.Prelude.make = function(elm) {
3+ elm.Native = elm.Native || {};
4+ elm.Native.Prelude = elm.Native.Prelude || {};
3− if (elm.Native.Prelude) return elm.Native.Prelude;
5+ if (elm.Native.Prelude.values) return elm.Native.Prelude.values;
4
6
5 var JS = Elm.Native.JavaScript.make(elm);
7 var JS = Elm.Native.JavaScript.make(elm);
6 var Maybe = Elm.Maybe.make(elm);
8 var Maybe = Elm.Maybe.make(elm);
@@ -42,9 +44,9 @@ Elm.Native.Prelude.make = function(elm) {
42 return Maybe.Just(parseFloat(s));
44 return Maybe.Just(parseFloat(s));
43 }
45 }
44
46
45− return elm.Native.Prelude = {
47+ return elm.Native.Prelude.values = {
46 readInt:readInt,
48 readInt:readInt,
47− readFloat:readFloat,
49+ readFloat:readFloat
48 };
50 };
49
51
50};
52};
libraries/Native/Show.js+3−2
@@ -1,7 +1,8 @@
1Elm.Native.Show = {};
1Elm.Native.Show = {};
2Elm.Native.Show.make = function(elm) {
2Elm.Native.Show.make = function(elm) {
3 elm.Native = elm.Native || {};
3 elm.Native = elm.Native || {};
4+ elm.Native.Show = elm.Native.Show || {};
4− if (elm.Native.Show) return elm.Native.Show;
5+ if (elm.Native.Show.values) return elm.Native.Show.values;
5
6
6 var NList = Elm.Native.List.make(elm);
7 var NList = Elm.Native.List.make(elm);
7 var List = Elm.List.make(elm);
8 var List = Elm.List.make(elm);
@@ -95,5 +96,5 @@ Elm.Native.Show.make = function(elm) {
95 c === '\\' ? '\\\\' : c;
96 c === '\\' ? '\\\\' : c;
96 }
97 }
97
98
98− return elm.Native.Show = { show:show };
99+ return elm.Native.Show.values = { show:show };
99};
100};
libraries/Native/Signal/Http.js+4−3
@@ -2,7 +2,8 @@ Elm.Native.Http = {};
2Elm.Native.Http.make = function(elm) {
2Elm.Native.Http.make = function(elm) {
3
3
4 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5+ elm.Native.Http = elm.Native.Http || {};
5− if (elm.Native.Http) return elm.Native.Http;
6+ if (elm.Native.Http.values) return elm.Native.Http.values;
6
7
7
8
8 var JS = Elm.JavaScript.make(elm);
9 var JS = Elm.JavaScript.make(elm);
@@ -50,12 +51,12 @@ Elm.Native.Http.make = function(elm) {
50 }
51 }
51
52
52 function send(requests) {
53 function send(requests) {
53− var responses = Signal.constant(elm.Http.Waiting);
54+ var responses = Signal.constant(elm.Http.values.Waiting);
54 var sender = A2( Signal.lift, registerReq([],responses), requests );
55 var sender = A2( Signal.lift, registerReq([],responses), requests );
55 function f(x) { return function(y) { return x; } }
56 function f(x) { return function(y) { return x; } }
56 return A3( Signal.lift2, f, responses, sender );
57 return A3( Signal.lift2, f, responses, sender );
57 }
58 }
58
59
59− return elm.Native.Http = {send:send};
60+ return elm.Native.Http.values = {send:send};
60
61
61};
62};
libraries/Native/Signal/Keyboard.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.Keyboard = {};
2Elm.Native.Keyboard.make = function(elm) {
2Elm.Native.Keyboard.make = function(elm) {
3
3
4 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5+ elm.Native.Keyboard = elm.Native.Keyboard || {};
5− if (elm.Native.Keyboard) return elm.Native.Keyboard;
6+ if (elm.Native.Keyboard.values) return elm.Native.Keyboard.values;
6
7
7 // Duplicated from Native.Signal
8 // Duplicated from Native.Signal
8 function send(node, timestep, changed) {
9 function send(node, timestep, changed) {
@@ -103,7 +104,7 @@ Elm.Native.Keyboard.make = function(elm) {
103
104
104 var lastPressed = Signal.dropRepeats(downEvents);
105 var lastPressed = Signal.dropRepeats(downEvents);
105
106
106− return elm.Native.Keyboard = {
107+ return elm.Native.Keyboard.values = {
107 isDown:is,
108 isDown:is,
108 directions:F4(dir),
109 directions:F4(dir),
109 keysDown:keysDown,
110 keysDown:keysDown,
libraries/Native/Signal/Mouse.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.Mouse = {};
2Elm.Native.Mouse.make = function(elm) {
2Elm.Native.Mouse.make = function(elm) {
3
3
4 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5+ elm.Native.Mouse = elm.Native.Mouse || {};
5− if (elm.Native.Mouse) return elm.Native.Mouse;
6+ if (elm.Native.Mouse.values) return elm.Native.Mouse.values;
6
7
7 var Signal = Elm.Signal.make(elm);
8 var Signal = Elm.Signal.make(elm);
8 var Utils = Elm.Native.Utils.make(elm);
9 var Utils = Elm.Native.Utils.make(elm);
@@ -55,7 +56,7 @@ Elm.Native.Mouse.make = function(elm) {
55 elm.notify(position.id, getXY(e));
56 elm.notify(position.id, getXY(e));
56 });
57 });
57
58
58− return elm.Native.Mouse = {
59+ return elm.Native.Mouse.values = {
59 position: position,
60 position: position,
60 x:x,
61 x:x,
61 y:y,
62 y:y,
libraries/Native/Signal/Random.js+6−5
@@ -2,7 +2,8 @@ Elm.Native.Random = {};
2Elm.Native.Random.make = function(elm) {
2Elm.Native.Random.make = function(elm) {
3
3
4 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5+ elm.Native.Random = elm.Native.Random || {};
5− if (elm.Native.Random) return elm.Native.Random;
6+ if (elm.Native.Random.values) return elm.Native.Random.values;
6
7
7 var Signal = Elm.Signal.make(elm);
8 var Signal = Elm.Signal.make(elm);
8
9
@@ -16,8 +17,8 @@ Elm.Native.Random.make = function(elm) {
16 return A2( Signal.lift, f, signal );
17 return A2( Signal.lift, f, signal );
17 }
18 }
18
19
20+ return elm.Native.Random.values = {
19− elm.Native.Random = { range: F3(range) };
21+ range: F3(range),
20− elm.Native.Random['flt'] = flt;
22+ flt: flt
21− return elm.Native.Random;
23+ };
22−
23};
24};
libraries/Native/Signal/Signal.js+3−2
@@ -3,7 +3,8 @@ Elm.Native.Signal = {};
3Elm.Native.Signal.make = function(elm) {
3Elm.Native.Signal.make = function(elm) {
4
4
5 elm.Native = elm.Native || {};
5 elm.Native = elm.Native || {};
6+ elm.Native.Signal = elm.Native.Signal || {};
6− if (elm.Native.Signal) return elm.Native.Signal;
7+ if (elm.Native.Signal.values) return elm.Native.Signal.values;
7
8
8 var Utils = Elm.Native.Utils.make(elm);
9 var Utils = Elm.Native.Utils.make(elm);
9 var foldl1 = Elm.List.make(elm).foldl1;
10 var foldl1 = Elm.List.make(elm).foldl1;
@@ -203,7 +204,7 @@ Elm.Native.Signal.make = function(elm) {
203 function merge(s1,s2) { return new Merge(s1,s2); }
204 function merge(s1,s2) { return new Merge(s1,s2); }
204 function merges(ss) { return A2(foldl1, F2(merge), ss); }
205 function merges(ss) { return A2(foldl1, F2(merge), ss); }
205
206
206− return elm.Native.Signal = {
207+ return elm.Native.Signal.values = {
207 constant : function(v) { return new Input(v); },
208 constant : function(v) { return new Input(v); },
208 lift : F2(lift ),
209 lift : F2(lift ),
209 lift2 : F3(lift2),
210 lift2 : F3(lift2),
libraries/Native/Signal/Time.js+5−1
@@ -1,6 +1,10 @@
1Elm.Native.Time = {};
1Elm.Native.Time = {};
2Elm.Native.Time.make = function(elm) {
2Elm.Native.Time.make = function(elm) {
3
3
4+ elm.Native = elm.Native || {};
5+ elm.Native.Time = elm.Native.Time || {};
6+ if (elm.Native.Time.values) return elm.Native.Time.values;
7+
4 var Signal = Elm.Signal.make(elm);
8 var Signal = Elm.Signal.make(elm);
5 var NS = Elm.Native.Signal.make(elm);
9 var NS = Elm.Native.Signal.make(elm);
6 var Maybe = Elm.Maybe.make(elm);
10 var Maybe = Elm.Maybe.make(elm);
@@ -49,7 +53,7 @@ Elm.Native.Time.make = function(elm) {
49 var t = Date.parse(s);
53 var t = Date.parse(s);
50 return isNaN(t) ? Maybe.Nothing : Maybe.Just(t);
54 return isNaN(t) ? Maybe.Nothing : Maybe.Just(t);
51 }
55 }
52− return elm.Native.Time = {
56+ return elm.Native.Time.values = {
53 fpsWhen : F2(fpsWhen),
57 fpsWhen : F2(fpsWhen),
54 fps : function(t) { return fpsWhen(t, Signal.constant(true)); },
58 fps : function(t) { return fpsWhen(t, Signal.constant(true)); },
55 every : function(t) { return everyWhen(t, Signal.constant(true)) },
59 every : function(t) { return everyWhen(t, Signal.constant(true)) },
libraries/Native/Signal/Touch.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.Touch = {};
2Elm.Native.Touch.make = function(elm) {
2Elm.Native.Touch.make = function(elm) {
3
3
4 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5+ elm.Native.Touch = elm.Native.Touch || {};
5− if (elm.Native.Touch) return elm.Native.Touch;
6+ if (elm.Native.Touch.values) return elm.Native.Touch.values;
6
7
7 var Signal = Elm.Signal.make(elm);
8 var Signal = Elm.Signal.make(elm);
8 var JS = Elm.JavaScript.make(elm);
9 var JS = Elm.JavaScript.make(elm);
@@ -143,6 +144,6 @@ Elm.Native.Touch.make = function(elm) {
143 return sig2;
144 return sig2;
144 }();
145 }();
145
146
146− return elm.Native.Touch = { touches: touches, taps: taps };
147+ return elm.Native.Touch.values = { touches: touches, taps: taps };
147
148
148};
149};
libraries/Native/Signal/WebSocket.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.WebSocket = {};
2Elm.Native.WebSocket.make = function(elm) {
2Elm.Native.WebSocket.make = function(elm) {
3
3
4 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5+ elm.Native.WebSocket = elm.Native.WebSocket || {};
5− if (elm.Native.WebSocket) return elm.Native.WebSocket;
6+ if (elm.Native.WebSocket.values) return elm.Native.WebSocket.values;
6
7
7 var Signal = Elm.Signal.make(elm);
8 var Signal = Elm.Signal.make(elm);
8 var JS = Elm.JavaScript.make(elm);
9 var JS = Elm.JavaScript.make(elm);
@@ -33,5 +34,5 @@ Elm.Native.WebSocket.make = function(elm) {
33 return A3(Signal.lift2, F2(take1), incoming, A2(Signal.lift, send, outgoing));
34 return A3(Signal.lift2, F2(take1), incoming, A2(Signal.lift, send, outgoing));
34 }
35 }
35
36
36− return elm.Native.WebSocket = { connect: F2(open) };
37+ return elm.Native.WebSocket.values = { connect: F2(open) };
37};
38};
libraries/Native/Signal/Window.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.Window = {};
2Elm.Native.Window.make = function(elm) {
2Elm.Native.Window.make = function(elm) {
3
3
4 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5+ elm.Native.Window = elm.Native.Window || {};
5− if (elm.Native.Window) return elm.Native.Window;
6+ if (elm.Native.Window.values) return elm.Native.Window.values;
6
7
7 var Signal = Elm.Signal.make(elm);
8 var Signal = Elm.Signal.make(elm);
8 var Tuple2 = Elm.Native.Utils.make(elm).Tuple2;
9 var Tuple2 = Elm.Native.Utils.make(elm).Tuple2;
@@ -34,7 +35,7 @@ Elm.Native.Window.make = function(elm) {
34 }
35 }
35 elm.addListener([dimensions.id], window, 'resize', resizeIfNeeded);
36 elm.addListener([dimensions.id], window, 'resize', resizeIfNeeded);
36
37
37− return elm.Native.Window = {
38+ return elm.Native.Window.values = {
38 dimensions:dimensions,
39 dimensions:dimensions,
39 width:width,
40 width:width,
40 height:height,
41 height:height,
libraries/Native/Text.js+3−2
@@ -1,7 +1,8 @@
1Elm.Native.Text = {};
1Elm.Native.Text = {};
2Elm.Native.Text.make = function(elm) {
2Elm.Native.Text.make = function(elm) {
3 elm.Native = elm.Native || {};
3 elm.Native = elm.Native || {};
4+ elm.Native.Text = elm.Native.Text || {};
4− if (elm.Native.Text) return elm.Native.Text;
5+ if (elm.Native.Text.values) return elm.Native.Text.values;
5
6
6 var JS = Elm.JavaScript.make(elm);
7 var JS = Elm.JavaScript.make(elm);
7 var htmlHeight = Elm.Native.Utils.make(elm).htmlHeight;
8 var htmlHeight = Elm.Native.Utils.make(elm).htmlHeight;
@@ -108,7 +109,7 @@ Elm.Native.Text.make = function(elm) {
108 return position('left')(toText(v));
109 return position('left')(toText(v));
109 }
110 }
110
111
111− return elm.Native.Text = {
112+ return elm.Native.Text.values = {
112 toText: toText,
113 toText: toText,
113
114
114 header : header,
115 header : header,
libraries/Native/Transform2D.js+3−3
@@ -1,9 +1,9 @@
1−
2Elm.Native.Transform2D = {};
1Elm.Native.Transform2D = {};
3Elm.Native.Transform2D.make = function(elm) {
2Elm.Native.Transform2D.make = function(elm) {
4
3
5 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5+ elm.Native.Transform2D = elm.Native.Transform2D || {};
6− if (elm.Native.Transform2D) return elm.Native.Transform2D;
6+ if (elm.Native.Transform2D.values) return elm.Native.Transform2D.values;
7
7
8 var A;
8 var A;
9 if (typeof Float32Array === 'undefined') {
9 if (typeof Float32Array === 'undefined') {
@@ -80,7 +80,7 @@ Elm.Native.Transform2D.make = function(elm) {
80 m21*ndx + m22*ndy + mdy]);
80 m21*ndx + m22*ndy + mdy]);
81 }
81 }
82
82
83− return elm.Native.Transform2D = {
83+ return elm.Native.Transform2D.values = {
84 identity:identity,
84 identity:identity,
85 matrix:F6(matrix),
85 matrix:F6(matrix),
86 rotation:rotation,
86 rotation:rotation,
libraries/Native/Utils.js+3−4
@@ -1,10 +1,9 @@
1−
2Elm.Native.Utils = {};
1Elm.Native.Utils = {};
3Elm.Native.Utils.make = function(elm) {
2Elm.Native.Utils.make = function(elm) {
4− 'use strict';
5
3
6 elm.Native = elm.Native || {};
4 elm.Native = elm.Native || {};
5+ elm.Native.Utils = elm.Native.Utils || {};
7− if (elm.Native.Utils) return elm.Native.Utils;
6+ if (elm.Native.Utils.values) return elm.Native.Utils.values;
8
7
9 function eq(x,y) {
8 function eq(x,y) {
10 if (x === y) return true;
9 if (x === y) return true;
@@ -144,7 +143,7 @@ Elm.Native.Utils.make = function(elm) {
144 elm.addListener(elm.inputs, elm.node, 'mouseover', adjustOffset);
143 elm.addListener(elm.inputs, elm.node, 'mouseover', adjustOffset);
145 }
144 }
146
145
147− return elm.Native.Utils = {
146+ return elm.Native.Utils.values = {
148 eq:eq,
147 eq:eq,
149 cmp:cmp,
148 cmp:cmp,
150 compare:F2(compare),
149 compare:F2(compare),
runtime/Init.js+2−2
@@ -164,7 +164,7 @@ function initGraphics(elm, Module) {
164 function domUpdate(newScene, currentScene) {
164 function domUpdate(newScene, currentScene) {
165 ElmRuntime.draw(function(_) {
165 ElmRuntime.draw(function(_) {
166 Render.update(elm.node.firstChild, currentScene, newScene);
166 Render.update(elm.node.firstChild, currentScene, newScene);
167− if (elm.Native.Window) elm.Native.Window.resizeIfNeeded();
167+ if (elm.Native.Window) elm.Native.Window.values.resizeIfNeeded();
168 });
168 });
169 return newScene;
169 return newScene;
170 }
170 }
@@ -172,7 +172,7 @@ function initGraphics(elm, Module) {
172
172
173 // must check for resize after 'renderer' is created so
173 // must check for resize after 'renderer' is created so
174 // that changes show up.
174 // that changes show up.
175− if (elm.Native.Window) elm.Native.Window.resizeIfNeeded();
175+ if (elm.Native.Window) elm.Native.Window.values.resizeIfNeeded();
176
176
177 return renderer;
177 return renderer;
178}
178}