on master help sign in
Remove all uses of JavaScript module.

Drop uses of JS.fromString and JS.toString. Replace JS.toList with List.fromArray and JS.fromList with List.toArray.

commit67c5aa9615c1666ed46704fbf2edc158bbe55b65 authorEvan Czaplicki <info@elm-lang.org> dateTue 25 Mar 2014, 16:59 (13 years ago) parent09c91a9
8 files changed+49−55
compiler/Generate/JavaScript.hs+1−2 libraries/Native/Date.js+1−2 libraries/Native/Json.js+12−13 libraries/Native/Regex.js+14−14 libraries/Native/Signal/Http.js+6−7 libraries/Native/Signal/Touch.js+3−3 libraries/Native/Signal/WebSocket.js+3−5 libraries/Native/String.js+9−9
compiler/Generate/JavaScript.hs+1−2
@@ -39,7 +39,6 @@ internalImports name =
3939 , include "_U" "_N.Utils"
4040 , include "_L" "_N.List"
4141 , include "_E" "_N.Error"
42− , include "_J" "_N.JavaScript"
4342 , varDecl "$moduleName" (string name)
4443 ]
4544
@@ -163,7 +162,7 @@ expression (A region expr) =
163162
164163 ExplicitList es ->
165164 do es' <- mapM expression es
166− return $ obj "_J.toList" <| ArrayLit () es'
165+ return $ obj "_L.fromArray" <| ArrayLit () es'
167166
168167 Data name es ->
169168 do es' <- mapM expression es
libraries/Native/Date.js+1−2
@@ -4,12 +4,11 @@ Elm.Native.Date.make = function(elm) {
44 elm.Native.Date = elm.Native.Date || {};
55 if (elm.Native.Date.values) return elm.Native.Date.values;
66
7− var JS = Elm.JavaScript.make(elm);
87 var Maybe = Elm.Maybe.make(elm);
98
109 function dateNow() { return new window.Date; }
1110 function readDate(str) {
12− var d = new window.Date(JS.fromString(str));
11+ var d = new window.Date(str);
1312 if (isNaN(d.getTime())) return Maybe.Nothing;
1413 return Maybe.Just(d);
1514 }
libraries/Native/Json.js+12−13
@@ -8,25 +8,24 @@ Elm.Native.Json.make = function(elm) {
88 var Maybe = Elm.Maybe.make(elm);
99 var Dict = Elm.Dict.make(elm);
1010 var List = Elm.List.make(elm);
11− var JS = Elm.JavaScript.make(elm);
1211 var Utils = Elm.Native.Utils.make(elm);
1312
1413 function toJS(v) {
1514 switch (v.ctor) {
1615 case 'Null' : return null;
17− case 'String' : return JS.fromString(v._0);
16+ case 'String' : return v._0;
1817 case 'Number' : return v._0;
1918 case 'Boolean': return v._0;
2019 case 'Object' :
2120 var obj = {};
22− var array = JS.fromList(Dict.toList(v._0));
21+ var array = List.toArray(Dict.toList(v._0));
2322 for (var i = array.length; i--; ) {
2423 var entry = array[i];
25− obj[JS.fromString(entry._0)] = toJS(entry._1);
24+ obj[entry._0] = toJS(entry._1);
2625 }
2726 return obj;
2827 case 'Array' :
29− var array = JS.fromList(v._0);
28+ var array = List.toArray(v._0);
3029 for (var i = array.length; i--; ) {
3130 array[i] = toJS(array[i]);
3231 }
@@ -35,29 +34,29 @@ Elm.Native.Json.make = function(elm) {
3534 }
3635
3736 function toString(sep, value) {
38− return JSON.stringify(toJS(value), null, JS.fromString(sep));
37+ return JSON.stringify(toJS(value), null, sep);
3938 }
4039
4140 function fromJS(v) {
4241 switch (typeof v) {
43− case 'string' : return { ctor:"String" , _0: JS.toString(v) };
44− case 'number' : return { ctor:"Number" , _0: JS.toFloat(v) };
45− case 'boolean': return { ctor:"Boolean", _0: JS.toBool(v) };
42+ case 'string' : return { ctor:"String" , _0: v };
43+ case 'number' : return { ctor:"Number" , _0: v };
44+ case 'boolean': return { ctor:"Boolean", _0: v };
4645 case 'object' :
4746 if (v === null) return { ctor:"Null" };
4847 if (v instanceof Array) {
4948 for (var i = v.length; i--; ) { v[i] = fromJS(v[i]); }
50− return { ctor:"Array", _0: JS.toList(v) };
49+ return { ctor:"Array", _0: List.fromArray(v) };
5150 }
5251 var array = [];
53− for (var k in v) array.push(Utils.Tuple2(JS.toString(k), fromJS(v[k])));
54− return { ctor:"Object", _0: Dict.fromList(JS.toList(array)) };
52+ for (var k in v) array.push(Utils.Tuple2(k, fromJS(v[k])));
53+ return { ctor:"Object", _0: Dict.fromList(List.fromArray(array)) };
5554 }
5655 }
5756
5857 function fromString(str) {
5958 try {
60− return Maybe.Just(fromJS(JSON.parse(JS.fromString(str))));
59+ return Maybe.Just(fromJS(JSON.parse(str)));
6160 } catch (e) {
6261 return Maybe.Nothing;
6362 }
libraries/Native/Regex.js+14−14
@@ -6,8 +6,8 @@ Elm.Native.Regex.make = function(elm) {
66 if ('values' in Elm.Native.Regex)
77 return elm.Native.Regex.values = Elm.Native.Regex.values;
88
9+ var List = Elm.List.make(elm);
910 var Maybe = Elm.Maybe.make(elm);
10− var JS = Elm.JavaScript.make(elm);
1111
1212 function escape(str) {
1313 return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
@@ -20,14 +20,14 @@ Elm.Native.Regex.make = function(elm) {
2020 }
2121
2222 function contains(re, string) {
23− return JS.fromString(string).match(re) !== null;
23+ return string.match(re) !== null;
2424 }
2525
2626 function find(n, re, str) {
2727 n = n.ctor === "All" ? Infinity : n._0;
2828 var out = [];
2929 var number = 0;
30− var string = JS.fromString(str);
30+ var string = str;
3131 var result;
3232 while (number++ < n && (result = re.exec(string))) {
3333 var i = result.length - 1;
@@ -36,17 +36,17 @@ Elm.Native.Regex.make = function(elm) {
3636 var submatch = result[i];
3737 subs[--i] = submatch === undefined
3838 ? Maybe.Nothing
39− : Maybe.Just(JS.toString(submatch));
39+ : Maybe.Just(submatch);
4040 }
4141 out.push({
4242 _:{},
43− match: JS.toString(result[0]),
44− submatches: JS.toList(subs),
43+ match: result[0],
44+ submatches: List.fromArray(subs),
4545 index: result.index,
4646 number: number,
4747 });
4848 }
49− return JS.toList(out);
49+ return List.fromArray(out);
5050 }
5151
5252 function replace(n, re, replacer, string) {
@@ -60,24 +60,24 @@ Elm.Native.Regex.make = function(elm) {
6060 var submatch = arguments[i];
6161 submatches[--i] = submatch === undefined
6262 ? Maybe.Nothing
63− : Maybe.Just(JS.toString(submatch));
63+ : Maybe.Just(submatch);
6464 }
65− return JS.fromString(replacer({
65+ return replacer({
6666 _:{},
6767 match:match,
68− submatches:JS.toList(submatches),
68+ submatches:List.fromArray(submatches),
6969 index:arguments[i-1],
7070 number:count
71− }));
71+ });
7272 }
7373 return string.replace(re, jsReplacer);
7474 }
7575
7676 function split(n, re, str) {
7777 if (n === Infinity) {
78− return JS.toList(JS.fromString(string).split(re));
78+ return List.fromArray(string.split(re));
7979 }
80− var string = JS.fromString(str);
80+ var string = str;
8181 var result;
8282 var out = [];
8383 var start = re.lastIndex;
@@ -87,7 +87,7 @@ Elm.Native.Regex.make = function(elm) {
8787 start = re.lastIndex;
8888 }
8989 out.push(string.slice(start));
90− return JS.toList(out);
90+ return List.fromArray(out);
9191 }
9292
9393 return Elm.Native.Regex.values = {
libraries/Native/Signal/Http.js+6−7
@@ -5,7 +5,6 @@ Elm.Native.Http.make = function(elm) {
55 elm.Native.Http = elm.Native.Http || {};
66 if (elm.Native.Http.values) return elm.Native.Http.values;
77
8− var JS = Elm.JavaScript.make(elm);
98 var List = Elm.List.make(elm);
109 var Signal = Elm.Signal.make(elm);
1110
@@ -38,17 +37,17 @@ Elm.Native.Http.make = function(elm) {
3837 request.onreadystatechange = function(e) {
3938 if (request.readyState === 4) {
4039 response.value = (request.status >= 200 && request.status < 300 ?
41− { ctor:'Success', _0:JS.toString(request.responseText) } :
42− { ctor:'Failure', _0:request.status, _1:JS.toString(request.statusText) });
40+ { ctor:'Success', _0:request.responseText } :
41+ { ctor:'Failure', _0:request.status, _1:request.statusText });
4342 setTimeout(function() { updateQueue(queue,responses); }, 0);
4443 }
4544 };
46− request.open(JS.fromString(req.verb), JS.fromString(req.url), true);
45+ request.open(req.verb, req.url, true);
4746 function setHeader(pair) {
48− request.setRequestHeader( JS.fromString(pair._0), JS.fromString(pair._1) );
47+ request.setRequestHeader( pair._0, pair._1 );
4948 }
50− List.map(setHeader)(req.headers);
51− request.send(JS.fromString(req.body));
49+ A2( List.map, setHeader, req.headers );
50+ request.send(req.body);
5251 }
5352
5453 function send(requests) {
libraries/Native/Signal/Touch.js+3−3
@@ -6,7 +6,7 @@ Elm.Native.Touch.make = function(elm) {
66 if (elm.Native.Touch.values) return elm.Native.Touch.values;
77
88 var Signal = Elm.Signal.make(elm);
9− var JS = Elm.JavaScript.make(elm);
9+ var List = Elm.List.make(elm);
1010 var Utils = Elm.Native.Utils.make(elm);
1111
1212 function Dict() {
@@ -136,7 +136,7 @@ Elm.Native.Touch.make = function(elm) {
136136 return sig;
137137 }
138138
139− var touches = dependency(JS.toList);
139+ var touches = dependency(List.fromArray);
140140
141141 var taps = function() {
142142 var sig = dependency(function(_) { return tap; });
@@ -149,4 +149,4 @@ Elm.Native.Touch.make = function(elm) {
149149
150150 return elm.Native.Touch.values = { touches: touches, taps: taps };
151151
152−};
152+};
libraries/Native/Signal/WebSocket.js+3−5
@@ -6,12 +6,11 @@ Elm.Native.WebSocket.make = function(elm) {
66 if (elm.Native.WebSocket.values) return elm.Native.WebSocket.values;
77
88 var Signal = Elm.Signal.make(elm);
9− var JS = Elm.JavaScript.make(elm);
109 var List = Elm.Native.List.make(elm);
1110
1211 function open(url, outgoing) {
1312 var incoming = Signal.constant(List.Nil);
14− var ws = new WebSocket(JS.fromString(url));
13+ var ws = new WebSocket(url);
1514
1615 var pending = [];
1716 var ready = false;
@@ -22,12 +21,11 @@ Elm.Native.WebSocket.make = function(elm) {
2221 ready = true;
2322 };
2423 ws.onmessage = function(event) {
25− elm.notify(incoming.id, JS.toString(event.data));
24+ elm.notify(incoming.id, event.data);
2625 };
2726
2827 function send(msg) {
29− var s = JS.fromString(msg);
30− ready ? ws.send(s) : pending.push(s);
28+ ready ? ws.send(msg) : pending.push(msg);
3129 }
3230
3331 function take1(x,y) { return x }
libraries/Native/String.js+9−9
@@ -8,7 +8,7 @@ Elm.Native.String.make = function(elm) {
88
99 var Char = Elm.Char.make(elm);
1010 var Maybe = Elm.Maybe.make(elm);
11− var JS = Elm.JavaScript.make(elm);
11+ var List = Elm.List.make(elm);
1212 var Utils = Elm.Native.Utils.make(elm);
1313
1414 function isEmpty(str) {
@@ -26,7 +26,7 @@ Elm.Native.String.make = function(elm) {
2626 return a + b;
2727 }
2828 function concat(strs) {
29− return JS.fromList(strs).join('');
29+ return List.toArray(strs).join('');
3030 }
3131 function length(str) {
3232 return str.length;
@@ -59,10 +59,10 @@ Elm.Native.String.make = function(elm) {
5959 }
6060
6161 function split(sep, str) {
62− return JS.toList(str.split(sep));
62+ return List.fromArray(str.split(sep));
6363 }
6464 function join(sep, strs) {
65− return JS.fromList(strs).join(sep);
65+ return List.toArray(strs).join(sep);
6666 }
6767 function repeat(n, str) {
6868 var result = '';
@@ -111,10 +111,10 @@ Elm.Native.String.make = function(elm) {
111111 }
112112
113113 function words(str) {
114− return JS.toList(str.split(/\s+/g));
114+ return List.fromArray(str.split(/\s+/g));
115115 }
116116 function lines(str) {
117− return JS.toList(str.split(/\r\n|\r|\n/g));
117+ return List.fromArray(str.split(/\r\n|\r|\n/g));
118118 }
119119
120120 function toUpper(str) {
@@ -155,7 +155,7 @@ Elm.Native.String.make = function(elm) {
155155 is.push(i);
156156 i = i + subLen;
157157 }
158− return JS.toList(is);
158+ return List.fromArray(is);
159159 }
160160
161161 function toInt(s) {
@@ -193,10 +193,10 @@ Elm.Native.String.make = function(elm) {
193193 }
194194
195195 function toList(str) {
196− return JS.toList(str.split('').map(Utils.chr));
196+ return List.fromArray(str.split('').map(Utils.chr));
197197 }
198198 function fromList(chars) {
199− return JS.fromList(chars).join('');
199+ return List.toArray(chars).join('');
200200 }
201201
202202 return Elm.Native.String.values = {