src/Builder4/Editor.bjs
[app.Builder.js] / src / Palete / Javascript.vala
index 011ad11..64a73a1 100644 (file)
@@ -124,7 +124,8 @@ namespace Palete {
                 * then a method is called, with a string argument (json encoded)
                 * 
                 */
-               public void executeFile(string fname, string call_method, string js_data)
+               public string executeFile(string fname, string call_method, string js_data)
+                               throws JavascriptError
                {
                        string file_data;
                        if (!FileUtils.test (fname, FileTest.EXISTS)) {
@@ -158,7 +159,7 @@ namespace Palete {
                        
                        if (!othis.has_property(ctx,jmethod)) {
                                throw new JavascriptError.MISSING_METHOD ("Plugin: missing method  %s", call_method);
-                               return;
+                        
                        }
                        
                        var val =  othis.get_property (ctx, jmethod, out exb);
@@ -173,25 +174,25 @@ namespace Palete {
                        }
                        
                 
-                        //var res = jscore_object_call_as_function(
-                       //      ctx, oval, othis, js_data, out exd
-                       //      );
+                        var res = jscore_object_call_as_function(
+                               ctx, oval, othis, js_data, out exd
+                               );
                     // this will never work, as we can not create arrays of Values - due to no 
                     // free function being available..
                         //var args =  new JSCore.Value[1] ;
                         //args[0] = new JSCore.Value.string(ctx,json_args) ;
                         
-                        unowned JSCore.Value res = oval.call_as_function(ctx, othis, null, out exd);
+                        //unowned JSCore.Value res = oval.call_as_function(ctx, othis, null, out exd);
                        // extract the text value from res...
                         JSCore.String  sv = res.to_string_copy ( ctx,  out  exe);
                         var length = sv.get_maximum_utf8_c_string_size();
-                        var buf = new string[length+1];
+                        var buf = new char[length];
                        
                         sv.get_utf8_c_string( buf, length);
-                        sv = null; // release?
-                        buf[length] = 0;
-                        print("ret:%s\n",(string)  buf);
                         
+                        
+                        print("ret:%s\n",(string)  buf);
+                        return (string) buf;
                        
                }