@@ -260,7 +260,9 @@ import Data.Coerce
260import GHC.Base (build)
260import GHC.Base (build)
261import qualified GHC.CString as GHC
261import qualified GHC.CString as GHC
262import GHC.Exts (Addr#, ByteArray#)
262import GHC.Exts (Addr#, ByteArray#)
263+#if MIN_VERSION_ghcjs_prim(0,1,1)
263import GHCJS.Prim (unsafeUnpackJSString#)
264import GHCJS.Prim (unsafeUnpackJSString#)
265unpack :: Text -> String
267unpack :: Text -> String
266unpack = coerce JSS.unpack
268unpack = coerce JSS.unpack
@@ -277,9 +279,11 @@ singleton = coerce JSS.singleton
277 unstream (S.singleton (safe a)) = singleton a
279 unstream (S.singleton (safe a)) = singleton a
282+#if MIN_VERSION_ghcjs_prim(0,1,1)
280{-# RULES "inlineJSString" forall s.
283{-# RULES "inlineJSString" forall s.
281 pack (GHC.Base.build (GHC.unpackFoldrCString# s)) =
284 pack (GHC.Base.build (GHC.unpackFoldrCString# s)) =
282 Text (JSString (unsafeUnpackJSString# s)) #-}
285 Text (JSString (unsafeUnpackJSString# s)) #-}
284-- | /O(n)/ Convert a literal string into a JSString. Subject to fusion.
288-- | /O(n)/ Convert a literal string into a JSString. Subject to fusion.
285unpackCString# :: Addr# -> Text
289unpackCString# :: Addr# -> Text