Open ceggert87 opened 2 years ago
I tried this in Javet. It works fine.
try (V8Runtime v8Runtime = V8Host.getV8Instance().createV8Runtime()) {
v8Runtime.getExecutor("var test = { get number(){return nonexistantVariable;}};").executeVoid();
System.out.println(v8Runtime.getGlobalObject().getObject("test").toString());
}
/*
Output:
{}
<unknown>:26: Uncaught ReferenceError: nonexistantVariable is not defined
*/
I tried this in Javet. It works fine.
Now that's some advertisement :D. Tried it using a similar approach as my example above
try {
val runtime: V8Runtime = V8Host.getV8Instance().createV8Runtime()
runtime.getExecutor("var test = { get number(){return nonexistantvariable;}};").executeVoid()
val test = runtime.globalObject.get<V8ValueObject>("test")
test.forEach<V8Value, RuntimeException> { it: V8Value ->
Log.d("TESTAPP", "${test.get<V8Value>(it)}")
}
} catch (e: JavetException) {
Log.e("TESTAPP", "$e")
}
Output is "undefined", just as expected. I think I'll be migrating our software then. Thanks a lot!
Hello everyone,
as the title might sound a bit confusing, please see the following example for the issue I am having:
Executing this example, SIGTRAP will be thrown when the code is trying to access "number". It runs fine when replacing nonexistantVariable with an actual number.
Is there any way to avoid this crash in a logic that works this way?
Tested with: 6.2.1, 6.1.0
Full error below: