Am I missing some simple step in properly building/using v8, or is
something else wrong?

I'm building v8 for android but the results differ from older v8
binaries. Whenever I call any function (native or local) I get bad
returns. These worked fine when I linked to the libv8.a in the android
platform.

I have a test function(javascript):

function test() = {
return "success";
}

and I call this through v8 after I have run a file containing it (with
no errors using persistent global context 'context_'):

    TryCatch tc;
    v8::Handle<v8::Value> arg = v8::String::New("argument");

    Handle<String> process_name = String::New("test");
    Handle<Value> process_val = context_->Global()->Get(process_name);

    LOGI("Test for valid function");

    if (!process_val->IsFunction())
    {
        LOGE("Failed to get test()!");
        return;
    }
    else
    {
        LOGI("Grabbed function test()!");
    }

    Handle<Function> process_fun =
Handle<Function>::Cast(process_val);

    // Store the function in a Persistent handle, since we want that
globally
    Persistent<Function> test =
Persistent<Function>::New(process_fun);

    LOGI("Calling test()");
    result = test->Call(context_->Global(), 0, &arg);
    LOGI("called! test()");

but my result is always empty. This happens on native javascript
functions as well. And if I write bad code within the function or pass
a bad arg to eval() it returns an empty result, with NO EXCEPTION! So
not only is it busted, but error reporting isn't happening.

I was previously linking to the libv8.a out of the android platform
and the same exact code works fine.


I added some logs in v8 to see what was going on. The 'file(line):'
info is probably much more useful than my text:

/v8test.cpp(295):    Calling test()
/api.cc(2769):         V8 ping
/execution.cc(124): Calling Invoke()
/parser.cc(1337):     result == NULL
/top.cc(690):           Stack overflow!!
/execution.cc(124): Calling Invoke()
/runtime.cc(7003):   stack overflow
/top.cc(690):           Stack overflow!!
/execution.cc(108):  Pending Exception!!
/top.cc(925):           external_caught!! Uncaught RangeError: Maximum
call stack size exceeded
/execution.cc(108):  Pending Exception!!
/top.cc(925):            external_caught!! Uncaught RangeError:
Maximum call stack size exceeded
/api.cc(2772):          V8 ping
/api.cc(2773):          We have pending exception!!
/v8test.cpp(299):     called! test()

And then the result and exception are empty..

I've been working on this for a while.. and /frustrated.. Anyone have
any info the help?

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to