Skip to content

Commit f5ef898

Browse files
committed
Some clean up in Stack2JS
1 parent 272b273 commit f5ef898

File tree

1 file changed

+14
-26
lines changed

1 file changed

+14
-26
lines changed

compiler/src/Stack2JS.hs

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -60,45 +60,33 @@ import DCLabels (dcLabelExpToDCLabel)
6060
data LibAccess = LibAccess Basics.LibName Basics.VarName
6161
deriving (Eq, Show,Generic)
6262

63-
64-
data JSOutput = JSOutput { libs :: [LibAccess]
65-
, fname:: Maybe String
66-
, code :: String
67-
, atoms :: [Basics.AtomName]
68-
} deriving (Show, Generic)
69-
70-
instance Aeson.ToJSON Basics.LibName
63+
instance Aeson.ToJSON Basics.LibName
7164
instance Aeson.ToJSON LibAccess
72-
instance Aeson.ToJSON JSOutput
73-
74-
ppLibAccess :: LibAccess -> PP.Doc
75-
ppLibAccess (LibAccess (Basics.LibName libname) varname) = PP.braces $
76-
PP.text "lib:" <+> (PP.doubleQuotes. PP.text) libname <+> PP.text "," <+>
77-
PP.text "decl:" <+> (PP.doubleQuotes. PP.text) varname
78-
79-
80-
ppLibs :: [LibAccess] -> PP.Doc
81-
ppLibs libs = PP.brackets $
82-
vcat $ PP.punctuate (text ",")
83-
$ map ppLibAccess (nub libs)
8465

8566
jsLoadLibs = vcat $ map text [
8667
"this.libSet = new Set ()",
8768
"this.libs = []",
8869
"this.addLib = function (lib, decl) { if (!this.libSet.has (lib +'.'+decl)) { this.libSet.add (lib +'.'+decl); this.libs.push ({lib:lib, decl:decl})} }",
8970
"this.loadlibs = function (cb) { rt.linkLibs (this.libs, this, cb) }" ]
90-
91-
92-
addOneLib (LibAccess (Basics.LibName libname) varname) =
93-
let args = (PP.doubleQuotes.PP.text) libname <+> text "," <+> (PP.doubleQuotes. PP.text) varname
94-
in text "this.addLib " <+> PP.parens args
9571

9672
addLibs xs = vcat $ nub (map addOneLib xs)
73+
where addOneLib (LibAccess (Basics.LibName libname) varname) =
74+
let args = (PP.doubleQuotes.PP.text) libname <+> text "," <+> (PP.doubleQuotes. PP.text) varname
75+
in text "this.addLib " <+> PP.parens args
76+
77+
78+
data JSOutput = JSOutput { libs :: [LibAccess]
79+
, fname:: Maybe String
80+
, code :: String
81+
, atoms :: [Basics.AtomName]
82+
} deriving (Show, Generic)
83+
84+
instance Aeson.ToJSON JSOutput
9785

9886

9987
data TheState = TheState { freshCounter :: Integer
10088
, frameSize :: Int
101-
, sparseSlot :: Int
89+
, sparseSlot :: Int
10290
, consts :: Raw.Consts
10391
, stHFN :: IR.HFN }
10492

0 commit comments

Comments
 (0)