return NULL;
}
+/* return an exception if the string contains a '\0' character */
+const char *JS_ToCStringNZ(JSContext *ctx, JSValueConst val1)
+{
+ size_t len;
+ const char *str = JS_ToCStringLen(ctx, &len, val1);
+ if (str && strlen(str) != len) {
+ JS_FreeCString(ctx, str);
+ JS_ThrowRangeError(ctx, "string contains embedded null character");
+ return NULL;
+ }
+ return str;
+}
+
void JS_FreeCString(JSContext *ctx, const char *ptr)
{
JSString *p;
#ifdef CONFIG_ALL_UNICODE
/* return (-1, NULL) if exception, otherwise (len, buf) */
-static int JS_ToUTF32String(JSContext *ctx, uint32_t **pbuf, JSValueConst val1)
+int JS_ToUTF32String(JSContext *ctx, uint32_t **pbuf, JSValueConst val1)
{
JSValue val;
JSString *p;
{
return JS_ToCStringLen2(ctx, NULL, val1, 0);
}
+const char *JS_ToCStringNZ(JSContext *ctx, JSValueConst val1);
void JS_FreeCString(JSContext *ctx, const char *ptr);
+int JS_ToUTF32String(JSContext *ctx, uint32_t **pbuf, JSValueConst val);
JSValue JS_NewSymbol(JSContext *ctx, const char *description, JS_BOOL is_global);