on master help sign in
Skip Elm.Kernel.Debugger unless in --debug mode
ca94170Evan Czaplicki
compiler/src/Elm/Name.hs+6−1
@@ -27,7 +27,7 @@ module Elm.Name
27 , int, float, bool, char, string
27 , int, float, bool, char, string
28 , maybe, result, list, array, tuple, jsArray
28 , maybe, result, list, array, tuple, jsArray
29 , task, router, cmd, sub, platform, browser, virtualDom
29 , task, router, cmd, sub, platform, browser, virtualDom
30− , shader, debug, bitwise, basics
30+ , shader, debug, debugger, bitwise, basics
31 , utils, negate, value
31 , utils, negate, value
32 , node, program, main, dollar, identity
32 , node, program, main, dollar, identity
33 )
33 )
@@ -271,6 +271,11 @@ debug :: Name
271debug = "Debug"
271debug = "Debug"
272
272
273
273
274+{-# NOINLINE debugger #-}
275+debugger :: Name
276+debugger = "Debugger"
277+
278+
274{-# NOINLINE bitwise #-}
279{-# NOINLINE bitwise #-}
275bitwise :: Name
280bitwise :: Name
276bitwise = "Bitwise"
281bitwise = "Bitwise"
compiler/src/Generate/JavaScript.hs+13−5
@@ -166,12 +166,15 @@ addGlobalHelp mode graph global state =
166 generateManager mode graph global effectsType state
166 generateManager mode graph global effectsType state
167
167
168 Opt.Kernel (Opt.KContent clientChunks clientDeps) maybeServer ->
168 Opt.Kernel (Opt.KContent clientChunks clientDeps) maybeServer ->
169+ if isDebugger global && not (Mode.isDebug mode) then
170+ state
171+ else
169− case maybeServer of
172+ case maybeServer of
170− Just (Opt.KContent serverChunks serverDeps) | Mode.isServer mode ->
173+ Just (Opt.KContent serverChunks serverDeps) | Mode.isServer mode ->
171− addBuilder (addDeps serverDeps state) (generateKernel mode serverChunks)
174+ addBuilder (addDeps serverDeps state) (generateKernel mode serverChunks)
172
175
173− _ ->
176+ _ ->
174− addBuilder (addDeps clientDeps state) (generateKernel mode clientChunks)
177+ addBuilder (addDeps clientDeps state) (generateKernel mode clientChunks)
175
178
176 Opt.Enum name index ->
179 Opt.Enum name index ->
177 addStmt state (
180 addStmt state (
@@ -209,6 +212,11 @@ var (Opt.Global home name) code =
209 JS.Var [ (Name.fromGlobal home name, Just (Expr.codeToExpr code)) ]
212 JS.Var [ (Name.fromGlobal home name, Just (Expr.codeToExpr code)) ]
210
213
211
214
215+isDebugger :: Opt.Global -> Bool
216+isDebugger (Opt.Global (ModuleName.Canonical _ home) _) =
217+ home == N.debugger
218+
219+
212
220
213-- GENERATE CYCLES
221-- GENERATE CYCLES
214
222
compiler/src/Generate/JavaScript/Mode.hs+12
@@ -4,6 +4,7 @@ module Generate.JavaScript.Mode
4 , debug
4 , debug
5 , dev
5 , dev
6 , prod
6 , prod
7+ , isDebug
7 , isServer
8 , isServer
8 )
9 )
9 where
10 where
@@ -11,6 +12,7 @@ module Generate.JavaScript.Mode
11
12
12import qualified Data.List as List
13import qualified Data.List as List
13import qualified Data.Map as Map
14import qualified Data.Map as Map
15+import qualified Data.Maybe as Maybe
14
16
15import qualified AST.Optimized as Opt
17import qualified AST.Optimized as Opt
16import qualified Elm.Interface as I
18import qualified Elm.Interface as I
@@ -46,6 +48,16 @@ prod target (Opt.Graph _ _ fieldCounts) =
46
48
47
49
48
50
51+-- IS DEBUG?
52+
53+
54+isDebug :: Mode -> Bool
55+isDebug mode =
56+ case mode of
57+ Dev _ mi -> Maybe.isJust mi
58+ Prod _ _ -> False
59+
60+
49-- IS SERVER?
61-- IS SERVER?
50
62
51
63