-- GENERATED by C->Haskell Compiler, version 0.13.13 (gtk2hs branch) "Bin IO", 27 May 2012 (Haskell)
-- Edit the ORIGNAL .chs file instead!

{-# LANGUAGE EmptyDataDecls,ForeignFunctionInterface #-}

{-# LINE 1 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

module Graphics.UI.Gtk.WebKit.JavaScriptCore.JSValueRef where

import Foreign.Ptr 
import Foreign.C.Types 


import Graphics.UI.Gtk.WebKit.JavaScriptCore.JSBase
{-# LINE 9 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

data JSType = Kjstypeundefined
            | Kjstypenull
            | Kjstypeboolean
            | Kjstypenumber
            | Kjstypestring
            | Kjstypeobject
            deriving (Enum,Show,Eq)

{-# LINE 11 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

toEnumFromIntegral :: (Enum a, Integral i) => i -> a  
toEnumFromIntegral = toEnum . fromIntegral 



jsvaluegettype :: JSContextRef -> JSValueRef -> IO (JSType)
jsvaluegettype a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvaluegettype'_ a1' a2' >>= \res ->
  let {res' = toEnumFromIntegral res} in
  return (res')
{-# LINE 18 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueisundefined :: JSContextRef -> JSValueRef -> IO (Bool)
jsvalueisundefined a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvalueisundefined'_ a1' a2' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 20 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueisnull :: JSContextRef -> JSValueRef -> IO (Bool)
jsvalueisnull a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvalueisnull'_ a1' a2' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 22 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueisboolean :: JSContextRef -> JSValueRef -> IO (Bool)
jsvalueisboolean a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvalueisboolean'_ a1' a2' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 24 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueisnumber :: JSContextRef -> JSValueRef -> IO (Bool)
jsvalueisnumber a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvalueisnumber'_ a1' a2' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 26 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueisstring :: JSContextRef -> JSValueRef -> IO (Bool)
jsvalueisstring a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvalueisstring'_ a1' a2' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 28 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueisobject :: JSContextRef -> JSValueRef -> IO (Bool)
jsvalueisobject a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvalueisobject'_ a1' a2' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 30 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueisobjectofclass :: JSContextRef -> JSValueRef -> JSClassRef -> IO (Bool)
jsvalueisobjectofclass a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  jsvalueisobjectofclass'_ a1' a2' a3' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 32 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueisequal :: JSContextRef -> JSValueRef -> JSValueRef -> JSValueRefRef -> IO (Bool)
jsvalueisequal a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  let {a4' = id a4} in 
  jsvalueisequal'_ a1' a2' a3' a4' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 34 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueisstrictequal :: JSContextRef -> JSValueRef -> JSValueRef -> IO (Bool)
jsvalueisstrictequal a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  jsvalueisstrictequal'_ a1' a2' a3' >>= \res ->
  let {res' = getBool res} in
  return (res') 

jsvalueisinstanceofconstructor :: JSContextRef -> JSValueRef -> JSObjectRef -> JSValueRefRef -> IO (Bool)
jsvalueisinstanceofconstructor a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  let {a4' = id a4} in 
  jsvalueisinstanceofconstructor'_ a1' a2' a3' a4' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 38 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluemakeundefined :: JSContextRef -> IO (JSValueRef)
jsvaluemakeundefined a1 =
  let {a1' = id a1} in 
  jsvaluemakeundefined'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 40 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluemakenull :: JSContextRef -> IO (JSValueRef)
jsvaluemakenull a1 =
  let {a1' = id a1} in 
  jsvaluemakenull'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 42 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluemakeboolean :: JSContextRef -> Bool -> IO (JSValueRef)
jsvaluemakeboolean a1 a2 =
  let {a1' = id a1} in 
  let {a2' = setBool a2} in 
  jsvaluemakeboolean'_ a1' a2' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 44 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluemakenumber :: JSContextRef -> Double -> IO (JSValueRef)
jsvaluemakenumber a1 a2 =
  let {a1' = id a1} in 
  let {a2' = realToFrac a2} in 
  jsvaluemakenumber'_ a1' a2' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 46 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluemakestring :: JSContextRef -> JSStringRef -> IO (JSValueRef)
jsvaluemakestring a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvaluemakestring'_ a1' a2' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 48 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluemakefromjsonstring :: JSContextRef -> JSStringRef -> IO (JSValueRef)
jsvaluemakefromjsonstring a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvaluemakefromjsonstring'_ a1' a2' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 50 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluecreatejsonstring :: JSContextRef -> JSValueRef -> CUInt -> JSValueRefRef -> IO (JSStringRef)
jsvaluecreatejsonstring a1 a2 a3 a4 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = fromIntegral a3} in 
  let {a4' = id a4} in 
  jsvaluecreatejsonstring'_ a1' a2' a3' a4' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 52 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluetoboolean :: JSContextRef -> JSValueRef -> IO (Bool)
jsvaluetoboolean a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvaluetoboolean'_ a1' a2' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 54 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluetonumber :: JSContextRef -> JSValueRef -> JSValueRefRef -> IO (Double)
jsvaluetonumber a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  jsvaluetonumber'_ a1' a2' a3' >>= \res ->
  let {res' = realToFrac res} in
  return (res')
{-# LINE 56 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluetostringcopy :: JSContextRef -> JSValueRef -> JSValueRefRef -> IO (JSStringRef)
jsvaluetostringcopy a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  jsvaluetostringcopy'_ a1' a2' a3' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 58 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvaluetoobject :: JSContextRef -> JSValueRef -> JSValueRefRef -> IO (JSObjectRef)
jsvaluetoobject a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  jsvaluetoobject'_ a1' a2' a3' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 60 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueprotect :: JSContextRef -> JSValueRef -> IO ()
jsvalueprotect a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvalueprotect'_ a1' a2' >>= \res ->
  return ()
{-# LINE 62 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

jsvalueunprotect :: JSContextRef -> JSValueRef -> IO ()
jsvalueunprotect a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  jsvalueunprotect'_ a1' a2' >>= \res ->
  return ()
{-# LINE 64 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSValueRef.chs" #-}

foreign import ccall safe "JSValueGetType"
  jsvaluegettype'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO CInt)))

foreign import ccall safe "JSValueIsUndefined"
  jsvalueisundefined'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO CUChar)))

foreign import ccall safe "JSValueIsNull"
  jsvalueisnull'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO CUChar)))

foreign import ccall safe "JSValueIsBoolean"
  jsvalueisboolean'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO CUChar)))

foreign import ccall safe "JSValueIsNumber"
  jsvalueisnumber'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO CUChar)))

foreign import ccall safe "JSValueIsString"
  jsvalueisstring'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO CUChar)))

foreign import ccall safe "JSValueIsObject"
  jsvalueisobject'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO CUChar)))

foreign import ccall safe "JSValueIsObjectOfClass"
  jsvalueisobjectofclass'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> ((Ptr OpaqueJSClass) -> (IO CUChar))))

foreign import ccall safe "JSValueIsEqual"
  jsvalueisequal'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> ((Ptr OpaqueJSValue) -> ((Ptr JSValueRef) -> (IO CUChar)))))

foreign import ccall safe "JSValueIsStrictEqual"
  jsvalueisstrictequal'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> ((Ptr OpaqueJSValue) -> (IO CUChar))))

foreign import ccall safe "JSValueIsInstanceOfConstructor"
  jsvalueisinstanceofconstructor'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> ((Ptr OpaqueJSValue) -> ((Ptr JSValueRef) -> (IO CUChar)))))

foreign import ccall safe "JSValueMakeUndefined"
  jsvaluemakeundefined'_ :: ((Ptr OpaqueJSContext) -> (IO (Ptr OpaqueJSValue)))

foreign import ccall safe "JSValueMakeNull"
  jsvaluemakenull'_ :: ((Ptr OpaqueJSContext) -> (IO (Ptr OpaqueJSValue)))

foreign import ccall safe "JSValueMakeBoolean"
  jsvaluemakeboolean'_ :: ((Ptr OpaqueJSContext) -> (CUChar -> (IO (Ptr OpaqueJSValue))))

foreign import ccall safe "JSValueMakeNumber"
  jsvaluemakenumber'_ :: ((Ptr OpaqueJSContext) -> (CDouble -> (IO (Ptr OpaqueJSValue))))

foreign import ccall safe "JSValueMakeString"
  jsvaluemakestring'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSString) -> (IO (Ptr OpaqueJSValue))))

foreign import ccall safe "JSValueMakeFromJSONString"
  jsvaluemakefromjsonstring'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSString) -> (IO (Ptr OpaqueJSValue))))

foreign import ccall safe "JSValueCreateJSONString"
  jsvaluecreatejsonstring'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (CUInt -> ((Ptr JSValueRef) -> (IO (Ptr OpaqueJSString))))))

foreign import ccall safe "JSValueToBoolean"
  jsvaluetoboolean'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO CUChar)))

foreign import ccall safe "JSValueToNumber"
  jsvaluetonumber'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> ((Ptr JSValueRef) -> (IO CDouble))))

foreign import ccall safe "JSValueToStringCopy"
  jsvaluetostringcopy'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> ((Ptr JSValueRef) -> (IO (Ptr OpaqueJSString)))))

foreign import ccall safe "JSValueToObject"
  jsvaluetoobject'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> ((Ptr JSValueRef) -> (IO (Ptr OpaqueJSValue)))))

foreign import ccall safe "JSValueProtect"
  jsvalueprotect'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO ())))

foreign import ccall safe "JSValueUnprotect"
  jsvalueunprotect'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSValue) -> (IO ())))