on master help sign in
Fix ordering issue with kernel code and debugger
commit9488ba6f3acb58ff99bb2bc9d255364c1ee90db1 authorEvan Czaplicki <evancz@users.noreply.github.com> dateWed 9 May 2018, 11:37 (8 years ago) parent19d5a76
1 file changed+13−13
compiler/src/Generate/JavaScript.hs+13−13
compiler/src/Generate/JavaScript.hs+13−13
@@ -104,7 +104,7 @@ print ansi localizer home name (Can.Forall _ tipe) =
104104
105105data State =
106106 State
107− { _kernel :: B.Builder
107+ { _revKernels :: [B.Builder]
108108 , _revBuilders :: [B.Builder]
109109 , _seenGlobals :: Set.Set Opt.Global
110110 }
@@ -116,13 +116,13 @@ emptyState =
116116
117117
118118stateToBuilder :: State -> B.Builder
119−stateToBuilder (State kernel revBuilders _) =
120− case revBuilders of
121− [] ->
122− kernel
119+stateToBuilder (State revKernels revBuilders _) =
120+ prependBuilders revKernels (prependBuilders revBuilders mempty)
121+
123122
124− b:bs ->
125− kernel <> List.foldl' (\code decl -> decl <> code) b bs
123+prependBuilders :: [B.Builder] -> B.Builder -> B.Builder
124+prependBuilders revBuilders monolith =
125+ List.foldl' (\m b -> b <> m) monolith revBuilders
126126
127127
128128
@@ -133,12 +133,12 @@ type Graph = Map.Map Opt.Global Opt.Node
133133
134134
135135addGlobal :: Mode.Mode -> Graph -> State -> Opt.Global -> State
136−addGlobal mode graph state@(State kernel builders seen) global =
136+addGlobal mode graph state@(State revKernels builders seen) global =
137137 if Set.member global seen then
138138 state
139139 else
140140 addGlobalHelp mode graph global $
141− State kernel builders (Set.insert global seen)
141+ State revKernels builders (Set.insert global seen)
142142
143143
144144addGlobalHelp :: Mode.Mode -> Graph -> Opt.Global -> State -> State
@@ -213,13 +213,13 @@ addStmt state stmt =
213213
214214
215215addBuilder :: State -> B.Builder -> State
216−addBuilder (State kernel revBuilders seen) builder =
217− State kernel (builder:revBuilders) seen
216+addBuilder (State revKernels revBuilders seen) builder =
217+ State revKernels (builder:revBuilders) seen
218218
219219
220220addKernel :: State -> B.Builder -> State
221−addKernel (State kernel revBuilders seen) moreKernel =
222− State (moreKernel <> kernel) revBuilders seen
221+addKernel (State revKernels revBuilders seen) kernel =
222+ State (kernel:revKernels) revBuilders seen
223223
224224
225225var :: Opt.Global -> Expr.Code -> JS.Stmt