ghcjs-base-0.8.0.0: JavaScript/Web/MessageEvent.hs
{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI, DeriveDataTypeable,
UnboxedTuples, GHCForeignImportPrim, UnliftedFFITypes,
MagicHash
#-}
module JavaScript.Web.MessageEvent ( MessageEvent
, getData
, MessageEventData(..)
) where
import GHCJS.Types
import GHC.Exts
import Data.Typeable
import JavaScript.Web.MessageEvent.Internal
import JavaScript.Web.Blob.Internal (Blob, SomeBlob(..))
import JavaScript.TypedArray.ArrayBuffer.Internal (ArrayBuffer, SomeArrayBuffer(..))
import Data.JSString.Internal.Type (JSString(..))
data MessageEventData = StringData JSString
| BlobData Blob
| ArrayBufferData ArrayBuffer
deriving (Typeable)
getData :: MessageEvent -> MessageEventData
getData me = case js_getData me of
(# 1#, r #) -> StringData (JSString r)
(# 2#, r #) -> BlobData (SomeBlob r)
(# 3#, r #) -> ArrayBufferData (SomeArrayBuffer r)
{-# INLINE getData #-}
-- -----------------------------------------------------------------------------
foreign import javascript unsafe
"((x) => { var r2 = x.data;\
\ var r1 = typeof r2 === 'string' ? 1 : (r2 instanceof ArrayBuffer ? 3 : 2);\
\ h$ret1 = r2; return r1; })"
js_getData :: MessageEvent -> (# Int#, JSVal #)