on master help sign in
Change such that `import` imports all by default. Too annoying the other way. Write a linter for that.
96ef984evancz
compiler/Gen/CompileToJS.hs+5−6
@@ -95,14 +95,13 @@ jsImport (modul, how) =
95 case how of
95 case how of
96 As name -> assign name ("Elm." ++ modul ++ parens "elm")
96 As name -> assign name ("Elm." ++ modul ++ parens "elm")
97 Importing vs ->
97 Importing vs ->
98− "\nvar _$ = Elm." ++ modul ++ parens "elm" ++ ";" ++
98+ "\nvar $ = Elm." ++ modul ++ parens "elm" ++ ";" ++
99− if null vs then "\nfor (var k in _$) {eval('var '+k+'=_$[\"'+k+'\"]')}"
99+ if null vs then "\nfor (var k in $) {eval('var '+k+'=$[\"'+k+'\"]')}"
100− else concatMap def vs
100+ else "\nvar " ++ intercalate ", " (map def vs) ++ ";"
101 where
101 where
102− imprt asgn v = asgn v ("_$." ++ v)
102+ imprt v = assign' v ("$." ++ v)
103 def (o:p) =
103 def (o:p) =
104− if isOp o then imprt globalAssign ("$op['" ++ o:p ++ "']")
104+ imprt (if isOp o then "$op['" ++ o:p ++ "']" else deprime (o:p))
105− else imprt assign (deprime (o:p))
106
105
107
106
108stmtsToJS :: [Statement] -> String
107stmtsToJS :: [Statement] -> String
compiler/Parse/Modules.hs+1−1
@@ -31,7 +31,7 @@ import' = do
31 reserved "import"
31 reserved "import"
32 whitespace
32 whitespace
33 name <- intercalate "." <$> dotSep1 capVar
33 name <- intercalate "." <$> dotSep1 capVar
34− method <- option (As name) $ try (whitespace >> (as' <|> importing'))
34+ method <- option (Importing []) $ try (whitespace >> (as' <|> importing'))
35 return (name, method)
35 return (name, method)
36
36
37
37