on master help sign in
New convention for storing module values, fixes bug

Before it was not possible to add values to anything except leafs of the namespace structure.

commitb40f2958d431056f04b3f06cbfb861ea399ebe50 authorEvan Czaplicki <info@elm-lang.org> dateMon 30 Sep 2013, 01:32 (13 years ago) parent2cb4fd8
26 files changed+88−59
compiler/Generate/JavaScript.hs+3−3 libraries/Native/Basics.js+4−2 libraries/Native/Char.js+3−2 libraries/Native/Color.js+3−2 libraries/Native/Date.js+3−2 libraries/Native/Error.js+3−2 libraries/Native/Graphics/Collage.js+3−2 libraries/Native/Graphics/Input.js+3−2 libraries/Native/JavaScript.js+3−2 libraries/Native/Json.js+5−1 libraries/Native/List.js+3−2 libraries/Native/Prelude.js+5−3 libraries/Native/Show.js+3−2 libraries/Native/Signal/Http.js+4−3 libraries/Native/Signal/Keyboard.js+3−2 libraries/Native/Signal/Mouse.js+3−2 libraries/Native/Signal/Random.js+6−5 libraries/Native/Signal/Signal.js+3−2 libraries/Native/Signal/Time.js+5−1 libraries/Native/Signal/Touch.js+3−2 libraries/Native/Signal/WebSocket.js+3−2 libraries/Native/Signal/Window.js+3−2 libraries/Native/Text.js+3−2 libraries/Native/Transform2D.js+3−3 libraries/Native/Utils.js+3−4 runtime/Init.js+2−2
compiler/Generate/JavaScript.hs+3−3
@@ -282,9 +282,9 @@ jsModule modul =
282282 show . prettyPrint $ setup (Just "Elm") (names modul ++ ["make"]) ++
283283 [ assign ("Elm" : names modul ++ ["make"]) (function ["elm"] programStmts) ]
284284 where
285− thisModule = dotSep ("elm" : names modul)
285+ thisModule = dotSep ("elm" : names modul ++ ["values"])
286286 programStmts =
287− concat [ setup (Just "elm") (names modul)
287+ concat [ setup (Just "elm") (names modul ++ ["values"])
288288 , [ IfSingleStmt () thisModule (ReturnStmt () (Just thisModule)) ]
289289 , [ internalImports (List.intercalate "." (names modul)) ]
290290 , concatMap jsImport (imports modul)
@@ -296,7 +296,7 @@ jsModule modul =
296296 , [ ReturnStmt () (Just thisModule) ]
297297 ]
298298
299− jsExports = assign ("elm" : names modul) (ObjectLit () exs)
299+ jsExports = assign ("elm" : names modul ++ ["values"]) (ObjectLit () exs)
300300 where
301301 exs = map entry . filter (not . isOp) $ "_op" : exports modul
302302 entry x = (PropId () (var x), ref x)
libraries/Native/Basics.js+4−2
@@ -1,7 +1,9 @@
11
22Elm.Native.Basics = {};
33Elm.Native.Basics.make = function(elm) {
4− if (elm.Native.Basics) return elm.Native.Basics;
4+ elm.Native = elm.Native || {};
5+ elm.Native.Basics = elm.Native.Basics || {};
6+ if (elm.Native.Basics.values) return elm.Native.Basics.values;
57
68 var JS = Elm.Native.JavaScript.make(elm);
79 // var Maybe = Elm.Maybe(elm);
@@ -104,5 +106,5 @@ Elm.Native.Basics.make = function(elm) {
104106 snd:snd
105107 };
106108
107− return elm.Native.Basics = basics;
109+ return elm.Native.Basics.values = basics;
108110};
libraries/Native/Char.js+3−2
@@ -1,7 +1,8 @@
11Elm.Native.Char = {};
22Elm.Native.Char.make = function(elm) {
33 elm.Native = elm.Native || {};
4− if (elm.Native.Char) return elm.Native.Char;
4+ elm.Native.Char = elm.Native.Char || {};
5+ if (elm.Native.Char.values) return elm.Native.Char.values;
56
67 function isBetween(lo,hi) { return function(chr) {
78 var c = chr.charCodeAt(0);
@@ -12,7 +13,7 @@ Elm.Native.Char.make = function(elm) {
1213 var chk1 = isBetween('a'.charCodeAt(0),'f'.charCodeAt(0));
1314 var chk2 = isBetween('A'.charCodeAt(0),'F'.charCodeAt(0));
1415
15− return elm.Native.Char = {
16+ return elm.Native.Char.values = {
1617 fromCode : function(c) { return String.fromCharCode(c); },
1718 toCode : function(c) { return c.toUpperCase().charCodeAt(0); },
1819 toUpper : function(c) { return c.toUpperCase(); },
libraries/Native/Color.js+3−2
@@ -1,7 +1,8 @@
11Elm.Native.Color = {};
22Elm.Native.Color.make = function(elm) {
33 elm.Native = elm.Native || {};
4− if (elm.Native.Color) return elm.Native.Color;
4+ elm.Native.Color = elm.Native.Color || {};
5+ if (elm.Native.Color.values) return elm.Native.Color.values;
56
67 var Utils = Elm.Native.Utils.make(elm);
78
@@ -59,7 +60,7 @@ Elm.Native.Color.make = function(elm) {
5960 return { ctor:"Color", _0:norm(r+m), _1:norm(g+m), _2:norm(b+m), _3:1 };
6061 }
6162
62− return elm.Native.Color = {
63+ return elm.Native.Color.values = {
6364 hsva:F4(hsva),
6465 hsv:F3(hsv),
6566 complement:complement
libraries/Native/Date.js+3−2
@@ -1,7 +1,8 @@
11Elm.Native.Date = {};
22Elm.Native.Date.make = function(elm) {
33 elm.Native = elm.Native || {};
4− if (elm.Native.Date) return elm.Native.Date;
4+ elm.Native.Date = elm.Native.Date || {};
5+ if (elm.Native.Date.values) return elm.Native.Date.values;
56
67 var JS = Elm.JavaScript.make(elm);
78 var Maybe = Elm.Maybe.make(elm);
@@ -17,7 +18,7 @@ Elm.Native.Date.make = function(elm) {
1718 var monthTable = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
1819 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
1920
20− return elm.Native.Date = {
21+ return elm.Native.Date.values = {
2122 read : readDate,
2223 year : function(d) { return d.getFullYear(); },
2324 month : function(d) { return { ctor:monthTable[d.getMonth()] }; },
libraries/Native/Error.js+3−2
@@ -1,7 +1,8 @@
11Elm.Native.Error = {};
22Elm.Native.Error.make = function(elm) {
33 elm.Native = elm.Native || {};
4− if (elm.Native.Error) return elm.Native.Error;
4+ elm.Native.Error = elm.Native.Error || {};
5+ if (elm.Native.Error.values) return elm.Native.Error.values;
56
67 var fromString = Elm.Native.JavaScript.make(elm).fromString;
78
@@ -27,5 +28,5 @@ Elm.Native.Error.make = function(elm) {
2728
2829 function raise(str) { throw new Error(fromString(str)); }
2930
30− return elm.Native.Error = { Case: Case, If: If, raise: raise };
31+ return elm.Native.Error.values = { Case: Case, If: If, raise: raise };
3132};
libraries/Native/Graphics/Collage.js+3−2
@@ -3,7 +3,8 @@ Elm.Native.Graphics.Collage.make = function(elm) {
33
44 elm.Native = elm.Native || {};
55 elm.Native.Graphics = elm.Native.Graphics || {};
6− if (elm.Native.Graphics.Collage) return elm.Native.Graphics.Collage;
6+ elm.Native.Graphics.Collage = elm.Native.Graphics.Collage || {};
7+ if (elm.Native.Graphics.Collage.values) return elm.Native.Graphics.Collage.values;
78
89 var newElement = Elm.Graphics.Element.make(elm).newElement;
910 var C = ElmRuntime.use(ElmRuntime.Render.Collage);
@@ -17,6 +18,6 @@ Elm.Native.Graphics.Collage.make = function(elm) {
1718 model: {w:w, h:h, forms:forms}
1819 });
1920 }
20− return elm.Native.Graphics.Collage = { collage:F3(collage) };
21+ return elm.Native.Graphics.Collage.values = { collage:F3(collage) };
2122
2223};
libraries/Native/Graphics/Input.js+3−2
@@ -3,7 +3,8 @@ Elm.Native.Graphics.Input.make = function(elm) {
33
44 elm.Native = elm.Native || {};
55 elm.Native.Graphics = elm.Native.Graphics || {};
6− if (elm.Native.Graphics.Input) return elm.Native.Graphics.Input;
6+ elm.Native.Graphics.Input = elm.Native.Graphics.Input || {};
7+ if (elm.Native.Graphics.Input.values) return elm.Native.Graphics.Input.values;
78
89 var Render = ElmRuntime.use(ElmRuntime.Render.Element);
910 var newNode = ElmRuntime.use(ElmRuntime.Render.Utils).newElement;
@@ -289,7 +290,7 @@ Elm.Native.Graphics.Input.make = function(elm) {
289290 }
290291 }
291292
292− return elm.Native.Graphics.Input = {
293+ return elm.Native.Graphics.Input.values = {
293294 buttons:buttons,
294295 customButtons:customButtons,
295296 hoverables:hoverables,
libraries/Native/JavaScript.js+3−2
@@ -1,7 +1,8 @@
11Elm.Native.JavaScript = {};
22Elm.Native.JavaScript.make = function(elm) {
33 elm.Native = elm.Native || {};
4− if (elm.Native.JavaScript) return elm.Native.JavaScript;
4+ elm.Native.JavaScript = elm.Native.JavaScript || {};
5+ if (elm.Native.JavaScript.values) return elm.Native.JavaScript.values;
56
67 var List = Elm.Native.List.make(elm);
78 var Render = ElmRuntime.use(ElmRuntime.Render.Element);
@@ -82,7 +83,7 @@ Elm.Native.JavaScript.make = function(elm) {
8283 return Render.render(element);
8384 }
8485
85− return elm.Native.JavaScript = {
86+ return elm.Native.JavaScript.values = {
8687 toFloat : id,
8788 toBool : id,
8889 toInt : function(n) { return n|0; },
libraries/Native/Json.js+5−1
@@ -1,6 +1,10 @@
11Elm.Native.Json = {};
22Elm.Native.Json.make = function(elm) {
33
4+ elm.Native = elm.Native || {};
5+ elm.Native.Json = elm.Native.Json || {};
6+ if (elm.Native.Json.values) return elm.Native.Json.values;
7+
48 var Maybe = Elm.Maybe.make(elm);
59 var Dict = Elm.Dict.make(elm);
610 var List = Elm.List.make(elm);
@@ -58,7 +62,7 @@ Elm.Native.Json.make = function(elm) {
5862 }
5963 }
6064
61− return elm.Native.Json = {
65+ return elm.Native.Json.values = {
6266 toJSString : F2(toPrettyJSString),
6367 fromJSString : fromJSString,
6468 toJSObject : fromValue,
libraries/Native/List.js+3−2
@@ -1,9 +1,10 @@
11Elm.Native.List = {};
22Elm.Native.List.make = function(elm) {
33 elm.Native = elm.Native || {};
4− if (elm.Native.List) return elm.Native.List;
4+ elm.Native.List = elm.Native.List || {};
5+ if (elm.Native.List.values) return elm.Native.List.values;
56 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;
78
89 var Utils = Elm.Native.Utils.make(elm);
910
libraries/Native/Prelude.js+5−3
@@ -1,6 +1,8 @@
11Elm.Native.Prelude = {};
22Elm.Native.Prelude.make = function(elm) {
3− if (elm.Native.Prelude) return elm.Native.Prelude;
3+ elm.Native = elm.Native || {};
4+ elm.Native.Prelude = elm.Native.Prelude || {};
5+ if (elm.Native.Prelude.values) return elm.Native.Prelude.values;
46
57 var JS = Elm.Native.JavaScript.make(elm);
68 var Maybe = Elm.Maybe.make(elm);
@@ -42,9 +44,9 @@ Elm.Native.Prelude.make = function(elm) {
4244 return Maybe.Just(parseFloat(s));
4345 }
4446
45− return elm.Native.Prelude = {
47+ return elm.Native.Prelude.values = {
4648 readInt:readInt,
47− readFloat:readFloat,
49+ readFloat:readFloat
4850 };
4951
5052};
libraries/Native/Show.js+3−2
@@ -1,7 +1,8 @@
11Elm.Native.Show = {};
22Elm.Native.Show.make = function(elm) {
33 elm.Native = elm.Native || {};
4− if (elm.Native.Show) return elm.Native.Show;
4+ elm.Native.Show = elm.Native.Show || {};
5+ if (elm.Native.Show.values) return elm.Native.Show.values;
56
67 var NList = Elm.Native.List.make(elm);
78 var List = Elm.List.make(elm);
@@ -95,5 +96,5 @@ Elm.Native.Show.make = function(elm) {
9596 c === '\\' ? '\\\\' : c;
9697 }
9798
98− return elm.Native.Show = { show:show };
99+ return elm.Native.Show.values = { show:show };
99100};
libraries/Native/Signal/Http.js+4−3
@@ -2,7 +2,8 @@ Elm.Native.Http = {};
22Elm.Native.Http.make = function(elm) {
33
44 elm.Native = elm.Native || {};
5− if (elm.Native.Http) return elm.Native.Http;
5+ elm.Native.Http = elm.Native.Http || {};
6+ if (elm.Native.Http.values) return elm.Native.Http.values;
67
78
89 var JS = Elm.JavaScript.make(elm);
@@ -50,12 +51,12 @@ Elm.Native.Http.make = function(elm) {
5051 }
5152
5253 function send(requests) {
53− var responses = Signal.constant(elm.Http.Waiting);
54+ var responses = Signal.constant(elm.Http.values.Waiting);
5455 var sender = A2( Signal.lift, registerReq([],responses), requests );
5556 function f(x) { return function(y) { return x; } }
5657 return A3( Signal.lift2, f, responses, sender );
5758 }
5859
59− return elm.Native.Http = {send:send};
60+ return elm.Native.Http.values = {send:send};
6061
6162};
libraries/Native/Signal/Keyboard.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.Keyboard = {};
22Elm.Native.Keyboard.make = function(elm) {
33
44 elm.Native = elm.Native || {};
5− if (elm.Native.Keyboard) return elm.Native.Keyboard;
5+ elm.Native.Keyboard = elm.Native.Keyboard || {};
6+ if (elm.Native.Keyboard.values) return elm.Native.Keyboard.values;
67
78 // Duplicated from Native.Signal
89 function send(node, timestep, changed) {
@@ -103,7 +104,7 @@ Elm.Native.Keyboard.make = function(elm) {
103104
104105 var lastPressed = Signal.dropRepeats(downEvents);
105106
106− return elm.Native.Keyboard = {
107+ return elm.Native.Keyboard.values = {
107108 isDown:is,
108109 directions:F4(dir),
109110 keysDown:keysDown,
libraries/Native/Signal/Mouse.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.Mouse = {};
22Elm.Native.Mouse.make = function(elm) {
33
44 elm.Native = elm.Native || {};
5− if (elm.Native.Mouse) return elm.Native.Mouse;
5+ elm.Native.Mouse = elm.Native.Mouse || {};
6+ if (elm.Native.Mouse.values) return elm.Native.Mouse.values;
67
78 var Signal = Elm.Signal.make(elm);
89 var Utils = Elm.Native.Utils.make(elm);
@@ -55,7 +56,7 @@ Elm.Native.Mouse.make = function(elm) {
5556 elm.notify(position.id, getXY(e));
5657 });
5758
58− return elm.Native.Mouse = {
59+ return elm.Native.Mouse.values = {
5960 position: position,
6061 x:x,
6162 y:y,
libraries/Native/Signal/Random.js+6−5
@@ -2,7 +2,8 @@ Elm.Native.Random = {};
22Elm.Native.Random.make = function(elm) {
33
44 elm.Native = elm.Native || {};
5− if (elm.Native.Random) return elm.Native.Random;
5+ elm.Native.Random = elm.Native.Random || {};
6+ if (elm.Native.Random.values) return elm.Native.Random.values;
67
78 var Signal = Elm.Signal.make(elm);
89
@@ -16,8 +17,8 @@ Elm.Native.Random.make = function(elm) {
1617 return A2( Signal.lift, f, signal );
1718 }
1819
19− elm.Native.Random = { range: F3(range) };
20− elm.Native.Random['flt'] = flt;
21− return elm.Native.Random;
22−
20+ return elm.Native.Random.values = {
21+ range: F3(range),
22+ flt: flt
23+ };
2324};
libraries/Native/Signal/Signal.js+3−2
@@ -3,7 +3,8 @@ Elm.Native.Signal = {};
33Elm.Native.Signal.make = function(elm) {
44
55 elm.Native = elm.Native || {};
6− if (elm.Native.Signal) return elm.Native.Signal;
6+ elm.Native.Signal = elm.Native.Signal || {};
7+ if (elm.Native.Signal.values) return elm.Native.Signal.values;
78
89 var Utils = Elm.Native.Utils.make(elm);
910 var foldl1 = Elm.List.make(elm).foldl1;
@@ -203,7 +204,7 @@ Elm.Native.Signal.make = function(elm) {
203204 function merge(s1,s2) { return new Merge(s1,s2); }
204205 function merges(ss) { return A2(foldl1, F2(merge), ss); }
205206
206− return elm.Native.Signal = {
207+ return elm.Native.Signal.values = {
207208 constant : function(v) { return new Input(v); },
208209 lift : F2(lift ),
209210 lift2 : F3(lift2),
libraries/Native/Signal/Time.js+5−1
@@ -1,6 +1,10 @@
11Elm.Native.Time = {};
22Elm.Native.Time.make = function(elm) {
33
4+ elm.Native = elm.Native || {};
5+ elm.Native.Time = elm.Native.Time || {};
6+ if (elm.Native.Time.values) return elm.Native.Time.values;
7+
48 var Signal = Elm.Signal.make(elm);
59 var NS = Elm.Native.Signal.make(elm);
610 var Maybe = Elm.Maybe.make(elm);
@@ -49,7 +53,7 @@ Elm.Native.Time.make = function(elm) {
4953 var t = Date.parse(s);
5054 return isNaN(t) ? Maybe.Nothing : Maybe.Just(t);
5155 }
52− return elm.Native.Time = {
56+ return elm.Native.Time.values = {
5357 fpsWhen : F2(fpsWhen),
5458 fps : function(t) { return fpsWhen(t, Signal.constant(true)); },
5559 every : function(t) { return everyWhen(t, Signal.constant(true)) },
libraries/Native/Signal/Touch.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.Touch = {};
22Elm.Native.Touch.make = function(elm) {
33
44 elm.Native = elm.Native || {};
5− if (elm.Native.Touch) return elm.Native.Touch;
5+ elm.Native.Touch = elm.Native.Touch || {};
6+ if (elm.Native.Touch.values) return elm.Native.Touch.values;
67
78 var Signal = Elm.Signal.make(elm);
89 var JS = Elm.JavaScript.make(elm);
@@ -143,6 +144,6 @@ Elm.Native.Touch.make = function(elm) {
143144 return sig2;
144145 }();
145146
146− return elm.Native.Touch = { touches: touches, taps: taps };
147+ return elm.Native.Touch.values = { touches: touches, taps: taps };
147148
148149};
libraries/Native/Signal/WebSocket.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.WebSocket = {};
22Elm.Native.WebSocket.make = function(elm) {
33
44 elm.Native = elm.Native || {};
5− if (elm.Native.WebSocket) return elm.Native.WebSocket;
5+ elm.Native.WebSocket = elm.Native.WebSocket || {};
6+ if (elm.Native.WebSocket.values) return elm.Native.WebSocket.values;
67
78 var Signal = Elm.Signal.make(elm);
89 var JS = Elm.JavaScript.make(elm);
@@ -33,5 +34,5 @@ Elm.Native.WebSocket.make = function(elm) {
3334 return A3(Signal.lift2, F2(take1), incoming, A2(Signal.lift, send, outgoing));
3435 }
3536
36− return elm.Native.WebSocket = { connect: F2(open) };
37+ return elm.Native.WebSocket.values = { connect: F2(open) };
3738};
libraries/Native/Signal/Window.js+3−2
@@ -2,7 +2,8 @@ Elm.Native.Window = {};
22Elm.Native.Window.make = function(elm) {
33
44 elm.Native = elm.Native || {};
5− if (elm.Native.Window) return elm.Native.Window;
5+ elm.Native.Window = elm.Native.Window || {};
6+ if (elm.Native.Window.values) return elm.Native.Window.values;
67
78 var Signal = Elm.Signal.make(elm);
89 var Tuple2 = Elm.Native.Utils.make(elm).Tuple2;
@@ -34,7 +35,7 @@ Elm.Native.Window.make = function(elm) {
3435 }
3536 elm.addListener([dimensions.id], window, 'resize', resizeIfNeeded);
3637
37− return elm.Native.Window = {
38+ return elm.Native.Window.values = {
3839 dimensions:dimensions,
3940 width:width,
4041 height:height,
libraries/Native/Text.js+3−2
@@ -1,7 +1,8 @@
11Elm.Native.Text = {};
22Elm.Native.Text.make = function(elm) {
33 elm.Native = elm.Native || {};
4− if (elm.Native.Text) return elm.Native.Text;
4+ elm.Native.Text = elm.Native.Text || {};
5+ if (elm.Native.Text.values) return elm.Native.Text.values;
56
67 var JS = Elm.JavaScript.make(elm);
78 var htmlHeight = Elm.Native.Utils.make(elm).htmlHeight;
@@ -108,7 +109,7 @@ Elm.Native.Text.make = function(elm) {
108109 return position('left')(toText(v));
109110 }
110111
111− return elm.Native.Text = {
112+ return elm.Native.Text.values = {
112113 toText: toText,
113114
114115 header : header,
libraries/Native/Transform2D.js+3−3
@@ -1,9 +1,9 @@
1−
21Elm.Native.Transform2D = {};
32Elm.Native.Transform2D.make = function(elm) {
43
54 elm.Native = elm.Native || {};
6− if (elm.Native.Transform2D) return elm.Native.Transform2D;
5+ elm.Native.Transform2D = elm.Native.Transform2D || {};
6+ if (elm.Native.Transform2D.values) return elm.Native.Transform2D.values;
77
88 var A;
99 if (typeof Float32Array === 'undefined') {
@@ -80,7 +80,7 @@ Elm.Native.Transform2D.make = function(elm) {
8080 m21*ndx + m22*ndy + mdy]);
8181 }
8282
83− return elm.Native.Transform2D = {
83+ return elm.Native.Transform2D.values = {
8484 identity:identity,
8585 matrix:F6(matrix),
8686 rotation:rotation,
libraries/Native/Utils.js+3−4
@@ -1,10 +1,9 @@
1−
21Elm.Native.Utils = {};
32Elm.Native.Utils.make = function(elm) {
4− 'use strict';
53
64 elm.Native = elm.Native || {};
7− if (elm.Native.Utils) return elm.Native.Utils;
5+ elm.Native.Utils = elm.Native.Utils || {};
6+ if (elm.Native.Utils.values) return elm.Native.Utils.values;
87
98 function eq(x,y) {
109 if (x === y) return true;
@@ -144,7 +143,7 @@ Elm.Native.Utils.make = function(elm) {
144143 elm.addListener(elm.inputs, elm.node, 'mouseover', adjustOffset);
145144 }
146145
147− return elm.Native.Utils = {
146+ return elm.Native.Utils.values = {
148147 eq:eq,
149148 cmp:cmp,
150149 compare:F2(compare),
runtime/Init.js+2−2
@@ -164,7 +164,7 @@ function initGraphics(elm, Module) {
164164 function domUpdate(newScene, currentScene) {
165165 ElmRuntime.draw(function(_) {
166166 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();
168168 });
169169 return newScene;
170170 }
@@ -172,7 +172,7 @@ function initGraphics(elm, Module) {
172172
173173 // must check for resize after 'renderer' is created so
174174 // that changes show up.
175− if (elm.Native.Window) elm.Native.Window.resizeIfNeeded();
175+ if (elm.Native.Window) elm.Native.Window.values.resizeIfNeeded();
176176
177177 return renderer;
178178}