PythonMonkey   v1.1.1 (dev)
Loading...
Searching...
No Matches
pythonmonkey.cc File Reference

This file defines the pythonmonkey module, along with its various functions. More...

#include "include/modules/pythonmonkey/pythonmonkey.hh"
#include "include/setSpiderMonkeyException.hh"
#include "include/JSFunctionProxy.hh"
#include "include/JSMethodProxy.hh"
#include "include/JSArrayIterProxy.hh"
#include "include/JSArrayProxy.hh"
#include "include/JSObjectIterProxy.hh"
#include "include/JSObjectKeysProxy.hh"
#include "include/JSObjectValuesProxy.hh"
#include "include/JSObjectItemsProxy.hh"
#include "include/JSObjectProxy.hh"
#include "include/JSStringProxy.hh"
#include "include/pyTypeFactory.hh"
#include "include/PyEventLoop.hh"
#include "include/internalBinding.hh"
#include <jsapi.h>
#include <jsfriendapi.h>
#include <js/friend/ErrorMessages.h>
#include <js/friend/DOMProxy.h>
#include <js/CompilationAndEvaluation.h>
#include <js/ContextOptions.h>
#include <js/Class.h>
#include <js/Date.h>
#include <js/Initialization.h>
#include <js/Object.h>
#include <js/Proxy.h>
#include <js/SourceText.h>
#include <js/Symbol.h>
#include <Python.h>
#include <datetime.h>
#include "include/pyshim.hh"
#include <unordered_map>
#include <vector>
#include <cassert>
Include dependency graph for pythonmonkey.cc:

Classes

struct  NullObject
 

Functions

void updateCharBufferPointers ()
 During a GC, string buffers may have moved, so we need to re-point our JSStringProxies The char buffer pointer obtained by previous JS::Get{Latin1,TwoByte}LinearStringChars calls remains valid only as long as no GC occurs.
 
void pythonmonkeyGCCallback (JSContext *cx, JSGCStatus status, JS::GCReason reason, void *data)
 
void nurseryCollectionCallback (JSContext *cx, JS::GCNurseryProgress progress, JS::GCReason reason, void *data)
 
bool functionRegistryCallback (JSContext *cx, unsigned int argc, JS::Value *vp)
 
PyObject * getPythonMonkeyNull ()
 
PyObject * getPythonMonkeyBigInt ()
 
PyMODINIT_FUNC PyInit_pythonmonkey (void)
 Initialization function for the module. Starts the JSContext, creates the global object, and sets cleanup functions.
 

Variables

JS::PersistentRootedObject jsFunctionRegistry
 
PyTypeObject JSObjectProxyType
 Struct for the JSObjectProxyType, used by all JSObjectProxy objects.
 
PyTypeObject JSStringProxyType
 Struct for the JSStringProxyType, used by all JSStringProxy objects.
 
PyTypeObject JSFunctionProxyType
 Struct for the JSFunctionProxyType, used by all JSFunctionProxy objects.
 
PyTypeObject JSMethodProxyType
 Struct for the JSMethodProxyType, used by all JSMethodProxy objects.
 
PyTypeObject JSArrayProxyType
 Struct for the JSArrayProxyType, used by all JSArrayProxy objects.
 
PyTypeObject JSArrayIterProxyType
 Struct for the JSArrayProxyType, used by all JSArrayProxy objects.
 
PyTypeObject JSObjectIterProxyType
 Struct for the JSArrayProxyType, used by all JSArrayProxy objects.
 
PyTypeObject JSObjectKeysProxyType
 Struct for the JSObjectKeysProxyType, used by all JSObjectKeysProxy objects.
 
PyTypeObject JSObjectValuesProxyType
 Struct for the JSObjectValuesProxyType, used by all JSObjectValuesProxy objects.
 
PyTypeObject JSObjectItemsProxyType
 Struct for the JSObjectItemsProxyType, used by all JSObjectItemsProxy objects.
 
