fix mach vm suite errors
This commit is contained in:
@@ -3061,8 +3061,9 @@ JSValue mcode_exec(JSContext *ctx, JSMCode *code, JSValue this_obj,
|
||||
nargs -= 2;
|
||||
if (nargs < 0) nargs = 0;
|
||||
|
||||
if (JS_IsFunction(obj) && JS_VALUE_IS_TEXT(key)) {
|
||||
/* Proxy call: obj(key, [args...]) */
|
||||
if (JS_IsFunction(obj) && JS_VALUE_IS_TEXT(key) &&
|
||||
JS_VALUE_GET_FUNCTION(obj)->length == 2) {
|
||||
/* Proxy call (arity-2 functions only): obj(key, [args...]) */
|
||||
int vs_base = ctx->value_stack_top;
|
||||
ctx->value_stack[vs_base] = key; /* protect key on value stack */
|
||||
ctx->value_stack_top = vs_base + 1; /* protect key from GC */
|
||||
@@ -3087,7 +3088,8 @@ JSValue mcode_exec(JSContext *ctx, JSMCode *code, JSValue this_obj,
|
||||
if (JS_IsException(ret)) goto disrupt;
|
||||
frame->slots[dest] = ret;
|
||||
} else if (JS_IsFunction(obj)) {
|
||||
JS_ThrowTypeError(ctx, "cannot use non-text bracket notation on function");
|
||||
/* Non-proxy function: bracket access not allowed */
|
||||
JS_ThrowTypeError(ctx, "cannot use bracket notation on non-proxy function");
|
||||
frame = (JSFrameRegister *)JS_VALUE_GET_PTR(frame_ref.val);
|
||||
goto disrupt;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user