@@ -135,7 +135,47 @@ nameIsJsReserved name =
135 , "volatile"
135 , "volatile"
136 , "while"
136 , "while"
138− , "yield" ]
138+ , "yield" ] || properNameIsJsReserved name
140moduleNameToJs :: ModuleName -> String
140moduleNameToJs :: ModuleName -> String
141+moduleNameToJs (ModuleName pns) =
141−moduleNameToJs (ModuleName pns) = intercalate "_" (runProperName `map` pns)
142+ let name = intercalate "_" (runProperName `map` pns)
143+ in if properNameIsJsReserved name then "$$" ++ name else name
146+-- Checks whether a proper name is reserved in Javascript.
148+properNameIsJsReserved :: String -> Bool
149+properNameIsJsReserved name =
150+ name `elem` [ "Infinity"
171+ , "Uint8ClampedArray"