src/c/jscore_object_call_as_function.c
authorAlan Knowles <alan@roojs.com>
Thu, 19 Mar 2015 10:11:35 +0000 (18:11 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 19 Mar 2015 10:11:35 +0000 (18:11 +0800)
src/c/jscore_object_call_as_function.c [new file with mode: 0644]

diff --git a/src/c/jscore_object_call_as_function.c b/src/c/jscore_object_call_as_function.c
new file mode 100644 (file)
index 0000000..1bbf168
--- /dev/null
@@ -0,0 +1,44 @@
+#include <JavaScriptCore/JavaScript.h>
+#include <glib.h>
+#include <glib-object.h>
+/**
+ a wrapper around call as function, as Value[] arrays do not work in Vala...
+
+*/
+
+
+JSValueRef jscore_object_call_as_function(
+       JSContextRef ctx,
+       JSObjectRef object, 
+       JSObjectRef thisObject,
+         gchar * val,
+       JSValueRef* exception
+       
+) {
+
+       JSValueRef res;
+    JSValueRef *jsargs;
+    
+    
+    JSStringRef jsstr = JSStringCreateWithUTF8CString (val);
+       JSValueRef valstr = JSValueMakeString (ctx, jsstr);
+       //JSStringRelease (jsstr); //??
+    
+    (JSValueRef *) g_newa (JSValueRef, 1);
+    jsargs[0] =  valstr;
+    
+    res =  JSObjectCallAsFunction(
+                       ctx, 
+                       object, 
+                       thisObject, 
+                       1, 
+                       jsargs, 
+                       exception
+       );
+       // free the args..
+       
+    return res;
+
+  
+}
+