Why V8 crashes with that script?

15 views
Skip to first unread message

Kenji

unread,
Jul 23, 2009, 6:22:29 AM7/23/09
to v8-users
Hi,
The following code would crash.

I know a->x is a wrong syntax, but v8 should be able to handle
execution errors, right?
Am I missing something here? It's not throwing an exception or
returning an error code, but accessing null pointer in internal::Invoke
()


Handle<String> source = String::New("function A(){} var a = new A();
a->x = 0;");
Handle<Script> script = Script::Compile(source);
Handle<Value> result = script->Run();


Could anybody help?

Thanks,

Kenji

Christian Plesner Hansen

unread,
Jul 23, 2009, 6:30:49 AM7/23/09
to v8-u...@googlegroups.com
The problem is that this is a syntax error so Compile fails and gives
you back an empty handle. You have to check that compilation
succeeded (using Script::IsEmpty) before you run it.

Kenji

unread,
Jul 23, 2009, 6:39:41 AM7/23/09
to v8-users
But it crashed before Run() returns, and this is the problem.


On 7月23日, 下午6時30分, Christian Plesner Hansen

Kenji

unread,
Jul 23, 2009, 6:42:30 AM7/23/09
to v8-users
Oh thanks! I should check the compile result before Run()
Reply all
Reply to author
Forward
0 new messages