{-# LANGUAGE CPP #-} module Language.Javascript.JSaddle.Helper where import GHCJS.Types (JSVal) import Language.Javascript.JSaddle.Types (JSM) #ifdef ghcjs_HOST_OS import GHCJS.Marshal.Pure (pFromJSVal, pToJSVal) import JavaScript.TypedArray.ArrayBuffer (MutableArrayBuffer) #else import JavaScript.TypedArray.ArrayBuffer.Internal (MutableArrayBuffer, SomeArrayBuffer(..)) #endif -- | Helper function needed because there is no FromJSVal instance for MutableArrayBuffer mutableArrayBufferFromJSVal :: JSVal -> JSM MutableArrayBuffer #ifdef ghcjs_HOST_OS mutableArrayBufferFromJSVal = return . pFromJSVal #else mutableArrayBufferFromJSVal = return . SomeArrayBuffer #endif {-# INLINE mutableArrayBufferFromJSVal #-} -- | Helper function needed because there is no ToJSVal instance for MutableArrayBuffer mutableArrayBufferToJSVal :: MutableArrayBuffer -> JSM JSVal #ifdef ghcjs_HOST_OS mutableArrayBufferToJSVal = return . pToJSVal #else mutableArrayBufferToJSVal (SomeArrayBuffer v) = return v #endif {-# INLINE mutableArrayBufferToJSVal #-}