{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.JavaScriptCore.Objects.Context
(
Context(..) ,
IsContext ,
toContext ,
#if defined(ENABLE_OVERLOADING)
ResolveContextMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
ContextCheckSyntaxMethodInfo ,
#endif
contextCheckSyntax ,
#if defined(ENABLE_OVERLOADING)
ContextClearExceptionMethodInfo ,
#endif
contextClearException ,
#if defined(ENABLE_OVERLOADING)
ContextEvaluateMethodInfo ,
#endif
contextEvaluate ,
#if defined(ENABLE_OVERLOADING)
ContextEvaluateInObjectMethodInfo ,
#endif
contextEvaluateInObject ,
#if defined(ENABLE_OVERLOADING)
ContextEvaluateWithSourceUriMethodInfo ,
#endif
contextEvaluateWithSourceUri ,
contextGetCurrent ,
#if defined(ENABLE_OVERLOADING)
ContextGetExceptionMethodInfo ,
#endif
contextGetException ,
#if defined(ENABLE_OVERLOADING)
ContextGetGlobalObjectMethodInfo ,
#endif
contextGetGlobalObject ,
#if defined(ENABLE_OVERLOADING)
ContextGetValueMethodInfo ,
#endif
contextGetValue ,
#if defined(ENABLE_OVERLOADING)
ContextGetVirtualMachineMethodInfo ,
#endif
contextGetVirtualMachine ,
contextNew ,
contextNewWithVirtualMachine ,
#if defined(ENABLE_OVERLOADING)
ContextPopExceptionHandlerMethodInfo ,
#endif
contextPopExceptionHandler ,
#if defined(ENABLE_OVERLOADING)
ContextPushExceptionHandlerMethodInfo ,
#endif
contextPushExceptionHandler ,
#if defined(ENABLE_OVERLOADING)
ContextRegisterClassMethodInfo ,
#endif
contextRegisterClass ,
#if defined(ENABLE_OVERLOADING)
ContextSetValueMethodInfo ,
#endif
contextSetValue ,
#if defined(ENABLE_OVERLOADING)
ContextThrowMethodInfo ,
#endif
contextThrow ,
#if defined(ENABLE_OVERLOADING)
ContextThrowExceptionMethodInfo ,
#endif
contextThrowException ,
#if defined(ENABLE_OVERLOADING)
ContextThrowWithNameMethodInfo ,
#endif
contextThrowWithName ,
#if defined(ENABLE_OVERLOADING)
ContextVirtualMachinePropertyInfo ,
#endif
constructContextVirtualMachine ,
#if defined(ENABLE_OVERLOADING)
contextVirtualMachine ,
#endif
getContextVirtualMachine ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified GI.GLib.Callbacks as GLib.Callbacks
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.JavaScriptCore.Callbacks as JavaScriptCore.Callbacks
import {-# SOURCE #-} qualified GI.JavaScriptCore.Enums as JavaScriptCore.Enums
import {-# SOURCE #-} qualified GI.JavaScriptCore.Objects.Class as JavaScriptCore.Class
import {-# SOURCE #-} qualified GI.JavaScriptCore.Objects.Exception as JavaScriptCore.Exception
import {-# SOURCE #-} qualified GI.JavaScriptCore.Objects.Value as JavaScriptCore.Value
import {-# SOURCE #-} qualified GI.JavaScriptCore.Objects.VirtualMachine as JavaScriptCore.VirtualMachine
import {-# SOURCE #-} qualified GI.JavaScriptCore.Structs.ClassVTable as JavaScriptCore.ClassVTable
newtype Context = Context (SP.ManagedPtr Context)
deriving (Context -> Context -> Bool
(Context -> Context -> Bool)
-> (Context -> Context -> Bool) -> Eq Context
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Context -> Context -> Bool
== :: Context -> Context -> Bool
$c/= :: Context -> Context -> Bool
/= :: Context -> Context -> Bool
Eq)
instance SP.ManagedPtrNewtype Context where
toManagedPtr :: Context -> ManagedPtr Context
toManagedPtr (Context ManagedPtr Context
p) = ManagedPtr Context
p
foreign import ccall "jsc_context_get_type"
c_jsc_context_get_type :: IO B.Types.GType
instance B.Types.TypedObject Context where
glibType :: IO GType
glibType = IO GType
c_jsc_context_get_type
instance B.Types.GObject Context
class (SP.GObject o, O.IsDescendantOf Context o) => IsContext o
instance (SP.GObject o, O.IsDescendantOf Context o) => IsContext o
instance O.HasParentTypes Context
type instance O.ParentTypes Context = '[GObject.Object.Object]
toContext :: (MIO.MonadIO m, IsContext o) => o -> m Context
toContext :: forall (m :: * -> *) o. (MonadIO m, IsContext o) => o -> m Context
toContext = IO Context -> m Context
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Context -> m Context) -> (o -> IO Context) -> o -> m Context
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Context -> Context) -> o -> IO Context
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Context -> Context
Context
instance B.GValue.IsGValue (Maybe Context) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_jsc_context_get_type
gvalueSet_ :: Ptr GValue -> Maybe Context -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Context
P.Nothing = Ptr GValue -> Ptr Context -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Context
forall a. Ptr a
FP.nullPtr :: FP.Ptr Context)
gvalueSet_ Ptr GValue
gv (P.Just Context
obj) = Context -> (Ptr Context -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Context
obj (Ptr GValue -> Ptr Context -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Context)
gvalueGet_ Ptr GValue
gv = do
Ptr Context
ptr <- Ptr GValue -> IO (Ptr Context)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Context)
if Ptr Context
ptr Ptr Context -> Ptr Context -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Context
forall a. Ptr a
FP.nullPtr
then Context -> Maybe Context
forall a. a -> Maybe a
P.Just (Context -> Maybe Context) -> IO Context -> IO (Maybe Context)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Context -> Context) -> Ptr Context -> IO Context
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Context -> Context
Context Ptr Context
ptr
else Maybe Context -> IO (Maybe Context)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Context
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveContextMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveContextMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveContextMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveContextMethod "checkSyntax" o = ContextCheckSyntaxMethodInfo
ResolveContextMethod "clearException" o = ContextClearExceptionMethodInfo
ResolveContextMethod "evaluate" o = ContextEvaluateMethodInfo
ResolveContextMethod "evaluateInObject" o = ContextEvaluateInObjectMethodInfo
ResolveContextMethod "evaluateWithSourceUri" o = ContextEvaluateWithSourceUriMethodInfo
ResolveContextMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveContextMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveContextMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveContextMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveContextMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveContextMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveContextMethod "popExceptionHandler" o = ContextPopExceptionHandlerMethodInfo
ResolveContextMethod "pushExceptionHandler" o = ContextPushExceptionHandlerMethodInfo
ResolveContextMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveContextMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveContextMethod "registerClass" o = ContextRegisterClassMethodInfo
ResolveContextMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveContextMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveContextMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveContextMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveContextMethod "throw" o = ContextThrowMethodInfo
ResolveContextMethod "throwException" o = ContextThrowExceptionMethodInfo
ResolveContextMethod "throwWithName" o = ContextThrowWithNameMethodInfo
ResolveContextMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveContextMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveContextMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveContextMethod "getException" o = ContextGetExceptionMethodInfo
ResolveContextMethod "getGlobalObject" o = ContextGetGlobalObjectMethodInfo
ResolveContextMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveContextMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveContextMethod "getValue" o = ContextGetValueMethodInfo
ResolveContextMethod "getVirtualMachine" o = ContextGetVirtualMachineMethodInfo
ResolveContextMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveContextMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveContextMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveContextMethod "setValue" o = ContextSetValueMethodInfo
ResolveContextMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveContextMethod t Context, O.OverloadedMethod info Context p) => OL.IsLabel t (Context -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveContextMethod t Context, O.OverloadedMethod info Context p, R.HasField t Context p) => R.HasField t Context p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveContextMethod t Context, O.OverloadedMethodInfo info Context) => OL.IsLabel t (O.MethodProxy info Context) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
getContextVirtualMachine :: (MonadIO m, IsContext o) => o -> m JavaScriptCore.VirtualMachine.VirtualMachine
getContextVirtualMachine :: forall (m :: * -> *) o.
(MonadIO m, IsContext o) =>
o -> m VirtualMachine
getContextVirtualMachine o
obj = IO VirtualMachine -> m VirtualMachine
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO VirtualMachine -> m VirtualMachine)
-> IO VirtualMachine -> m VirtualMachine
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe VirtualMachine) -> IO VirtualMachine
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getContextVirtualMachine" (IO (Maybe VirtualMachine) -> IO VirtualMachine)
-> IO (Maybe VirtualMachine) -> IO VirtualMachine
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr VirtualMachine -> VirtualMachine)
-> IO (Maybe VirtualMachine)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"virtual-machine" ManagedPtr VirtualMachine -> VirtualMachine
JavaScriptCore.VirtualMachine.VirtualMachine
constructContextVirtualMachine :: (IsContext o, MIO.MonadIO m, JavaScriptCore.VirtualMachine.IsVirtualMachine a) => a -> m (GValueConstruct o)
constructContextVirtualMachine :: forall o (m :: * -> *) a.
(IsContext o, MonadIO m, IsVirtualMachine a) =>
a -> m (GValueConstruct o)
constructContextVirtualMachine a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"virtual-machine" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)
#if defined(ENABLE_OVERLOADING)
data ContextVirtualMachinePropertyInfo
instance AttrInfo ContextVirtualMachinePropertyInfo where
type AttrAllowedOps ContextVirtualMachinePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint ContextVirtualMachinePropertyInfo = IsContext
type AttrSetTypeConstraint ContextVirtualMachinePropertyInfo = JavaScriptCore.VirtualMachine.IsVirtualMachine
type AttrTransferTypeConstraint ContextVirtualMachinePropertyInfo = JavaScriptCore.VirtualMachine.IsVirtualMachine
type AttrTransferType ContextVirtualMachinePropertyInfo = JavaScriptCore.VirtualMachine.VirtualMachine
type AttrGetType ContextVirtualMachinePropertyInfo = JavaScriptCore.VirtualMachine.VirtualMachine
type AttrLabel ContextVirtualMachinePropertyInfo = "virtual-machine"
type AttrOrigin ContextVirtualMachinePropertyInfo = Context
attrGet = getContextVirtualMachine
attrSet = undefined
attrTransfer _ v = do
unsafeCastTo JavaScriptCore.VirtualMachine.VirtualMachine v
attrConstruct = constructContextVirtualMachine
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.virtualMachine"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#g:attr:virtualMachine"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Context
type instance O.AttributeList Context = ContextAttributeList
type ContextAttributeList = ('[ '("virtualMachine", ContextVirtualMachinePropertyInfo)] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
contextVirtualMachine :: AttrLabelProxy "virtualMachine"
contextVirtualMachine = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Context = ContextSignalList
type ContextSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "jsc_context_new" jsc_context_new ::
IO (Ptr Context)
contextNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Context
contextNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m Context
contextNew = IO Context -> m Context
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Context -> m Context) -> IO Context -> m Context
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
result <- IO (Ptr Context)
jsc_context_new
Text -> Ptr Context -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"contextNew" Ptr Context
result
Context
result' <- ((ManagedPtr Context -> Context) -> Ptr Context -> IO Context
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Context -> Context
Context) Ptr Context
result
Context -> IO Context
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Context
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "jsc_context_new_with_virtual_machine" jsc_context_new_with_virtual_machine ::
Ptr JavaScriptCore.VirtualMachine.VirtualMachine ->
IO (Ptr Context)
contextNewWithVirtualMachine ::
(B.CallStack.HasCallStack, MonadIO m, JavaScriptCore.VirtualMachine.IsVirtualMachine a) =>
a
-> m Context
contextNewWithVirtualMachine :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVirtualMachine a) =>
a -> m Context
contextNewWithVirtualMachine a
vm = IO Context -> m Context
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Context -> m Context) -> IO Context -> m Context
forall a b. (a -> b) -> a -> b
$ do
Ptr VirtualMachine
vm' <- a -> IO (Ptr VirtualMachine)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
vm
Ptr Context
result <- Ptr VirtualMachine -> IO (Ptr Context)
jsc_context_new_with_virtual_machine Ptr VirtualMachine
vm'
Text -> Ptr Context -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"contextNewWithVirtualMachine" Ptr Context
result
Context
result' <- ((ManagedPtr Context -> Context) -> Ptr Context -> IO Context
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Context -> Context
Context) Ptr Context
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
vm
Context -> IO Context
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Context
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "jsc_context_check_syntax" jsc_context_check_syntax ::
Ptr Context ->
CString ->
Int64 ->
CUInt ->
CString ->
Word32 ->
Ptr (Ptr JavaScriptCore.Exception.Exception) ->
IO CUInt
contextCheckSyntax ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> T.Text
-> Int64
-> JavaScriptCore.Enums.CheckSyntaxMode
-> T.Text
-> Word32
-> m ((JavaScriptCore.Enums.CheckSyntaxResult, JavaScriptCore.Exception.Exception))
contextCheckSyntax :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a
-> Text
-> Int64
-> CheckSyntaxMode
-> Text
-> Word32
-> m (CheckSyntaxResult, Exception)
contextCheckSyntax a
context Text
code Int64
length_ CheckSyntaxMode
mode Text
uri Word32
lineNumber = IO (CheckSyntaxResult, Exception)
-> m (CheckSyntaxResult, Exception)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (CheckSyntaxResult, Exception)
-> m (CheckSyntaxResult, Exception))
-> IO (CheckSyntaxResult, Exception)
-> m (CheckSyntaxResult, Exception)
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
CString
code' <- Text -> IO CString
textToCString Text
code
let mode' :: CUInt
mode' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (CheckSyntaxMode -> Int) -> CheckSyntaxMode -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CheckSyntaxMode -> Int
forall a. Enum a => a -> Int
fromEnum) CheckSyntaxMode
mode
CString
uri' <- Text -> IO CString
textToCString Text
uri
Ptr (Ptr Exception)
exception <- IO (Ptr (Ptr Exception))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr JavaScriptCore.Exception.Exception))
CUInt
result <- Ptr Context
-> CString
-> Int64
-> CUInt
-> CString
-> Word32
-> Ptr (Ptr Exception)
-> IO CUInt
jsc_context_check_syntax Ptr Context
context' CString
code' Int64
length_ CUInt
mode' CString
uri' Word32
lineNumber Ptr (Ptr Exception)
exception
let result' :: CheckSyntaxResult
result' = (Int -> CheckSyntaxResult
forall a. Enum a => Int -> a
toEnum (Int -> CheckSyntaxResult)
-> (CUInt -> Int) -> CUInt -> CheckSyntaxResult
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
Ptr Exception
exception' <- Ptr (Ptr Exception) -> IO (Ptr Exception)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Exception)
exception
Exception
exception'' <- ((ManagedPtr Exception -> Exception)
-> Ptr Exception -> IO Exception
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Exception -> Exception
JavaScriptCore.Exception.Exception) Ptr Exception
exception'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
code'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
uri'
Ptr (Ptr Exception) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Exception)
exception
(CheckSyntaxResult, Exception) -> IO (CheckSyntaxResult, Exception)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (CheckSyntaxResult
result', Exception
exception'')
#if defined(ENABLE_OVERLOADING)
data ContextCheckSyntaxMethodInfo
instance (signature ~ (T.Text -> Int64 -> JavaScriptCore.Enums.CheckSyntaxMode -> T.Text -> Word32 -> m ((JavaScriptCore.Enums.CheckSyntaxResult, JavaScriptCore.Exception.Exception))), MonadIO m, IsContext a) => O.OverloadedMethod ContextCheckSyntaxMethodInfo a signature where
overloadedMethod = contextCheckSyntax
instance O.OverloadedMethodInfo ContextCheckSyntaxMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextCheckSyntax",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextCheckSyntax"
})
#endif
foreign import ccall "jsc_context_clear_exception" jsc_context_clear_exception ::
Ptr Context ->
IO ()
contextClearException ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> m ()
contextClearException :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> m ()
contextClearException a
context = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
Ptr Context -> IO ()
jsc_context_clear_exception Ptr Context
context'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ContextClearExceptionMethodInfo
instance (signature ~ (m ()), MonadIO m, IsContext a) => O.OverloadedMethod ContextClearExceptionMethodInfo a signature where
overloadedMethod = contextClearException
instance O.OverloadedMethodInfo ContextClearExceptionMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextClearException",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextClearException"
})
#endif
foreign import ccall "jsc_context_evaluate" jsc_context_evaluate ::
Ptr Context ->
CString ->
Int64 ->
IO (Ptr JavaScriptCore.Value.Value)
contextEvaluate ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> T.Text
-> Int64
-> m JavaScriptCore.Value.Value
contextEvaluate :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> Text -> Int64 -> m Value
contextEvaluate a
context Text
code Int64
length_ = IO Value -> m Value
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Value -> m Value) -> IO Value -> m Value
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
CString
code' <- Text -> IO CString
textToCString Text
code
Ptr Value
result <- Ptr Context -> CString -> Int64 -> IO (Ptr Value)
jsc_context_evaluate Ptr Context
context' CString
code' Int64
length_
Text -> Ptr Value -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"contextEvaluate" Ptr Value
result
Value
result' <- ((ManagedPtr Value -> Value) -> Ptr Value -> IO Value
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Value -> Value
JavaScriptCore.Value.Value) Ptr Value
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
code'
Value -> IO Value
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Value
result'
#if defined(ENABLE_OVERLOADING)
data ContextEvaluateMethodInfo
instance (signature ~ (T.Text -> Int64 -> m JavaScriptCore.Value.Value), MonadIO m, IsContext a) => O.OverloadedMethod ContextEvaluateMethodInfo a signature where
overloadedMethod = contextEvaluate
instance O.OverloadedMethodInfo ContextEvaluateMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextEvaluate",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextEvaluate"
})
#endif
foreign import ccall "jsc_context_evaluate_in_object" jsc_context_evaluate_in_object ::
Ptr Context ->
CString ->
Int64 ->
Ptr () ->
Ptr JavaScriptCore.Class.Class ->
CString ->
Word32 ->
Ptr (Ptr JavaScriptCore.Value.Value) ->
IO (Ptr JavaScriptCore.Value.Value)
contextEvaluateInObject ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a, JavaScriptCore.Class.IsClass b) =>
a
-> T.Text
-> Int64
-> Ptr ()
-> Maybe (b)
-> T.Text
-> Word32
-> m ((JavaScriptCore.Value.Value, JavaScriptCore.Value.Value))
contextEvaluateInObject :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsContext a, IsClass b) =>
a
-> Text
-> Int64
-> Ptr ()
-> Maybe b
-> Text
-> Word32
-> m (Value, Value)
contextEvaluateInObject a
context Text
code Int64
length_ Ptr ()
objectInstance Maybe b
objectClass Text
uri Word32
lineNumber = IO (Value, Value) -> m (Value, Value)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Value, Value) -> m (Value, Value))
-> IO (Value, Value) -> m (Value, Value)
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
CString
code' <- Text -> IO CString
textToCString Text
code
Ptr Class
maybeObjectClass <- case Maybe b
objectClass of
Maybe b
Nothing -> Ptr Class -> IO (Ptr Class)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Class
forall a. Ptr a
nullPtr
Just b
jObjectClass -> do
Ptr Class
jObjectClass' <- b -> IO (Ptr Class)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jObjectClass
Ptr Class -> IO (Ptr Class)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Class
jObjectClass'
CString
uri' <- Text -> IO CString
textToCString Text
uri
Ptr (Ptr Value)
object <- IO (Ptr (Ptr Value))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr JavaScriptCore.Value.Value))
Ptr Value
result <- Ptr Context
-> CString
-> Int64
-> Ptr ()
-> Ptr Class
-> CString
-> Word32
-> Ptr (Ptr Value)
-> IO (Ptr Value)
jsc_context_evaluate_in_object Ptr Context
context' CString
code' Int64
length_ Ptr ()
objectInstance Ptr Class
maybeObjectClass CString
uri' Word32
lineNumber Ptr (Ptr Value)
object
Text -> Ptr Value -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"contextEvaluateInObject" Ptr Value
result
Value
result' <- ((ManagedPtr Value -> Value) -> Ptr Value -> IO Value
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Value -> Value
JavaScriptCore.Value.Value) Ptr Value
result
Ptr Value
object' <- Ptr (Ptr Value) -> IO (Ptr Value)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Value)
object
Value
object'' <- ((ManagedPtr Value -> Value) -> Ptr Value -> IO Value
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Value -> Value
JavaScriptCore.Value.Value) Ptr Value
object'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
objectClass b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
code'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
uri'
Ptr (Ptr Value) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Value)
object
(Value, Value) -> IO (Value, Value)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Value
result', Value
object'')
#if defined(ENABLE_OVERLOADING)
data ContextEvaluateInObjectMethodInfo
instance (signature ~ (T.Text -> Int64 -> Ptr () -> Maybe (b) -> T.Text -> Word32 -> m ((JavaScriptCore.Value.Value, JavaScriptCore.Value.Value))), MonadIO m, IsContext a, JavaScriptCore.Class.IsClass b) => O.OverloadedMethod ContextEvaluateInObjectMethodInfo a signature where
overloadedMethod = contextEvaluateInObject
instance O.OverloadedMethodInfo ContextEvaluateInObjectMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextEvaluateInObject",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextEvaluateInObject"
})
#endif
foreign import ccall "jsc_context_evaluate_with_source_uri" jsc_context_evaluate_with_source_uri ::
Ptr Context ->
CString ->
Int64 ->
CString ->
Word32 ->
IO (Ptr JavaScriptCore.Value.Value)
contextEvaluateWithSourceUri ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> T.Text
-> Int64
-> T.Text
-> Word32
-> m JavaScriptCore.Value.Value
contextEvaluateWithSourceUri :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> Text -> Int64 -> Text -> Word32 -> m Value
contextEvaluateWithSourceUri a
context Text
code Int64
length_ Text
uri Word32
lineNumber = IO Value -> m Value
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Value -> m Value) -> IO Value -> m Value
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
CString
code' <- Text -> IO CString
textToCString Text
code
CString
uri' <- Text -> IO CString
textToCString Text
uri
Ptr Value
result <- Ptr Context
-> CString -> Int64 -> CString -> Word32 -> IO (Ptr Value)
jsc_context_evaluate_with_source_uri Ptr Context
context' CString
code' Int64
length_ CString
uri' Word32
lineNumber
Text -> Ptr Value -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"contextEvaluateWithSourceUri" Ptr Value
result
Value
result' <- ((ManagedPtr Value -> Value) -> Ptr Value -> IO Value
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Value -> Value
JavaScriptCore.Value.Value) Ptr Value
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
code'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
uri'
Value -> IO Value
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Value
result'
#if defined(ENABLE_OVERLOADING)
data ContextEvaluateWithSourceUriMethodInfo
instance (signature ~ (T.Text -> Int64 -> T.Text -> Word32 -> m JavaScriptCore.Value.Value), MonadIO m, IsContext a) => O.OverloadedMethod ContextEvaluateWithSourceUriMethodInfo a signature where
overloadedMethod = contextEvaluateWithSourceUri
instance O.OverloadedMethodInfo ContextEvaluateWithSourceUriMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextEvaluateWithSourceUri",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextEvaluateWithSourceUri"
})
#endif
foreign import ccall "jsc_context_get_exception" jsc_context_get_exception ::
Ptr Context ->
IO (Ptr JavaScriptCore.Exception.Exception)
contextGetException ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> m (Maybe JavaScriptCore.Exception.Exception)
contextGetException :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> m (Maybe Exception)
contextGetException a
context = IO (Maybe Exception) -> m (Maybe Exception)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Exception) -> m (Maybe Exception))
-> IO (Maybe Exception) -> m (Maybe Exception)
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
Ptr Exception
result <- Ptr Context -> IO (Ptr Exception)
jsc_context_get_exception Ptr Context
context'
Maybe Exception
maybeResult <- Ptr Exception
-> (Ptr Exception -> IO Exception) -> IO (Maybe Exception)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Exception
result ((Ptr Exception -> IO Exception) -> IO (Maybe Exception))
-> (Ptr Exception -> IO Exception) -> IO (Maybe Exception)
forall a b. (a -> b) -> a -> b
$ \Ptr Exception
result' -> do
Exception
result'' <- ((ManagedPtr Exception -> Exception)
-> Ptr Exception -> IO Exception
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Exception -> Exception
JavaScriptCore.Exception.Exception) Ptr Exception
result'
Exception -> IO Exception
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Exception
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
Maybe Exception -> IO (Maybe Exception)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Exception
maybeResult
#if defined(ENABLE_OVERLOADING)
data ContextGetExceptionMethodInfo
instance (signature ~ (m (Maybe JavaScriptCore.Exception.Exception)), MonadIO m, IsContext a) => O.OverloadedMethod ContextGetExceptionMethodInfo a signature where
overloadedMethod = contextGetException
instance O.OverloadedMethodInfo ContextGetExceptionMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextGetException",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextGetException"
})
#endif
foreign import ccall "jsc_context_get_global_object" jsc_context_get_global_object ::
Ptr Context ->
IO (Ptr JavaScriptCore.Value.Value)
contextGetGlobalObject ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> m JavaScriptCore.Value.Value
contextGetGlobalObject :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> m Value
contextGetGlobalObject a
context = IO Value -> m Value
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Value -> m Value) -> IO Value -> m Value
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
Ptr Value
result <- Ptr Context -> IO (Ptr Value)
jsc_context_get_global_object Ptr Context
context'
Text -> Ptr Value -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"contextGetGlobalObject" Ptr Value
result
Value
result' <- ((ManagedPtr Value -> Value) -> Ptr Value -> IO Value
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Value -> Value
JavaScriptCore.Value.Value) Ptr Value
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
Value -> IO Value
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Value
result'
#if defined(ENABLE_OVERLOADING)
data ContextGetGlobalObjectMethodInfo
instance (signature ~ (m JavaScriptCore.Value.Value), MonadIO m, IsContext a) => O.OverloadedMethod ContextGetGlobalObjectMethodInfo a signature where
overloadedMethod = contextGetGlobalObject
instance O.OverloadedMethodInfo ContextGetGlobalObjectMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextGetGlobalObject",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextGetGlobalObject"
})
#endif
foreign import ccall "jsc_context_get_value" jsc_context_get_value ::
Ptr Context ->
CString ->
IO (Ptr JavaScriptCore.Value.Value)
contextGetValue ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> T.Text
-> m JavaScriptCore.Value.Value
contextGetValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> Text -> m Value
contextGetValue a
context Text
name = IO Value -> m Value
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Value -> m Value) -> IO Value -> m Value
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
CString
name' <- Text -> IO CString
textToCString Text
name
Ptr Value
result <- Ptr Context -> CString -> IO (Ptr Value)
jsc_context_get_value Ptr Context
context' CString
name'
Text -> Ptr Value -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"contextGetValue" Ptr Value
result
Value
result' <- ((ManagedPtr Value -> Value) -> Ptr Value -> IO Value
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Value -> Value
JavaScriptCore.Value.Value) Ptr Value
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
name'
Value -> IO Value
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Value
result'
#if defined(ENABLE_OVERLOADING)
data ContextGetValueMethodInfo
instance (signature ~ (T.Text -> m JavaScriptCore.Value.Value), MonadIO m, IsContext a) => O.OverloadedMethod ContextGetValueMethodInfo a signature where
overloadedMethod = contextGetValue
instance O.OverloadedMethodInfo ContextGetValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextGetValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextGetValue"
})
#endif
foreign import ccall "jsc_context_get_virtual_machine" jsc_context_get_virtual_machine ::
Ptr Context ->
IO (Ptr JavaScriptCore.VirtualMachine.VirtualMachine)
contextGetVirtualMachine ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> m JavaScriptCore.VirtualMachine.VirtualMachine
contextGetVirtualMachine :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> m VirtualMachine
contextGetVirtualMachine a
context = IO VirtualMachine -> m VirtualMachine
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VirtualMachine -> m VirtualMachine)
-> IO VirtualMachine -> m VirtualMachine
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
Ptr VirtualMachine
result <- Ptr Context -> IO (Ptr VirtualMachine)
jsc_context_get_virtual_machine Ptr Context
context'
Text -> Ptr VirtualMachine -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"contextGetVirtualMachine" Ptr VirtualMachine
result
VirtualMachine
result' <- ((ManagedPtr VirtualMachine -> VirtualMachine)
-> Ptr VirtualMachine -> IO VirtualMachine
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr VirtualMachine -> VirtualMachine
JavaScriptCore.VirtualMachine.VirtualMachine) Ptr VirtualMachine
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
VirtualMachine -> IO VirtualMachine
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return VirtualMachine
result'
#if defined(ENABLE_OVERLOADING)
data ContextGetVirtualMachineMethodInfo
instance (signature ~ (m JavaScriptCore.VirtualMachine.VirtualMachine), MonadIO m, IsContext a) => O.OverloadedMethod ContextGetVirtualMachineMethodInfo a signature where
overloadedMethod = contextGetVirtualMachine
instance O.OverloadedMethodInfo ContextGetVirtualMachineMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextGetVirtualMachine",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextGetVirtualMachine"
})
#endif
foreign import ccall "jsc_context_pop_exception_handler" jsc_context_pop_exception_handler ::
Ptr Context ->
IO ()
contextPopExceptionHandler ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> m ()
contextPopExceptionHandler :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> m ()
contextPopExceptionHandler a
context = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
Ptr Context -> IO ()
jsc_context_pop_exception_handler Ptr Context
context'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ContextPopExceptionHandlerMethodInfo
instance (signature ~ (m ()), MonadIO m, IsContext a) => O.OverloadedMethod ContextPopExceptionHandlerMethodInfo a signature where
overloadedMethod = contextPopExceptionHandler
instance O.OverloadedMethodInfo ContextPopExceptionHandlerMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextPopExceptionHandler",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextPopExceptionHandler"
})
#endif
foreign import ccall "jsc_context_push_exception_handler" jsc_context_push_exception_handler ::
Ptr Context ->
FunPtr JavaScriptCore.Callbacks.C_ExceptionHandler ->
Ptr () ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO ()
contextPushExceptionHandler ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> JavaScriptCore.Callbacks.ExceptionHandler
-> m ()
contextPushExceptionHandler :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> ExceptionHandler -> m ()
contextPushExceptionHandler a
context ExceptionHandler
handler = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
FunPtr C_ExceptionHandler
handler' <- C_ExceptionHandler -> IO (FunPtr C_ExceptionHandler)
JavaScriptCore.Callbacks.mk_ExceptionHandler (Maybe (Ptr (FunPtr C_ExceptionHandler))
-> ExceptionHandler_WithClosures -> C_ExceptionHandler
JavaScriptCore.Callbacks.wrap_ExceptionHandler Maybe (Ptr (FunPtr C_ExceptionHandler))
forall a. Maybe a
Nothing (ExceptionHandler -> ExceptionHandler_WithClosures
JavaScriptCore.Callbacks.drop_closures_ExceptionHandler ExceptionHandler
handler))
let userData :: Ptr ()
userData = FunPtr C_ExceptionHandler -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_ExceptionHandler
handler'
let destroyNotify :: FunPtr (Ptr a -> IO ())
destroyNotify = FunPtr (Ptr a -> IO ())
forall a. FunPtr (Ptr a -> IO ())
SP.safeFreeFunPtrPtr
Ptr Context
-> FunPtr C_ExceptionHandler
-> Ptr ()
-> FunPtr C_DestroyNotify
-> IO ()
jsc_context_push_exception_handler Ptr Context
context' FunPtr C_ExceptionHandler
handler' Ptr ()
userData FunPtr C_DestroyNotify
forall a. FunPtr (Ptr a -> IO ())
destroyNotify
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ContextPushExceptionHandlerMethodInfo
instance (signature ~ (JavaScriptCore.Callbacks.ExceptionHandler -> m ()), MonadIO m, IsContext a) => O.OverloadedMethod ContextPushExceptionHandlerMethodInfo a signature where
overloadedMethod = contextPushExceptionHandler
instance O.OverloadedMethodInfo ContextPushExceptionHandlerMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextPushExceptionHandler",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextPushExceptionHandler"
})
#endif
foreign import ccall "jsc_context_register_class" jsc_context_register_class ::
Ptr Context ->
CString ->
Ptr JavaScriptCore.Class.Class ->
Ptr JavaScriptCore.ClassVTable.ClassVTable ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO (Ptr JavaScriptCore.Class.Class)
contextRegisterClass ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a, JavaScriptCore.Class.IsClass b) =>
a
-> T.Text
-> Maybe (b)
-> Maybe (JavaScriptCore.ClassVTable.ClassVTable)
-> Maybe (GLib.Callbacks.DestroyNotify)
-> m JavaScriptCore.Class.Class
contextRegisterClass :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsContext a, IsClass b) =>
a
-> Text
-> Maybe b
-> Maybe ClassVTable
-> Maybe C_DestroyNotify
-> m Class
contextRegisterClass a
context Text
name Maybe b
parentClass Maybe ClassVTable
vtable Maybe C_DestroyNotify
destroyNotify = IO Class -> m Class
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Class -> m Class) -> IO Class -> m Class
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
CString
name' <- Text -> IO CString
textToCString Text
name
Ptr Class
maybeParentClass <- case Maybe b
parentClass of
Maybe b
Nothing -> Ptr Class -> IO (Ptr Class)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Class
forall a. Ptr a
nullPtr
Just b
jParentClass -> do
Ptr Class
jParentClass' <- b -> IO (Ptr Class)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jParentClass
Ptr Class -> IO (Ptr Class)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Class
jParentClass'
Ptr ClassVTable
maybeVtable <- case Maybe ClassVTable
vtable of
Maybe ClassVTable
Nothing -> Ptr ClassVTable -> IO (Ptr ClassVTable)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ClassVTable
forall a. Ptr a
nullPtr
Just ClassVTable
jVtable -> do
Ptr ClassVTable
jVtable' <- ClassVTable -> IO (Ptr ClassVTable)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ClassVTable
jVtable
Ptr ClassVTable -> IO (Ptr ClassVTable)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ClassVTable
jVtable'
FunPtr C_DestroyNotify
maybeDestroyNotify <- case Maybe C_DestroyNotify
destroyNotify of
Maybe C_DestroyNotify
Nothing -> FunPtr C_DestroyNotify -> IO (FunPtr C_DestroyNotify)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Ptr Any -> FunPtr C_DestroyNotify
forall a b. Ptr a -> FunPtr b
castPtrToFunPtr Ptr Any
forall a. Ptr a
nullPtr)
Just C_DestroyNotify
jDestroyNotify -> do
Ptr (FunPtr C_DestroyNotify)
ptrdestroyNotify <- IO (Ptr (FunPtr C_DestroyNotify))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (FunPtr GLib.Callbacks.C_DestroyNotify))
FunPtr C_DestroyNotify
jDestroyNotify' <- C_DestroyNotify -> IO (FunPtr C_DestroyNotify)
GLib.Callbacks.mk_DestroyNotify (Maybe (Ptr (FunPtr C_DestroyNotify))
-> C_DestroyNotify -> C_DestroyNotify
GLib.Callbacks.wrap_DestroyNotify (Ptr (FunPtr C_DestroyNotify)
-> Maybe (Ptr (FunPtr C_DestroyNotify))
forall a. a -> Maybe a
Just Ptr (FunPtr C_DestroyNotify)
ptrdestroyNotify) C_DestroyNotify
jDestroyNotify)
Ptr (FunPtr C_DestroyNotify) -> FunPtr C_DestroyNotify -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr (FunPtr C_DestroyNotify)
ptrdestroyNotify FunPtr C_DestroyNotify
jDestroyNotify'
FunPtr C_DestroyNotify -> IO (FunPtr C_DestroyNotify)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return FunPtr C_DestroyNotify
jDestroyNotify'
Ptr Class
result <- Ptr Context
-> CString
-> Ptr Class
-> Ptr ClassVTable
-> FunPtr C_DestroyNotify
-> IO (Ptr Class)
jsc_context_register_class Ptr Context
context' CString
name' Ptr Class
maybeParentClass Ptr ClassVTable
maybeVtable FunPtr C_DestroyNotify
maybeDestroyNotify
Text -> Ptr Class -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"contextRegisterClass" Ptr Class
result
Class
result' <- ((ManagedPtr Class -> Class) -> Ptr Class -> IO Class
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Class -> Class
JavaScriptCore.Class.Class) Ptr Class
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
parentClass b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Maybe ClassVTable -> (ClassVTable -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe ClassVTable
vtable ClassVTable -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
name'
Class -> IO Class
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Class
result'
#if defined(ENABLE_OVERLOADING)
data ContextRegisterClassMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> Maybe (JavaScriptCore.ClassVTable.ClassVTable) -> Maybe (GLib.Callbacks.DestroyNotify) -> m JavaScriptCore.Class.Class), MonadIO m, IsContext a, JavaScriptCore.Class.IsClass b) => O.OverloadedMethod ContextRegisterClassMethodInfo a signature where
overloadedMethod = contextRegisterClass
instance O.OverloadedMethodInfo ContextRegisterClassMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextRegisterClass",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextRegisterClass"
})
#endif
foreign import ccall "jsc_context_set_value" jsc_context_set_value ::
Ptr Context ->
CString ->
Ptr JavaScriptCore.Value.Value ->
IO ()
contextSetValue ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a, JavaScriptCore.Value.IsValue b) =>
a
-> T.Text
-> b
-> m ()
contextSetValue :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsContext a, IsValue b) =>
a -> Text -> b -> m ()
contextSetValue a
context Text
name b
value = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
CString
name' <- Text -> IO CString
textToCString Text
name
Ptr Value
value' <- b -> IO (Ptr Value)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
value
Ptr Context -> CString -> Ptr Value -> IO ()
jsc_context_set_value Ptr Context
context' CString
name' Ptr Value
value'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
value
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
name'
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ContextSetValueMethodInfo
instance (signature ~ (T.Text -> b -> m ()), MonadIO m, IsContext a, JavaScriptCore.Value.IsValue b) => O.OverloadedMethod ContextSetValueMethodInfo a signature where
overloadedMethod = contextSetValue
instance O.OverloadedMethodInfo ContextSetValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextSetValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextSetValue"
})
#endif
foreign import ccall "jsc_context_throw" jsc_context_throw ::
Ptr Context ->
CString ->
IO ()
contextThrow ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> T.Text
-> m ()
contextThrow :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> Text -> m ()
contextThrow a
context Text
errorMessage = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
CString
errorMessage' <- Text -> IO CString
textToCString Text
errorMessage
Ptr Context -> CString -> IO ()
jsc_context_throw Ptr Context
context' CString
errorMessage'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
errorMessage'
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ContextThrowMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsContext a) => O.OverloadedMethod ContextThrowMethodInfo a signature where
overloadedMethod = contextThrow
instance O.OverloadedMethodInfo ContextThrowMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextThrow",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextThrow"
})
#endif
foreign import ccall "jsc_context_throw_exception" jsc_context_throw_exception ::
Ptr Context ->
Ptr JavaScriptCore.Exception.Exception ->
IO ()
contextThrowException ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a, JavaScriptCore.Exception.IsException b) =>
a
-> b
-> m ()
contextThrowException :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsContext a, IsException b) =>
a -> b -> m ()
contextThrowException a
context b
exception = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
Ptr Exception
exception' <- b -> IO (Ptr Exception)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
exception
Ptr Context -> Ptr Exception -> IO ()
jsc_context_throw_exception Ptr Context
context' Ptr Exception
exception'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
exception
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ContextThrowExceptionMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsContext a, JavaScriptCore.Exception.IsException b) => O.OverloadedMethod ContextThrowExceptionMethodInfo a signature where
overloadedMethod = contextThrowException
instance O.OverloadedMethodInfo ContextThrowExceptionMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextThrowException",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextThrowException"
})
#endif
foreign import ccall "jsc_context_throw_with_name" jsc_context_throw_with_name ::
Ptr Context ->
CString ->
CString ->
IO ()
contextThrowWithName ::
(B.CallStack.HasCallStack, MonadIO m, IsContext a) =>
a
-> T.Text
-> T.Text
-> m ()
contextThrowWithName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsContext a) =>
a -> Text -> Text -> m ()
contextThrowWithName a
context Text
errorName Text
errorMessage = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
context' <- a -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
context
CString
errorName' <- Text -> IO CString
textToCString Text
errorName
CString
errorMessage' <- Text -> IO CString
textToCString Text
errorMessage
Ptr Context -> CString -> CString -> IO ()
jsc_context_throw_with_name Ptr Context
context' CString
errorName' CString
errorMessage'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
context
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
errorName'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
errorMessage'
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ContextThrowWithNameMethodInfo
instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m, IsContext a) => O.OverloadedMethod ContextThrowWithNameMethodInfo a signature where
overloadedMethod = contextThrowWithName
instance O.OverloadedMethodInfo ContextThrowWithNameMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.JavaScriptCore.Objects.Context.contextThrowWithName",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-javascriptcore-4.0.27/docs/GI-JavaScriptCore-Objects-Context.html#v:contextThrowWithName"
})
#endif
foreign import ccall "jsc_context_get_current" jsc_context_get_current ::
IO (Ptr Context)
contextGetCurrent ::
(B.CallStack.HasCallStack, MonadIO m) =>
m (Maybe Context)
contextGetCurrent :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
m (Maybe Context)
contextGetCurrent = IO (Maybe Context) -> m (Maybe Context)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Context) -> m (Maybe Context))
-> IO (Maybe Context) -> m (Maybe Context)
forall a b. (a -> b) -> a -> b
$ do
Ptr Context
result <- IO (Ptr Context)
jsc_context_get_current
Maybe Context
maybeResult <- Ptr Context -> (Ptr Context -> IO Context) -> IO (Maybe Context)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Context
result ((Ptr Context -> IO Context) -> IO (Maybe Context))
-> (Ptr Context -> IO Context) -> IO (Maybe Context)
forall a b. (a -> b) -> a -> b
$ \Ptr Context
result' -> do
Context
result'' <- ((ManagedPtr Context -> Context) -> Ptr Context -> IO Context
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Context -> Context
Context) Ptr Context
result'
Context -> IO Context
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Context
result''
Maybe Context -> IO (Maybe Context)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Context
maybeResult
#if defined(ENABLE_OVERLOADING)
#endif