@@ -29,8 +29,8 @@ import qualified Elm.Version as V
2929import qualified Elm.ModuleName as ModuleName
3030import qualified Elm.Package as Pkg
3131import qualified Generate.JavaScript.Builder as JS
32−import qualified Generate.JavaScript.Mode as Mode
3332import qualified Generate.JavaScript.Name as JsName
33+import qualified Generate.Mode as Mode
3434import qualified Json.Encode as Encode
3535import qualified Optimize.DecisionTree as DT
3636import qualified Reporting.Annotation as A
@@ -54,10 +54,10 @@ generate mode expression =
5454 Opt.Chr char ->
5555 JsExpr $
5656 case mode of
57− Mode.Dev _ _ ->
57+ Mode.Dev _ ->
5858 JS.Call toChar [ JS.String (Utf8.toBuilder char) ]
5959
60− Mode.Prod _ _ ->
60+ Mode.Prod _ ->
6161 JS.String (Utf8.toBuilder char)
6262
6363 Opt.Str string ->
@@ -77,17 +77,17 @@ generate mode expression =
7777
7878 Opt.VarEnum (Opt.Global home name) index ->
7979 case mode of
80− Mode.Dev _ _ ->
80+ Mode.Dev _ ->
8181 JsExpr $ JS.Ref (JsName.fromGlobal home name)
8282
83− Mode.Prod _ _ ->
83+ Mode.Prod _ ->
8484 JsExpr $ JS.Int (Index.toMachine index)
8585
8686 Opt.VarBox (Opt.Global home name) ->
8787 JsExpr $ JS.Ref $
8888 case mode of
89− Mode.Dev _ _ -> JsName.fromGlobal home name
90− Mode.Prod _ _ -> JsName.fromGlobal ModuleName.basics Name.identity
89+ Mode.Dev _ -> JsName.fromGlobal home name
90+ Mode.Prod _ -> JsName.fromGlobal ModuleName.basics Name.identity
9191
9292 Opt.VarCycle home name ->
9393 JsExpr $ JS.Call (JS.Ref (JsName.fromCycle home name)) []
@@ -157,10 +157,10 @@ generate mode expression =
157157
158158 Opt.Unit ->
159159 case mode of
160− Mode.Dev _ _ ->
160+ Mode.Dev _ ->
161161 JsExpr $ JS.Ref (JsName.fromKernel Name.utils "Tuple0")
162162
163− Mode.Prod _ _ ->
163+ Mode.Prod _ ->
164164 JsExpr $ JS.Int 0
165165
166166 Opt.Tuple a b maybeC ->
@@ -269,8 +269,8 @@ generateCtor mode (Opt.Global home name) index arity =
269269
270270 ctorTag =
271271 case mode of
272− Mode.Dev _ _ -> JS.String (Name.toBuilder name)
273− Mode.Prod _ _ -> JS.Int (ctorToInt home name index)
272+ Mode.Dev _ -> JS.String (Name.toBuilder name)
273+ Mode.Prod _ -> JS.Int (ctorToInt home name index)
274274 in
275275 generateFunction argNames $ JsExpr $ JS.Object $
276276 (JsName.dollar, ctorTag) : map (\n -> (n, JS.Ref n)) argNames
@@ -300,10 +300,10 @@ generateRecord mode fields =
300300generateField :: Mode.Mode -> Name.Name -> JsName.Name
301301generateField mode name =
302302 case mode of
303− Mode.Dev _ _ ->
303+ Mode.Dev _ ->
304304 JsName.fromLocal name
305305
306− Mode.Prod _ fields ->
306+ Mode.Prod fields ->
307307 fields ! name
308308
309309
@@ -390,10 +390,10 @@ generateCall mode func args =
390390
391391 Opt.VarBox _ ->
392392 case mode of
393− Mode.Dev _ _ ->
393+ Mode.Dev _ ->
394394 generateCallHelp mode func args
395395
396− Mode.Prod _ _ ->
396+ Mode.Prod _ ->
397397 case args of
398398 [arg] ->
399399 generateJsExpr mode arg
@@ -747,10 +747,10 @@ generatePath mode path =
747747
748748 Opt.Unbox subPath ->
749749 case mode of
750− Mode.Dev _ _ ->
750+ Mode.Dev _ ->
751751 JS.Access (generatePath mode subPath) (JsName.fromIndex Index.first)
752752
753− Mode.Prod _ _ ->
753+ Mode.Prod _ ->
754754 generatePath mode subPath
755755
756756
@@ -876,8 +876,8 @@ generateIfTest mode root (path, test) =
876876 let
877877 tag =
878878 case mode of
879− Mode.Dev _ _ -> JS.Access value JsName.dollar
880− Mode.Prod _ _ ->
879+ Mode.Dev _ -> JS.Access value JsName.dollar
880+ Mode.Prod _ ->
881881 case opts of
882882 Can.Normal -> JS.Access value JsName.dollar
883883 Can.Enum -> value
@@ -885,8 +885,8 @@ generateIfTest mode root (path, test) =
885885 in
886886 strictEq tag $
887887 case mode of
888− Mode.Dev _ _ -> JS.String (Name.toBuilder name)
889− Mode.Prod _ _ -> JS.Int (ctorToInt home name index)
888+ Mode.Dev _ -> JS.String (Name.toBuilder name)
889+ Mode.Prod _ -> JS.Int (ctorToInt home name index)
890890
891891 DT.IsBool True ->
892892 value
@@ -900,8 +900,8 @@ generateIfTest mode root (path, test) =
900900 DT.IsChr char ->
901901 strictEq (JS.String (Utf8.toBuilder char)) $
902902 case mode of
903− Mode.Dev _ _ -> JS.Call (JS.Access value (JsName.fromLocal "valueOf")) []
904− Mode.Prod _ _ -> value
903+ Mode.Dev _ -> JS.Call (JS.Access value (JsName.fromLocal "valueOf")) []
904+ Mode.Prod _ -> value
905905
906906 DT.IsStr string ->
907907 strictEq value (JS.String (Utf8.toBuilder string))
@@ -930,8 +930,8 @@ generateCaseValue mode test =
930930 case test of
931931 DT.IsCtor home name index _ _ ->
932932 case mode of
933− Mode.Dev _ _ -> JS.String (Name.toBuilder name)
934− Mode.Prod _ _ -> JS.Int (ctorToInt home name index)
933+ Mode.Dev _ -> JS.String (Name.toBuilder name)
934+ Mode.Prod _ -> JS.Int (ctorToInt home name index)
935935
936936 DT.IsInt int ->
937937 JS.Int int
@@ -966,10 +966,10 @@ generateCaseTest mode root path exampleTest =
966966 value
967967 else
968968 case mode of
969− Mode.Dev _ _ ->
969+ Mode.Dev _ ->
970970 JS.Access value JsName.dollar
971971
972− Mode.Prod _ _ ->
972+ Mode.Prod _ ->
973973 case opts of
974974 Can.Normal ->
975975 JS.Access value JsName.dollar
@@ -988,10 +988,10 @@ generateCaseTest mode root path exampleTest =
988988
989989 DT.IsChr _ ->
990990 case mode of
991− Mode.Dev _ _ ->
991+ Mode.Dev _ ->
992992 JS.Call (JS.Access value (JsName.fromLocal "valueOf")) []
993993
994− Mode.Prod _ _ ->
994+ Mode.Prod _ ->
995995 value
996996
997997 DT.IsBool _ ->
@@ -1019,10 +1019,10 @@ pathToJsExpr mode root path =
10191019
10201020 DT.Unbox subPath ->
10211021 case mode of
1022− Mode.Dev _ _ ->
1022+ Mode.Dev _ ->
10231023 JS.Access (pathToJsExpr mode root subPath) (JsName.fromIndex Index.first)
10241024
1025− Mode.Prod _ _ ->
1025+ Mode.Prod _ ->
10261026 pathToJsExpr mode root subPath
10271027
10281028 DT.Empty ->
@@ -1056,13 +1056,13 @@ generateMain mode home main =
10561056toDebugMetadata :: Mode.Mode -> Can.Type -> JS.Expr
10571057toDebugMetadata mode msgType =
10581058 case mode of
1059− Mode.Prod _ _ ->
1059+ Mode.Prod _ ->
10601060 JS.Int 0
10611061
1062− Mode.Dev _ Nothing ->
1062+ Mode.Dev Nothing ->
10631063 JS.Int 0
10641064
1065− Mode.Dev _ (Just interfaces) ->
1065+ Mode.Dev (Just interfaces) ->
10661066 JS.Json $ Encode.object $
10671067 [ ("versions", Encode.object [ ("elm", V.encode V.compiler) ])
10681068 , ("types", Type.encodeMetadata (Extract.fromMsg interfaces msgType))