on master help sign in
Make builtins match new JS format
bed2393Evan Czaplicki
src/Generate/JavaScript/BuiltIn.hs+17−4
@@ -1,4 +1,12 @@
1−module Generate.JavaScript.BuiltIn where
1+module Generate.JavaScript.BuiltIn
2+ ( character, string
3+ , list, range
4+ , recordUpdate
5+ , eq, cmp
6+ , cmd, sub
7+ , crash
8+ )
9+ where
2
10
3import Control.Arrow (first)
11import Control.Arrow (first)
4import qualified Language.ECMAScript3.Syntax as JS
12import qualified Language.ECMAScript3.Syntax as JS
@@ -11,7 +19,12 @@ import qualified Reporting.Region as R
11
19
12utils :: String -> [JS.Expression ()] -> JS.Expression ()
20utils :: String -> [JS.Expression ()] -> JS.Expression ()
13utils func args =
21utils func args =
22+ obj ["_elm_lang$core$Native_Utils", func] `call` args
23+
24+
25+nativeList :: String -> [JS.Expression ()] -> JS.Expression ()
26+nativeList func args =
14− obj ["_U", func] `call` args
27+ obj ["_elm_lang$core$Native_List", func] `call` args
15
28
16
29
17
30
@@ -34,12 +47,12 @@ string str =
34
47
35list :: [JS.Expression ()] -> JS.Expression ()
48list :: [JS.Expression ()] -> JS.Expression ()
36list elements =
49list elements =
37− utils "list" [ JS.ArrayLit () elements ]
50+ nativeList "fromArray" [ JS.ArrayLit () elements ]
38
51
39
52
40range :: JS.Expression () -> JS.Expression () -> JS.Expression ()
53range :: JS.Expression () -> JS.Expression () -> JS.Expression ()
41range low high =
54range low high =
42− utils "range" [ low, high ]
55+ nativeList "range" [ low, high ]
43
56
44
57
45
58