aboutsummaryrefslogtreecommitdiff
path: root/Lib/javascript/jsc/javascriptinit.swg
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/javascript/jsc/javascriptinit.swg')
-rw-r--r--Lib/javascript/jsc/javascriptinit.swg57
1 files changed, 51 insertions, 6 deletions
diff --git a/Lib/javascript/jsc/javascriptinit.swg b/Lib/javascript/jsc/javascriptinit.swg
index a32ba336c..b0138b39a 100644
--- a/Lib/javascript/jsc/javascriptinit.swg
+++ b/Lib/javascript/jsc/javascriptinit.swg
@@ -1,14 +1,59 @@
%insert(init) %{
SWIGRUNTIME void
-SWIG_JSC_SetModule(swig_module_info *swig_module) {}
+SWIG_JSC_SetModule(JSGlobalContextRef context, swig_module_info *swig_module) {
+ JSObjectRef globalObject;
+ JSStringRef moduleName;
+ JSClassDefinition classDef;
+ JSClassRef classRef;
+ JSObjectRef object;
+ if(context == 0){
+ return;
+ }
+
+ globalObject = JSContextGetGlobalObject(context);
+ moduleName = JSStringCreateWithUTF8CString("swig_module_info_data");
+
+ classDef = kJSClassDefinitionEmpty;
+ classRef = JSClassCreate(&classDef);
+
+ object = JSObjectMake(context, classRef, NULL);
+ JSObjectSetPrivate(object, (void*)swig_module);
+
+ JSObjectSetProperty(context, globalObject, moduleName, object, kJSPropertyAttributeNone, NULL);
+
+ JSClassRelease(classRef);
+ JSStringRelease(moduleName);
+}
SWIGRUNTIME swig_module_info *
-SWIG_JSC_GetModule(void) {
- return 0;
+SWIG_JSC_GetModule(JSGlobalContextRef context) {
+ JSObjectRef globalObject;
+ JSStringRef moduleName;
+ JSValueRef value;
+ JSObjectRef object;
+
+ if(context == 0){
+ return 0;
+ }
+
+ globalObject = JSContextGetGlobalObject(context);
+ moduleName = JSStringCreateWithUTF8CString("swig_module_info_data");
+
+ if(JSObjectHasProperty(context, globalObject, moduleName) == false) {
+ JSStringRelease(moduleName);
+ return 0;
+ }
+
+ value = JSObjectGetProperty(context, globalObject, moduleName, NULL);
+ object = JSValueToObject(context, value, NULL);
+ JSStringRelease(moduleName);
+
+ return (swig_module_info*)JSObjectGetPrivate(object);
}
-#define SWIG_GetModule(clientdata) SWIG_JSC_GetModule()
-#define SWIG_SetModule(clientdata, pointer) SWIG_JSC_SetModule(pointer)
+#define SWIG_GetModule(clientdata) SWIG_JSC_GetModule(clientdata)
+#define SWIG_SetModule(clientdata, pointer) SWIG_JSC_SetModule(clientdata, pointer)
+#define SWIG_INIT_CLIENT_DATA_TYPE JSGlobalContextRef
%}
%insert(init) "swiginit.swg"
@@ -26,7 +71,7 @@ extern "C" {
#endif
bool SWIGJSC_INIT (JSGlobalContextRef context, JSObjectRef *exports) {
- SWIG_InitializeModule(0);
+ SWIG_InitializeModule(context);
%}
/* -----------------------------------------------------------------------------