on master help sign in
Add helpers for marshaling MutableArrayBuffer
02f215aHamish Mackenzie
jsaddle/jsaddle.cabal+2−1
@@ -1,5 +1,5 @@
1name: jsaddle
1name: jsaddle
2−version: 0.8.0.0
2+version: 0.8.0.1
3cabal-version: >=1.10
3cabal-version: >=1.10
4build-type: Simple
4build-type: Simple
5license: MIT
5license: MIT
@@ -82,6 +82,7 @@ library
82 Language.Javascript.JSaddle.Classes.Internal
82 Language.Javascript.JSaddle.Classes.Internal
83 Language.Javascript.JSaddle.Evaluate
83 Language.Javascript.JSaddle.Evaluate
84 Language.Javascript.JSaddle.Exception
84 Language.Javascript.JSaddle.Exception
85+ Language.Javascript.JSaddle.Helper
85 Language.Javascript.JSaddle.Marshal.String
86 Language.Javascript.JSaddle.Marshal.String
86 Language.Javascript.JSaddle.Monad
87 Language.Javascript.JSaddle.Monad
87 Language.Javascript.JSaddle.Object
88 Language.Javascript.JSaddle.Object
jsaddle/src/Language/Javascript/JSaddle.hs−1
@@ -1,4 +1,3 @@
1−{-# LANGUAGE CPP #-}
2-----------------------------------------------------------------------------
1-----------------------------------------------------------------------------
3--
2--
4-- Module : Language.Javascript.JSaddle
3-- Module : Language.Javascript.JSaddle
jsaddle/src/Language/Javascript/JSaddle/Helper.hsnew file+30
@@ -0,0 +1,30 @@
1+{-# LANGUAGE CPP #-}
2+module Language.Javascript.JSaddle.Helper where
3+
4+import GHCJS.Types (JSVal)
5+import Language.Javascript.JSaddle.Types (JSM)
6+
7+#ifdef ghcjs_HOST_OS
8+import GHCJS.Marshal.Pure (pFromJSVal, pToJSVal)
9+import JavaScript.TypedArray.ArrayBuffer (MutableArrayBuffer)
10+#else
11+import JavaScript.TypedArray.ArrayBuffer.Internal (MutableArrayBuffer, SomeArrayBuffer(..))
12+#endif
13+
14+-- | Helper function needed because there is no FromJSVal instance for MutableArrayBuffer
15+mutableArrayBufferFromJSVal :: JSVal -> JSM MutableArrayBuffer
16+#ifdef ghcjs_HOST_OS
17+mutableArrayBufferFromJSVal = return . pFromJSVal
18+#else
19+mutableArrayBufferFromJSVal = return . SomeArrayBuffer
20+#endif
21+{-# INLINE mutableArrayBufferFromJSVal #-}
22+
23+-- | Helper function needed because there is no ToJSVal instance for MutableArrayBuffer
24+mutableArrayBufferToJSVal :: MutableArrayBuffer -> JSM JSVal
25+#ifdef ghcjs_HOST_OS
26+mutableArrayBufferToJSVal = return . pToJSVal
27+#else
28+mutableArrayBufferToJSVal (SomeArrayBuffer v) = return v
29+#endif
30+{-# INLINE mutableArrayBufferToJSVal #-}
jsaddle/src/Language/Javascript/JSaddle/Value.hs−1
@@ -90,7 +90,6 @@ import Data.JSString.Text (textToJSString)
90import Language.Javascript.JSaddle.Types
90import Language.Javascript.JSaddle.Types
91 (Object(..), JSString(..), JSVal(..), ghcjsPure)
91 (Object(..), JSString(..), JSVal(..), ghcjsPure)
92import GHCJS.Marshal (ToJSVal(..))
92import GHCJS.Marshal (ToJSVal(..))
93−import GHCJS.Marshal.Pure (pToJSVal)
94#else
93#else
95import Data.Char (chr, ord)
94import Data.Char (chr, ord)
96import Data.Word (Word, Word8, Word16, Word32)
95import Data.Word (Word, Word8, Word16, Word32)