PyMethodDef PythonMonkeyMethods []
 Array of method definitions for the pythonmonkey module.
 
struct PyModuleDef pythonmonkey
 Module definition for the pythonmonkey module.
 
PyObject * SpiderMonkeyError = NULL
 PyObject for spidermonkey error type.
 

Detailed Description

This file defines the pythonmonkey module, along with its various functions.

Author
Caleb Aikens (caleb.nosp@m.@dis.nosp@m.tribu.nosp@m.tive.nosp@m..netw.nosp@m.ork) and Philippe Laporte (phili.nosp@m.ppe@.nosp@m.distr.nosp@m.ibut.nosp@m.ive.n.nosp@m.etwo.nosp@m.rk)
Date
2023-03-29

Function Documentation

◆ functionRegistryCallback()

bool functionRegistryCallback ( JSContext *  cx,
unsigned int  argc,
JS::Value *  vp 
)

◆ getPythonMonkeyBigInt()

PyObject * getPythonMonkeyBigInt ( )

◆ getPythonMonkeyNull()

PyObject * getPythonMonkeyNull ( )

◆ nurseryCollectionCallback()

void nurseryCollectionCallback ( JSContext *  cx,
JS::GCNurseryProgress  progress,
JS::GCReason  reason,
void *  data 
)

◆ PyInit_pythonmonkey()

PyMODINIT_FUNC PyInit_pythonmonkey ( void  )

Initialization function for the module. Starts the JSContext, creates the global object, and sets cleanup functions.

Returns
PyObject* - The module object to be passed to the python user

◆ pythonmonkeyGCCallback()

void pythonmonkeyGCCallback ( JSContext *  cx,
JSGCStatus  status,
JS::GCReason  reason,
void *  data 
)

◆ updateCharBufferPointers()

void updateCharBufferPointers ( )

During a GC, string buffers may have moved, so we need to re-point our JSStringProxies The char buffer pointer obtained by previous JS::Get{Latin1,TwoByte}LinearStringChars calls remains valid only as long as no GC occurs.

Variable Documentation

◆ JSArrayIterProxyType

