on master help sign in
Update Generate/JavaScript/* for all the name/string type changes
commit0d943a5c2693b6f334c4b8644b523b099670c1d8 authorEvan Czaplicki <evancz@users.noreply.github.com> dateMon 3 Jun 2019, 12:54 (7 years ago) parent88c6e6a
3 files changed+32−24
compiler/src/Generate/JavaScript.hs+5−9 compiler/src/Generate/JavaScript/Expression.hs+5−3 compiler/src/Generate/JavaScript/Name.hs+22−12
compiler/src/Generate/JavaScript.hs+5−9
@@ -314,7 +314,7 @@ addChunk :: Mode.Mode -> K.Chunk -> B.Builder -> B.Builder
314314addChunk mode chunk builder =
315315 case chunk of
316316 K.JS javascript ->
317− Utf8.toBuilder javascript <> builder
317+ B.byteString javascript <> builder
318318
319319 K.ElmVar home name ->
320320 JsName.toBuilder (JsName.fromGlobal home name) <> builder
@@ -498,7 +498,7 @@ generateExports mode (Trie maybeMain subs) =
498498 <> List.foldl' (addSubTrie mode) "}" otherSubTries
499499
500500
501−addSubTrie :: Mode.Mode -> B.Builder -> (Utf8.String, Trie) -> B.Builder
501+addSubTrie :: Mode.Mode -> B.Builder -> (Name.Name, Trie) -> B.Builder
502502addSubTrie mode end (name, trie) =
503503 ",'" <> Utf8.toBuilder name <> "':" <> generateExports mode trie <> end
504504
@@ -510,7 +510,7 @@ addSubTrie mode end (name, trie) =
510510data Trie =
511511 Trie
512512 { _main :: Maybe (ModuleName.Canonical, Opt.Main)
513− , _subs :: Map.Map Utf8.String Trie
513+ , _subs :: Map.Map Name.Name Trie
514514 }
515515
516516
@@ -521,14 +521,10 @@ emptyTrie =
521521
522522addToTrie :: ModuleName.Canonical -> Opt.Main -> Trie -> Trie
523523addToTrie home@(ModuleName.Canonical _ moduleName) main trie =
524− let
525− segments =
526− Utf8.split 0x2E {-.-} (Name.toUtf8 moduleName)
527− in
528− merge trie $ segmentsToTrie home segments main
524+ merge trie $ segmentsToTrie home (Name.splitDots moduleName) main
529525
530526
531−segmentsToTrie :: ModuleName.Canonical -> [Utf8.String] -> Opt.Main -> Trie
527+segmentsToTrie :: ModuleName.Canonical -> [Name.Name] -> Opt.Main -> Trie
532528segmentsToTrie home segments main =
533529 case segments of
534530 [] ->
compiler/src/Generate/JavaScript/Expression.hs+5−3
@@ -22,6 +22,7 @@ import qualified Data.Utf8 as Utf8
2222
2323import qualified AST.Canonical as Can
2424import qualified AST.Optimized as Opt
25+import qualified AST.Utils.Shader as Shader
2526import qualified Data.Index as Index
2627import qualified Elm.Compiler.Type as Type
2728import qualified Elm.Compiler.Type.Extract as Extract
@@ -32,6 +33,7 @@ import qualified Generate.JavaScript.Builder as JS
3233import qualified Generate.JavaScript.Name as JsName
3334import qualified Generate.Mode as Mode
3435import qualified Json.Encode as Encode
36+import Json.Encode ((==>))
3537import qualified Optimize.DecisionTree as DT
3638import qualified Reporting.Annotation as A
3739
@@ -189,7 +191,7 @@ generate mode expression =
189191 JS.Object (map toTranlation (Set.toList fields))
190192 in
191193 JsExpr $ JS.Object $
192− [ ( JsName.fromLocal "src", JS.String (Utf8.toBuilder src) )
194+ [ ( JsName.fromLocal "src", JS.String (Shader.toJsStringBuilder src) )
193195 , ( JsName.fromLocal "attributes", toTranslationObject attributes )
194196 , ( JsName.fromLocal "uniforms", toTranslationObject uniforms )
195197 ]
@@ -1063,6 +1065,6 @@ toDebugMetadata mode msgType =
10631065
10641066 Mode.Dev (Just interfaces) ->
10651067 JS.Json $ Encode.object $
1066− [ ("versions", Encode.object [ ("elm", V.encode V.compiler) ])
1067− , ("types", Type.encodeMetadata (Extract.fromMsg interfaces msgType))
1068+ [ "versions" ==> Encode.object [ "elm" ==> V.encode V.compiler ]
1069+ , "types" ==> Type.encodeMetadata (Extract.fromMsg interfaces msgType)
10681070 ]
compiler/src/Generate/JavaScript/Name.hs+22−12
@@ -62,19 +62,13 @@ fromLocal name =
6262
6363
6464fromGlobal :: ModuleName.Canonical -> Name.Name -> Name
65−fromGlobal (ModuleName.Canonical (Pkg.Name author project) home) name =
66− Name $ Name.toEscapedBuilder 0x2D {- - -} 0x5F {- _ -} author
67− <> "$" <> Name.toEscapedBuilder 0x2D {- - -} 0x5F {- _ -} project
68− <> "$" <> Name.toEscapedBuilder 0x2E {- . -} 0x24 {- $ -} home
69− <> "$" <> Name.toBuilder name
65+fromGlobal home name =
66+ Name $ homeToBuilder home <> usd <> Name.toBuilder name
7067
7168
7269fromCycle :: ModuleName.Canonical -> Name.Name -> Name
73−fromCycle (ModuleName.Canonical (Pkg.Name author project) home) name =
74− Name $ Name.toEscapedBuilder 0x2D {- - -} 0x5F {- _ -} author
75− <> "$" <> Name.toEscapedBuilder 0x2D {- - -} 0x5F {- _ -} project
76− <> "$" <> Name.toEscapedBuilder 0x2E {- . -} 0x24 {- $ -} home
77− <> "$cyclic$" <> Name.toBuilder name
70+fromCycle home name =
71+ Name $ homeToBuilder home <> "$cyclic$" <> Name.toBuilder name
7872
7973
8074fromKernel :: Name.Name -> Name.Name -> Name
@@ -82,6 +76,17 @@ fromKernel home name =
8276 Name ("_" <> Name.toBuilder home <> "_" <> Name.toBuilder name)
8377
8478
79+{-# INLINE homeToBuilder #-}
80+homeToBuilder :: ModuleName.Canonical -> B.Builder
81+homeToBuilder (ModuleName.Canonical (Pkg.Name author project) home) =
82+ usd <>
83+ Utf8.toEscapedBuilder 0x2D {- - -} 0x5F {- _ -} author
84+ <> usd <>
85+ Utf8.toEscapedBuilder 0x2D {- - -} 0x5F {- _ -} project
86+ <> usd <>
87+ Utf8.toEscapedBuilder 0x2E {- . -} 0x24 {- $ -} home
88+
89+
8590
8691-- TEMPORARY NAMES
8792
@@ -98,7 +103,7 @@ makeA n =
98103
99104makeLabel :: Name.Name -> Int -> Name
100105makeLabel name index =
101− Name (Name.toBuilder name <> "$" <> B.intDec index)
106+ Name (Name.toBuilder name <> usd <> B.intDec index)
102107
103108
104109makeTemp :: Name.Name -> Name
@@ -108,7 +113,12 @@ makeTemp name =
108113
109114dollar :: Name
110115dollar =
111− Name (Name.toBuilder Name.dollar)
116+ Name usd
117+
118+
119+usd :: B.Builder
120+usd =
121+ Name.toBuilder Name.dollar
112122
113123
114124