A couple of "convenience" API suggestions. Again, I'm in the middle of a big switch over from Mozilla's SpiderMonkey to JSC, so I see a couple IMHO (and I've been wrong before!) API additions that might make it easier for new users. .... JSValueMakeObject(.....) I know you can cast to the JSObjectRef from JSValueRef (if it is indeed a value), but it's not immediately obvious from the API (I figured it out from the examples.) And it gives an equivalent to JSValueToObject, like all other types have. What to do if the value isn't an object is probably one reason it doesn't exist, but maybe that could be doc'd to return a JS null or exception could actually be part of the call. ... JSValueMakeArray(.....size_t argumentCount,JSValueRef *arguments.....) Another one that can obviously be done in code but would be nice as a convenience. Right now it takes a good 5-10 lines to build an array (complete with values, etc.) ... JSValueMakeException( .... const char *str ....) Just a way to make exception creating easy, and it could attach sourceURL, line, etc, there (this would also give you a cheap way to find out where you are in execution if you wanted to build some kind of specialized debugger, make an exception, get the line -- the same trick you do in Java.) It makes throwing exceptions a bit easier. Also, SpiderMonkey had one nice thing that could be used, which is sprintf like variable count exception functions, for instance: *exception=JSValueMakeException(ctx,"There is no %s by the name of %s",thing_str,name_str); That would make it very easy to build and throw exceptions (in only one line most of the time) for most any exception. Again, thanks for all the great work and listening to my suggestions, which might be dumb :) I also have a couple places where I think the documentation generated from the header files could be updated, but I'll just bug you guys with one thing at a time. [>] Brian
participants (1)
-
Brian Barnes