#include #include #include #include size_t JSString_to_CString(JSString *str, char **msg){ *msg = JS_GetStringBytes(str); /* Then convert it to a C-style string. */ return JS_GetStringLength(str); /* Get the length of the string, # of chars. */ } jsval printf_exception(JSContext *cx, char *msg, ...){ char *str=NULL; int len = 0; va_list args; JSString *exceptionDescription; va_start(args, msg); len = vsnprintf(NULL, 0, msg, args)+1; va_end(args); str = JS_malloc(cx, len); memset(str, 0, len); va_start(args, msg); vsnprintf(str, len, msg, args); va_end(args); exceptionDescription = JS_NewString(cx, str, len); return STRING_TO_JSVAL(exceptionDescription); }