{-# LANGUAGE CPP #-} ----------------------------------------------------------------------------- -- -- Module : Language.Javascript.JSaddle.Value -- Copyright : (c) Hamish Mackenzie -- License : MIT -- -- Maintainer : Hamish Mackenzie -- -- | -- ----------------------------------------------------------------------------- module GHCJS.Foreign ( jsTrue , jsFalse , jsNull , toJSBool -- , fromJSBool , jsUndefined , isTruthy , isNull , isUndefined , isObject , isFunction , isString , isBoolean , isSymbol , isNumber , JSType(..) , jsTypeOf ) where import GHCJS.Foreign.Internal import Language.Javascript.JSaddle.Types (JSVal(..), GHCJSPure(..)) import Language.Javascript.JSaddle.Object (jsg1) import GHCJS.Marshal (FromJSVal(..)) isObject :: JSVal -> GHCJSPure Bool isObject v = GHCJSPure $ jsg1 "h$isObject" v >>= fromJSValUnchecked {-# INLINE isObject #-} isFunction :: JSVal -> GHCJSPure Bool isFunction v = GHCJSPure $ jsg1 "h$isFunction" v >>= fromJSValUnchecked {-# INLINE isFunction #-} isString :: JSVal -> GHCJSPure Bool isString v = GHCJSPure $ jsg1 "h$isString" v >>= fromJSValUnchecked {-# INLINE isString #-} isBoolean :: JSVal -> GHCJSPure Bool isBoolean v = GHCJSPure $ jsg1 "h$isBoolean" v >>= fromJSValUnchecked {-# INLINE isBoolean #-} isSymbol :: JSVal -> GHCJSPure Bool isSymbol v = GHCJSPure $ jsg1 "h$isSymbol" v >>= fromJSValUnchecked {-# INLINE isSymbol #-} isNumber :: JSVal -> GHCJSPure Bool isNumber v = GHCJSPure $ jsg1 "h$isNumber" v >>= fromJSValUnchecked {-# INLINE isNumber #-} jsTypeOf :: JSVal -> GHCJSPure JSType jsTypeOf v = GHCJSPure $ toEnum <$> (jsg1 "h$jsonTypeOf" v >>= fromJSValUnchecked) {-# INLINE jsTypeOf #-}