faster json decode
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user