ghcjs-base 0.2.0.3 → 0.2.1.0
raw patch · 2 files changed
+19/−5 lines, 2 filesdep ~aesondep ~hashabledep ~transformers
Dependency ranges changed: aeson, hashable, transformers
Files
- GHCJS/Marshal.hs +15/−1
- ghcjs-base.cabal +4/−4
GHCJS/Marshal.hs view
@@ -28,7 +28,12 @@ import Data.Attoparsec.Number (Number(..)) import Data.Bits ((.&.)) import Data.Char (chr, ord)+#if MIN_VERSION_aeson (2,0,0)+import qualified Data.Aeson.Key as K+import qualified Data.Aeson.KeyMap as KM+#else import qualified Data.HashMap.Strict as H+#endif import Data.Int (Int8, Int16, Int32) import qualified Data.JSString as JSS import qualified Data.JSString.Text as JSS@@ -170,7 +175,11 @@ propVals <- forM props $ \p -> do v <- MaybeT (fromJSVal =<< OI.getProp p (OI.Object r)) return (JSS.textFromJSString p, v)+#if MIN_VERSION_aeson (2,0,0)+ return (AE.Object (KM.fromList (map (\(k, v) -> (K.fromText k, v)) propVals)))+#else return (AE.Object (H.fromList propVals))+#endif {-# INLINE fromJSVal #-} instance (FromJSVal a, FromJSVal b) => FromJSVal (a,b) where fromJSVal r = runMaybeT $ (,) <$> jf r 0 <*> jf r 1@@ -299,7 +308,12 @@ convertValue (AE.Bool b) = return (toJSBool b) convertValue (AE.Object o) = do obj@(OI.Object obj') <- OI.create- mapM_ (\(k,v) -> convertValue v >>= \v' -> OI.setProp (JSS.textToJSString k) v' obj) (H.toList o)+ mapM_ (\(k,v) -> convertValue v >>= \v' -> OI.setProp (JSS.textToJSString k) v' obj)+#if MIN_VERSION_aeson (2,0,0)+ (map (\(k, v) -> (K.toText k, v)) (KM.toList o))+#else+ (H.toList o)+#endif return obj'
ghcjs-base.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: ghcjs-base-version: 0.2.0.3+version: 0.2.1.0 synopsis: base library for GHCJS homepage: http://github.com/ghcjs/ghcjs-base license: MIT@@ -145,15 +145,15 @@ binary >= 0.8 && < 0.11, bytestring >= 0.10 && < 0.11, text >= 1.1 && < 1.3,- aeson >= 0.8 && < 1.6,+ aeson >= 0.8 && < 2.1, scientific >= 0.3 && < 0.4, vector >= 0.10 && < 0.13, containers >= 0.5 && < 0.7, time >= 1.5 && < 1.10,- hashable >= 1.2 && < 1.4,+ hashable >= 1.2 && < 1.5, unordered-containers >= 0.2 && < 0.3, attoparsec >= 0.11 && < 0.15,- transformers >= 0.3 && < 0.6,+ transformers >= 0.3 && < 0.7, primitive >= 0.5 && < 0.8, deepseq >= 1.3 && < 1.5, dlist >= 0.7 && < 1.1