faster json decode

This commit is contained in:
2026-02-12 17:06:48 -06:00
parent add136c140
commit 19524b3a53
3 changed files with 3 additions and 7 deletions

View File

@@ -1804,7 +1804,7 @@ JSValue JS_CallRegisterVM(JSContext *ctx, JSCodeRegister *code,
}
default:
result = JS_ThrowInternalError(ctx, "unknown register VM opcode %d", op);
printf("unknown register VM opcode %d: %s\n", op, mach_opcode_names[op]);
goto done;
}
continue;

View File

@@ -469,7 +469,6 @@ typedef enum MachOpcode {
MACH_JMPNULL, /* if R(A)==null: pc += sBx */
/* Function calls — Lua-style consecutive registers (legacy .mach) */
MACH_CALL, /* (removed — placeholder to preserve opcode numbering) */
MACH_RETURN, /* Return R(A) */
MACH_RETNIL, /* Return null */
@@ -488,8 +487,6 @@ typedef enum MachOpcode {
MACH_HASPROP, /* R(A) = R(C) in R(B) — has property check */
MACH_REGEXP, /* R(A) = regexp(K(B), K(C)) — regex literal */
MACH_CALLMETHOD, /* (removed — placeholder to preserve opcode numbering) */
MACH_EQ_TOL, /* R(A) = eq_tol(R(B), R(B+1), R(B+2)), C=3 */
MACH_NEQ_TOL, /* R(A) = ne_tol(R(B), R(B+1), R(B+2)), C=3 */
@@ -651,7 +648,6 @@ static const char *mach_opcode_names[MACH_OP_COUNT] = {
[MACH_JMPTRUE] = "jmptrue",
[MACH_JMPFALSE] = "jmpfalse",
[MACH_JMPNULL] = "jmpnull",
[MACH_CALL] = "call",
[MACH_RETURN] = "return",
[MACH_RETNIL] = "retnil",
[MACH_NEWOBJECT] = "newobject",
@@ -664,7 +660,6 @@ static const char *mach_opcode_names[MACH_OP_COUNT] = {
[MACH_DELETEINDEX] = "deleteindex",
[MACH_HASPROP] = "hasprop",
[MACH_REGEXP] = "regexp",
[MACH_CALLMETHOD] = "callmethod",
[MACH_EQ_TOL] = "eq_tol",
[MACH_NEQ_TOL] = "neq_tol",
[MACH_NOP] = "nop",

View File

@@ -5221,7 +5221,8 @@ static JSValue cjson_to_jsvalue (JSContext *ctx, const cJSON *item) {
if (cJSON_IsString (item)) return JS_NewString (ctx, item->valuestring);
if (cJSON_IsArray (item)) {
int n = cJSON_GetArraySize (item);
JSValue arr = JS_NewArray (ctx);
JSValue arr = JS_NewArrayLen (ctx,n);
printf("array size %d\n", n);
for (int i = 0; i < n; i++) {
cJSON *child = cJSON_GetArrayItem (item, i);
JS_SetPropertyNumber (ctx, arr, i, cjson_to_jsvalue (ctx, child));