Hey v8-users, we're making big changes to the api (again). We've found that our api makes it extremely difficult to write exception safe code.
*Reference issue* https://code.google.com/p/v8/issues/detail?id=3929 *Further description* Consider the following: Local<Value> x = some_value; s = x.ToString(); // in the current context, ToString might throw an exception, run out of stack space, whatever... // if that happens we just return an empty Local<String> s->Anything() // Crash! There's too much implicit stuff happening here, and it's bad. It's especially bad if you use threads and rely on TerminateExecution(), which causes lots of v8 function to return empty handles unexpectedly. To fix this, we will begin adding functions whose signature makes it impossible to make this mistake and we will deprecate and eventually remove all old functions. The new functions will in general come in two flavours: functions like: Local<String> ToString(Isolate*); will become: MaybeLocal<String> ToString(Local<Context>); and functions like: double NumberValue(); will become: Maybe<bool> NumberValue(Local<Context>); The Maybe values ensure at compilation time that the value returned is checked by the embedder, and the explicit Context makes it clear that a context is actually required and that javascript may be executed in that context. *Timeline* We will add the new API parts gradually to the codebase. When this is finished there will be approx. 6 weeks of time where the old and the new API will exist side-by-side. This is a good time to make the adjustments in your embedding code. After this period the old API will get removed. We apologize in advance for any trouble this may cause, but we're positive that this change will reduce crash rates for practically all v8 embedders. Cheers, Michael Hablich -- -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
