@@ -1,16 +1,20 @@
1{-# OPTIONS_GHC -Wall #-}
1{-# OPTIONS_GHC -Wall #-}
2module Transform.SafeNames (metadataModule) where
2module Transform.SafeNames (metadataModule) where
4−import Control.Arrow (first, (***))
4+import Control.Arrow (first, (***))
5+import Data.List (intercalate)
7+import qualified Data.Set as Set
9+import qualified Parse.Helpers as PHelp
5import SourceSyntax.Expression
10import SourceSyntax.Expression
11+import qualified SourceSyntax.Helpers as SHelp
6import SourceSyntax.Location
12import SourceSyntax.Location
7import SourceSyntax.Module
13import SourceSyntax.Module
8import SourceSyntax.Pattern
14import SourceSyntax.Pattern
9−import qualified Data.Set as Set
10−import qualified Parse.Helpers as PHelp
12var :: String -> String
16var :: String -> String
13−var = dereserve . deprime
17+var = intercalate "." . map (dereserve . deprime) . SHelp.splitDots
15 deprime = map (\c -> if c == '\'' then '$' else c)
19 deprime = map (\c -> if c == '\'' then '$' else c)
16 dereserve x = case Set.member x PHelp.jsReserveds of
20 dereserve x = case Set.member x PHelp.jsReserveds of