on master help sign in
Go back to old fashioned variable names: $Basics.fst instead of elm_lang$core$Basics$fst
commit86a4c1b47b0df17bf51c60517e4ce34d5092c883 authorEvan Czaplicki <info@elm-lang.org> dateMon 28 Sep 2015, 16:48 (11 years ago) parent42b7187
2 files changed+27−39
src/Generate/JavaScript.hs+2−2 src/Generate/JavaScript/Variable.hs+25−37
src/Generate/JavaScript.hs+2−2
@@ -30,7 +30,7 @@ generate module_ =
3030 Module.program (Module.body module_)
3131
3232 setup =
33− Var.define (Just (Module.name module_)) "_op" (ObjectLit () [])
33+ Var.define "_op" (ObjectLit () [])
3434
3535 stmts =
3636 State.evalState (mapM generateDef definitions) 0
@@ -104,7 +104,7 @@ generateDef def =
104104 Opt.Def (Opt.Facts home _) name body ->
105105 (,,) home name <$> generateJsExpr body
106106
107− return (Var.define home name jsBody)
107+ return (Var.define name jsBody)
108108
109109
110110-- EXPRESSIONS
src/Generate/JavaScript/Variable.hs+25−37
@@ -23,29 +23,20 @@ fresh =
2323
2424-- DEF NAMES
2525
26−define :: Maybe ModuleName.Canonical -> String -> JS.Expression () -> JS.Statement ()
27−define maybeHome name body =
28− let
29− varDecl safeName =
30− JS.VarDeclStmt () [ JS.VarDecl () (JS.Id () safeName) (Just body) ]
31− in
32− case maybeHome of
33− Nothing ->
34− varDecl (safe name)
35−
36− Just home ->
37− if Help.isOp name then
38− let
39− root =
40− JS.VarRef () (JS.Id () (canonicalPrefix home "_op"))
41−
42− lvalue =
43− JS.LBracket () root (JS.StringLit () name)
44− in
45− JS.ExprStmt () (JS.AssignExpr () JS.OpAssign lvalue body)
46−
47− else
48− varDecl (canonicalPrefix home (safe name))
26+define :: String -> JS.Expression () -> JS.Statement ()
27+define name body =
28+ if Help.isOp name then
29+ let
30+ root =
31+ JS.VarRef () (JS.Id () "_op")
32+
33+ lvalue =
34+ JS.LBracket () root (JS.StringLit () name)
35+ in
36+ JS.ExprStmt () (JS.AssignExpr () JS.OpAssign lvalue body)
37+
38+ else
39+ JS.VarDeclStmt () [ JS.VarDecl () (JS.Id () (safe name)) (Just body) ]
4940
5041
5142-- INSTANTIATE VARIABLES
@@ -53,34 +44,31 @@ define maybeHome name body =
5344canonical :: Var.Canonical -> JS.Expression ()
5445canonical (Var.Canonical home name) =
5546 if Help.isOp name then
56− JS.BracketRef () (JS.ref (addRoot home "_op")) (JS.string name)
47+ JS.BracketRef () (addRoot home "_op") (JS.string name)
5748
5849 else
59− JS.ref (addRoot home (safe name))
50+ addRoot home (safe name)
6051
6152
62−addRoot :: Var.Home -> String -> String
53+addRoot :: Var.Home -> String -> JS.Expression ()
6354addRoot home name =
6455 case home of
6556 Var.Local ->
66− name
57+ JS.ref name
6758
68− Var.TopLevel moduleName ->
69− canonicalPrefix moduleName name
59+ Var.TopLevel _moduleName ->
60+ JS.ref name
7061
7162 Var.BuiltIn ->
72− name
63+ JS.ref name
7364
7465 Var.Module moduleName ->
75− canonicalPrefix moduleName name
66+ JS.DotRef () (JS.ref (canonicalModuleName moduleName)) (JS.Id () name)
7667
7768
78−canonicalPrefix :: ModuleName.Canonical -> String -> String
79−canonicalPrefix (ModuleName.Canonical (Pkg.Name user project) moduleName) name =
80− map (swap '-' '_') user
81− ++ '$' : map (swap '-' '_') project
82− ++ '$' : List.intercalate "$" moduleName
83− ++ '$' : safe name
69+canonicalModuleName :: ModuleName.Canonical -> String
70+canonicalModuleName (ModuleName.Canonical (Pkg.Name _user _project) moduleName) =
71+ '$' : List.intercalate "$" moduleName
8472
8573
8674swap :: Char -> Char -> Char -> Char