on master help sign in
Add helpers for marshaling MutableArrayBuffer
commit02f215aec0622300fd68f0200c813356ed7cd738 authorHamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> dateFri 16 Dec 2016, 00:50 (10 years ago) parent16f7f42
4 files changed+32−3
jsaddle/jsaddle.cabal+2−1 jsaddle/src/Language/Javascript/JSaddle.hs−1 jsaddle/src/Language/Javascript/JSaddle/Helper.hs+30 jsaddle/src/Language/Javascript/JSaddle/Value.hs−1
jsaddle/jsaddle.cabal+2−1
@@ -1,5 +1,5 @@
11name: jsaddle
2−version: 0.8.0.0
2+version: 0.8.0.1
33cabal-version: >=1.10
44build-type: Simple
55license: MIT
@@ -82,6 +82,7 @@ library
8282 Language.Javascript.JSaddle.Classes.Internal
8383 Language.Javascript.JSaddle.Evaluate
8484 Language.Javascript.JSaddle.Exception
85+ Language.Javascript.JSaddle.Helper
8586 Language.Javascript.JSaddle.Marshal.String
8687 Language.Javascript.JSaddle.Monad
8788 Language.Javascript.JSaddle.Object
jsaddle/src/Language/Javascript/JSaddle.hs−1
@@ -1,4 +1,3 @@
1−{-# LANGUAGE CPP #-}
21-----------------------------------------------------------------------------
32--
43-- 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)
9090import Language.Javascript.JSaddle.Types
9191 (Object(..), JSString(..), JSVal(..), ghcjsPure)
9292import GHCJS.Marshal (ToJSVal(..))
93−import GHCJS.Marshal.Pure (pToJSVal)
9493#else
9594import Data.Char (chr, ord)
9695import Data.Word (Word, Word8, Word16, Word32)