PyTypeObject JSArrayIterProxyType
Initial value:
= {
.ob_base = PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = PyListIter_Type.tp_name,
.tp_basicsize = sizeof(JSArrayIterProxy),
.tp_itemsize = 0,
.tp_getattro = PyObject_GenericGetAttr,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
.tp_doc = PyDoc_STR("Javascript Array proxy iterator"),
.tp_methods = JSArrayIterProxy_methods,
.tp_base = &PyListIter_Type
}
static PyObject * JSArrayIterProxy_next(JSArrayIterProxy *self)
.tp_next method
Definition JSArrayIterProxy.cc:47
static void JSArrayIterProxy_dealloc(JSArrayIterProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSObject before freeing th...
Definition JSArrayIterProxy.cc:25
static int JSArrayIterProxy_clear(JSArrayIterProxy *self)
.tp_clear method
Definition JSArrayIterProxy.cc:37
static PyObject * JSArrayIterProxy_iter(JSArrayIterProxy *self)
.tp_iter method
Definition JSArrayIterProxy.cc:42
static int JSArrayIterProxy_traverse(JSArrayIterProxy *self, visitproc visit, void *arg)
.tp_traverse method
Definition JSArrayIterProxy.cc:32
The typedef for the backing store that will be used by JSArrayIterProxy objects.
Definition JSArrayIterProxy.hh:33

Struct for the JSArrayProxyType, used by all JSArrayProxy objects.

◆ JSArrayProxyType

PyTypeObject JSArrayProxyType
Initial value:
= {
.ob_base = PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = PyList_Type.tp_name,
.tp_basicsize = sizeof(JSArrayProxy),
.tp_itemsize = 0,
.tp_as_sequence = &JSArrayProxy_sequence_methods,
.tp_as_mapping = &JSArrayProxy_mapping_methods,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_LIST_SUBCLASS | Py_TPFLAGS_HAVE_GC,
.tp_doc = PyDoc_STR("Javascript Array proxy list"),
.tp_methods = JSArrayProxy_methods,
.tp_base = &PyList_Type
}
static PyObject * JSArrayProxy_get(JSArrayProxy *self, PyObject *key)
returns a value from the JSArrayProxy given a key, or dispatches to the given key method if such meth...
Definition JSArrayProxy.cc:56
static PyObject * JSArrayProxy_repr(JSArrayProxy *self)
Compute a string representation of the JSArrayProxy.
Definition JSArrayProxy.cc:514
static PyObject * JSArrayProxy_richcompare(JSArrayProxy *self, PyObject *other, int op)
Comparison method (.tp_richcompare), returns appropriate boolean given a comparison operator and othe...
Definition JSArrayProxy.cc:417
static void JSArrayProxy_dealloc(JSArrayProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSObject before freeing th...
Definition JSArrayProxy.cc:29
static PyObject * JSArrayProxy_iter(JSArrayProxy *self)
Return an iterator object to make JSArrayProxy iterable.
Definition JSArrayProxy.cc:582
static int JSArrayProxy_clear(JSArrayProxy *self)
tp_clear
Definition JSArrayProxy.cc:43
static int JSArrayProxy_traverse(JSArrayProxy *self, visitproc visit, void *arg)
tp_traverse
Definition JSArrayProxy.cc:37
The typedef for the backing store that will be used by JSArrayProxy objects. All it contains is a poi...
Definition JSArrayProxy.hh:25

Struct for the JSArrayProxyType, used by all JSArrayProxy objects.

◆ JSFunctionProxyType

PyTypeObject JSFunctionProxyType
Initial value:
= {
.ob_base = PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = "pythonmonkey.JSFunctionProxy",
.tp_basicsize = sizeof(JSFunctionProxy),
.tp_flags = Py_TPFLAGS_DEFAULT,
.tp_doc = PyDoc_STR("Javascript Function proxy object"),
}
static PyObject * JSFunctionProxy_call(PyObject *self, PyObject *args, PyObject *kwargs)
Call method (.tp_call), called when the JSFunctionProxy is called.
Definition JSFunctionProxy.cc:35
static PyObject * JSFunctionProxy_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
New method (.tp_new), creates a new instance of the JSFunctionProxy type, exposed as the new() method...
Definition JSFunctionProxy.cc:27
static void JSFunctionProxy_dealloc(JSFunctionProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSFunction before freeing ...
Definition JSFunctionProxy.cc:22
The typedef for the backing store that will be used by JSFunctionProxy objects. All it contains is a ...
Definition JSFunctionProxy.hh:21

Struct for the JSFunctionProxyType, used by all JSFunctionProxy objects.

◆ jsFunctionRegistry

JS::PersistentRootedObject jsFunctionRegistry

// this is a FinalizationRegistry for JSFunctions that depend on Python functions. It is used to handle reference counts when the JSFunction is finalized

◆ JSMethodProxyType

PyTypeObject JSMethodProxyType
Initial value:
= {
.ob_base = PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = "pythonmonkey.JSMethodProxy",
.tp_basicsize = sizeof(JSMethodProxy),
.tp_flags = Py_TPFLAGS_DEFAULT,
.tp_doc = PyDoc_STR("Javascript Method proxy object"),
}
static void JSMethodProxy_dealloc(JSMethodProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSFunction before freeing ...
Definition JSMethodProxy.cc:22
static PyObject * JSMethodProxy_call(PyObject *self, PyObject *args, PyObject *kwargs)
Call method (.tp_call), called when the JSMethodProxy is called, properly handling self and this
Definition JSMethodProxy.cc:46
static PyObject * JSMethodProxy_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
New method (.tp_new), creates a new instance of the JSMethodProxy type, exposed as the new() method i...
Definition JSMethodProxy.cc:28
The typedef for the backing store that will be used by JSMethodProxy objects. All it contains is a po...
Definition JSMethodProxy.hh:23

Struct for the JSMethodProxyType, used by all JSMethodProxy objects.

◆ JSObjectItemsProxyType

PyTypeObject JSObjectItemsProxyType
Initial value:
= {
.ob_base = PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = PyDictKeys_Type.tp_name,
.tp_basicsize = sizeof(JSObjectItemsProxy),
.tp_itemsize = 0,
.tp_as_sequence = &JSObjectItemsProxy_sequence_methods,
.tp_getattro = PyObject_GenericGetAttr,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
.tp_doc = PyDoc_STR("Javascript Object Items proxy"),
.tp_methods = JSObjectItemsProxy_methods,
.tp_getset = JSObjectItemsProxy_getset,
.tp_base = &PyDictKeys_Type
}
static PyObject * JSObjectItemsProxy_iter(JSObjectItemsProxy *self)
Return an iterator object to make JSObjectItemsProxy iterable, emitting (key, value) tuples.
Definition JSObjectItemsProxy.cc:53
static PyObject * JSObjectItemsProxy_repr(JSObjectItemsProxy *self)
Compute a string representation of the JSObjectItemsProxy.
Definition JSObjectItemsProxy.cc:91
static int JSObjectItemsProxy_traverse(JSObjectItemsProxy *self, visitproc visit, void *arg)
.tp_traverse method
Definition JSObjectItemsProxy.cc:43
static void JSObjectItemsProxy_dealloc(JSObjectItemsProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSObject before freeing th...
Definition JSObjectItemsProxy.cc:28
static int JSObjectItemsProxy_clear(JSObjectItemsProxy *self)
.tp_clear method
Definition JSObjectItemsProxy.cc:48
The typedef for the backing store that will be used by JSObjectItemsProxy objects.
Definition JSObjectItemsProxy.hh:24

Struct for the JSObjectItemsProxyType, used by all JSObjectItemsProxy objects.

◆ JSObjectIterProxyType

PyTypeObject JSObjectIterProxyType
Initial value:
= {
.ob_base = PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = PyDictIterKey_Type.tp_name,
.tp_basicsize = sizeof(JSObjectIterProxy),
.tp_itemsize = 0,
.tp_getattro = PyObject_GenericGetAttr,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
.tp_doc = PyDoc_STR("Javascript Object proxy key iterator"),
.tp_methods = JSObjectIterProxy_methods,
.tp_base = &PyDictIterKey_Type
}
static int JSObjectIterProxy_clear(JSObjectIterProxy *self)
.tp_clear method
Definition JSObjectIterProxy.cc:42
static PyObject * JSObjectIterProxy_nextkey(JSObjectIterProxy *self)
.tp_next method
Definition JSObjectIterProxy.cc:52
static void JSObjectIterProxy_dealloc(JSObjectIterProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSObject before freeing th...
Definition JSObjectIterProxy.cc:29
static PyObject * JSObjectIterProxy_iter(JSObjectIterProxy *self)
.tp_iter method
Definition JSObjectIterProxy.cc:47
static int JSObjectIterProxy_traverse(JSObjectIterProxy *self, visitproc visit, void *arg)
.tp_traverse method
Definition JSObjectIterProxy.cc:37
Definition JSObjectIterProxy.hh:39

Struct for the JSArrayProxyType, used by all JSArrayProxy objects.

◆ JSObjectKeysProxyType

PyTypeObject JSObjectKeysProxyType
Initial value:
= {
.ob_base = PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = PyDictKeys_Type.tp_name,
.tp_basicsize = sizeof(JSObjectKeysProxy),
.tp_itemsize = 0,
.tp_as_number = &JSObjectKeysProxy_number_methods,
.tp_as_sequence = &JSObjectKeysProxy_sequence_methods,
.tp_getattro = PyObject_GenericGetAttr,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
.tp_doc = PyDoc_STR("Javascript Object Keys proxy"),
.tp_methods = JSObjectKeysProxy_methods,
.tp_getset = JSObjectKeysProxy_getset,
.tp_base = &PyDictKeys_Type
}
static PyObject * JSObjectKeysProxy_repr(JSObjectKeysProxy *self)
Compute a string representation of the JSObjectKeysProxy.
Definition JSObjectKeysProxy.cc:201
static void JSObjectKeysProxy_dealloc(JSObjectKeysProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSObject before freeing th...
Definition JSObjectKeysProxy.cc:27
static int JSObjectKeysProxy_traverse(JSObjectKeysProxy *self, visitproc visit, void *arg)
.tp_traverse method
Definition JSObjectKeysProxy.cc:50
static int JSObjectKeysProxy_clear(JSObjectKeysProxy *self)
.tp_clear method
Definition JSObjectKeysProxy.cc:55
static PyObject * JSObjectKeysProxy_iter(JSObjectKeysProxy *self)
Return an iterator object to make JSObjectKeysProxy iterable, emitting (key, value) tuples.
Definition JSObjectKeysProxy.cc:163
static PyObject * JSObjectKeysProxy_richcompare(JSObjectKeysProxy *self, PyObject *other, int op)
Comparison method (.tp_richcompare), returns appropriate boolean given a comparison operator and othe...
Definition JSObjectKeysProxy.cc:91
The typedef for the backing store that will be used by JSObjectKeysProxy objects.
Definition JSObjectKeysProxy.hh:24

Struct for the JSObjectKeysProxyType, used by all JSObjectKeysProxy objects.

◆ JSObjectProxyType

PyTypeObject JSObjectProxyType
Initial value:
= {
.ob_base = PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = PyDict_Type.tp_name,
.tp_basicsize = sizeof(JSObjectProxy),
.tp_itemsize = 0,
.tp_as_number = &JSObjectProxy_number_methods,
.tp_as_sequence = &JSObjectProxy_sequence_methods,
.tp_as_mapping = &JSObjectProxy_mapping_methods,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DICT_SUBCLASS | Py_TPFLAGS_HAVE_GC,
.tp_doc = PyDoc_STR("Javascript Object proxy dict"),
.tp_methods = JSObjectProxy_methods,
.tp_base = &PyDict_Type
}
static PyObject * JSObjectProxy_repr(JSObjectProxy *self)
Compute a string representation of the JSObjectProxy.
Definition JSObjectProxy.cc:345
static PyObject * JSObjectProxy_iter(JSObjectProxy *self)
Return an iterator object to make JSObjectProxy iterable, emitting (key, value) tuples.
Definition JSObjectProxy.cc:288
static PyObject * JSObjectProxy_iter_next(JSObjectProxy *self)
Implements next operator function.
Definition JSObjectProxy.cc:308
static void JSObjectProxy_dealloc(JSObjectProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSObject before freeing th...
Definition JSObjectProxy.cc:52
static int JSObjectProxy_clear(JSObjectProxy *self)
tp_clear
Definition JSObjectProxy.cc:66
static PyObject * JSObjectProxy_richcompare(JSObjectProxy *self, PyObject *other, int op)
Comparison method (.tp_richcompare), returns appropriate boolean given a comparison operator and othe...
Definition JSObjectProxy.cc:202
static PyObject * JSObjectProxy_get(JSObjectProxy *self, PyObject *key)
Getter method, returns a value from the JSObjectProxy given a key, used by several built-in python me...
Definition JSObjectProxy.cc:145
static int JSObjectProxy_traverse(JSObjectProxy *self, visitproc visit, void *arg)
tp_traverse
Definition JSObjectProxy.cc:60
static int JSObjectProxy_assign(JSObjectProxy *self, PyObject *key, PyObject *value)
Assign method (.mp_ass_subscript), assigns a key-value pair if value is non-NULL, or deletes a key-va...
Definition JSObjectProxy.cc:189
The typedef for the backing store that will be used by JSObjectProxy objects. All it contains is a po...
Definition JSObjectProxy.hh:25

Struct for the JSObjectProxyType, used by all JSObjectProxy objects.

◆ JSObjectValuesProxyType

PyTypeObject JSObjectValuesProxyType
Initial value:
= {
.ob_base = PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = PyDictValues_Type.tp_name,
.tp_basicsize = sizeof(JSObjectValuesProxy),
.tp_itemsize = 0,
.tp_as_sequence = &JSObjectValuesProxy_sequence_methods,
.tp_getattro = PyObject_GenericGetAttr,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
.tp_doc = PyDoc_STR("Javascript Object Values proxy"),
.tp_methods = JSObjectValuesProxy_methods,
.tp_getset = JSObjectValuesProxy_getset,
.tp_base = &PyDictValues_Type
}
static void JSObjectValuesProxy_dealloc(JSObjectValuesProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSObject before freeing th...
Definition JSObjectValuesProxy.cc:27
static int JSObjectValuesProxy_clear(JSObjectValuesProxy *self)
.tp_clear method
Definition JSObjectValuesProxy.cc:55
static int JSObjectValuesProxy_traverse(JSObjectValuesProxy *self, visitproc visit, void *arg)
.tp_traverse method
Definition JSObjectValuesProxy.cc:50
static PyObject * JSObjectValuesProxy_iter(JSObjectValuesProxy *self)
Return an iterator object to make JSObjectValuesProxy iterable, emitting (key, value) tuples.
Definition JSObjectValuesProxy.cc:91
static PyObject * JSObjectValuesProxy_repr(JSObjectValuesProxy *self)
Compute a string representation of the JSObjectValuesProxy.
Definition JSObjectValuesProxy.cc:129
The typedef for the backing store that will be used by JSObjectValuesProxy objects.
Definition JSObjectValuesProxy.hh:24

Struct for the JSObjectValuesProxyType, used by all JSObjectValuesProxy objects.

◆ JSStringProxyType

PyTypeObject JSStringProxyType
Initial value:
= {
.tp_name = PyUnicode_Type.tp_name,
.tp_basicsize = sizeof(JSStringProxy),
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_UNICODE_SUBCLASS,
.tp_doc = PyDoc_STR("Javascript String proxy"),
.tp_methods = JSStringProxy_methods,
.tp_base = &PyUnicode_Type
}
static void JSStringProxy_dealloc(JSStringProxy *self)
Deallocation method (.tp_dealloc), removes the reference to the underlying JSString before freeing th...
Definition JSStringProxy.cc:19
The typedef for the backing store that will be used by JSStringProxy objects. All it contains is a po...
Definition JSStringProxy.hh:24

Struct for the JSStringProxyType, used by all JSStringProxy objects.

◆ pythonmonkey

struct PyModuleDef pythonmonkey
Initial value:
=
{
PyModuleDef_HEAD_INIT,
"pythonmonkey",
"A module for python to JS interoperability",
-1,
}
PyMethodDef PythonMonkeyMethods[]
Array of method definitions for the pythonmonkey module.
Definition pythonmonkey.cc:538

Module definition for the pythonmonkey module.

◆ PythonMonkeyMethods

PyMethodDef PythonMonkeyMethods[]
Initial value:
= {
{"eval", eval, METH_VARARGS, "Javascript evaluator in Python"},
{"wait", waitForEventLoop, METH_NOARGS, "The event-loop shield. Blocks until all asynchronous jobs finish."},
{"stop", closeAllPending, METH_NOARGS, "Cancel all pending event-loop jobs."},
{"isCompilableUnit", isCompilableUnit, METH_VARARGS, "Hint if a string might be compilable Javascript"},
{"collect", collect, METH_VARARGS, "Calls the Spidermonkey garbage collector"},
{NULL, NULL, 0, NULL}
}
isCompilableUnit
Definition require.py:78

Array of method definitions for the pythonmonkey module.

◆ SpiderMonkeyError

PyObject* SpiderMonkeyError = NULL

PyObject for spidermonkey error type.