@@ -1,5 +1,6 @@
11module Generate.JavaScript.BuiltIn where
22
3+import Control.Arrow (first)
34import qualified Language.ECMAScript3.Syntax as JS
45
56import Generate.JavaScript.Helpers
@@ -8,7 +9,7 @@ import qualified Reporting.Region as R
89
910utils :: String -> [JS.Expression ()] -> JS.Expression ()
1011utils func args =
11− obj ["_utils", func] `call` args
12+ obj ["_U", func] `call` args
1213
1314
1415-- LITERALS
@@ -39,12 +40,10 @@ range low high =
3940
4041recordUpdate :: JS.Expression () -> [(String, JS.Expression ())] -> JS.Expression ()
4142recordUpdate record fields =
42− utils "update" [ record, JS.ArrayLit () (map toKeyValue fields) ]
43−
44−
45−toKeyValue :: (String, JS.Expression ()) -> JS.Expression ()
46−toKeyValue (key, value) =
47− JS.ArrayLit () [ JS.StringLit () key, value ]
43+ utils "update"
44+ [ record
45+ , JS.ObjectLit () (map (first prop) fields)
46+ ]
4847
4948
5049-- COMPARISIONS
@@ -54,9 +53,9 @@ eq left right =
5453 utils "eq" [ left, right ]
5554
5655
57−compare :: JS.Expression () -> JS.Expression () -> JS.Expression ()
58−compare left right =
59− utils "compare" [ left, right ]
56+cmp :: JS.Expression () -> JS.Expression () -> JS.Expression ()
57+cmp left right =
58+ utils "cmp" [ left, right ]
6059
6160
6261-- CRASH