-- GENERATED by C->Haskell Compiler, version 0.13.11 (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/JSBase.chs" #-}

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

import Foreign.Ptr 
import Foreign.C.Types 
import Debug.Trace

-- #include <stdbool.h>

-- | conversion from CInt to Bool 
--   strangely, n often becomes -256 for False
getBool :: CUChar -> Bool --  CInt -> Bool 
getBool n | n == 1 = True 
          | otherwise = False 

setBool :: Bool -> CUChar -- CInt 
setBool True = 1
setBool False = 0

data OpaqueJSContextGroup 
type JSContextGroupRef = Ptr (OpaqueJSContextGroup) 

data OpaqueJSContext 
type JSContextRef = Ptr (OpaqueJSContext)
{-# LINE 25 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}
type JSGlobalContextRef = Ptr (OpaqueJSContext)
{-# LINE 26 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}

data OpaqueJSString 
type JSStringRef = Ptr (OpaqueJSString)
{-# LINE 29 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}

data OpaqueJSClass
type JSClassRef = Ptr (OpaqueJSClass)
{-# LINE 32 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}

data OpaqueJSPropertyNameArray
type JSPropertyNameArrayRef = Ptr (OpaqueJSPropertyNameArray)
{-# LINE 35 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}

data OpaqueJSPropertyNameAccumulator 
type JSPropertyNameAccumulatorRef = Ptr (OpaqueJSPropertyNameAccumulator)
{-# LINE 38 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}

data OpaqueJSValue 
type JSValueRef = Ptr (OpaqueJSValue)
{-# LINE 41 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}
type JSObjectRef = Ptr (OpaqueJSValue)
{-# LINE 42 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}

type JSValueRefRef = Ptr (JSValueRef)
{-# LINE 44 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}
type JSStringRefRef = Ptr (JSStringRef)
{-# LINE 45 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}


jsevaluatescript :: JSContextRef -> JSStringRef -> JSObjectRef -> JSStringRef -> Int -> JSValueRefRef -> IO (JSValueRef)
jsevaluatescript a1 a2 a3 a4 a5 a6 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  let {a4' = id a4} in 
  let {a5' = fromIntegral a5} in 
  let {a6' = id a6} in 
  jsevaluatescript'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  let {res' = id res} in
  return (res')
{-# LINE 48 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}
 
jscheckscriptsyntax :: JSContextRef -> JSStringRef -> JSStringRef -> Int -> JSValueRefRef -> IO (Bool)
jscheckscriptsyntax a1 a2 a3 a4 a5 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  let {a4' = fromIntegral a4} in 
  let {a5' = id a5} in 
  jscheckscriptsyntax'_ a1' a2' a3' a4' a5' >>= \res ->
  let {res' = getBool res} in
  return (res')
{-# LINE 50 "src/Graphics/UI/Gtk/WebKit/JavaScriptCore/JSBase.chs" #-}

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





foreign import ccall safe "JSEvaluateScript"
  jsevaluatescript'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSString) -> ((Ptr OpaqueJSValue) -> ((Ptr OpaqueJSString) -> (CInt -> ((Ptr JSValueRef) -> (IO (Ptr OpaqueJSValue))))))))

foreign import ccall safe "JSCheckScriptSyntax"
  jscheckscriptsyntax'_ :: ((Ptr OpaqueJSContext) -> ((Ptr OpaqueJSString) -> ((Ptr OpaqueJSString) -> (CInt -> ((Ptr JSValueRef) -> (IO CUChar))))))

foreign import ccall safe "JSGarbageCollect"
  jsgarbagecollect'_ :: ((Ptr OpaqueJSContext) -> (IO ()))