Path: blob/develop/haskell-overlays/text-jsstring-8.10/doube-conversion-Add-test-jsstring.patch
1 views
From 0f9ddde468687d25fa6c4c9accb02a034bc2f9c3 Mon Sep 17 00:00:00 20011From: Luigy Leon <[email protected]>2Date: Thu, 1 Dec 2016 12:43:59 -05003Subject: [PATCH] Add text jsstring support for ghcjs.45---6Data/Double/Conversion/Text.hs | 17 +++++++++++++++--7double-conversion.cabal | 4 ++++82 files changed, 19 insertions(+), 2 deletions(-)910diff --git a/Data/Double/Conversion/Text.hs b/Data/Double/Conversion/Text.hs11index 2e89705..3b315a7 10064412--- a/Data/Double/Conversion/Text.hs13+++ b/Data/Double/Conversion/Text.hs14@@ -1,4 +1,4 @@15-{-# LANGUAGE CPP, MagicHash, Rank2Types #-}16+{-# LANGUAGE CPP, MagicHash, Rank2Types, ForeignFunctionInterface, UnliftedFFITypes #-}1718-- |19-- Module : Data.Double.Conversion.Text20@@ -33,7 +33,12 @@ import Control.Monad.ST (runST)21import Data.Double.Conversion.FFI22import Data.Text.Internal (Text(Text))23import Foreign.C.Types (CDouble, CInt)24-import GHC.Prim (MutableByteArray#)25+#ifndef __GHCJS__26+import GHC.Prim (MutableByteArray#, ByteArray#)27+#else28+import GHC.Prim (MutableByteArray#, Int#, ByteArray#)29+import Data.JSString30+#endif31import qualified Data.Text.Array as A3233-- | Compute a representation in exponential format with the requested34@@ -81,4 +86,12 @@ convert func len act val = runST go35fail $ "Data.Double.Conversion.Text." ++ func ++36": conversion failed (invalid precision requested)"37frozen <- A.unsafeFreeze buf38+#ifndef __GHCJS__39return $ Text frozen 0 (fromIntegral size)40+#else41+ return $ Text $ js_toString (A.aBA frozen) 0# (fromIntegral size)42+43+foreign import javascript unsafe44+ "h$textToString"45+ js_toString :: ByteArray# -> Int# -> Int -> JSString46+#endif47diff --git a/double-conversion.cabal b/double-conversion.cabal48index d177d3f..5f0527f 10064449--- a/double-conversion.cabal50+++ b/double-conversion.cabal51@@ -90,6 +90,10 @@ library52ghc-prim,53text >= 0.11.0.85455+ if impl(ghcjs)56+ build-depends:57+ ghcjs-base58+59if flag(developer)60ghc-options: -Werror61ghc-prof-options: -auto-all62--632.31.1646566