From: Fabrice Bellard Date: Mon, 25 Aug 2025 12:01:43 +0000 (+0200) Subject: TypedArray.prototype.subarray: fixed the step at which '[[ByteOffset]]' is read X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/postgres_fdw.c?a=commitdiff_plain;h=c942978927a2a806517598a22a07c50766b3e125;p=quickjs.git TypedArray.prototype.subarray: fixed the step at which '[[ByteOffset]]' is read --- diff --git a/quickjs.c b/quickjs.c index caad931..6df74aa 100644 --- a/quickjs.c +++ b/quickjs.c @@ -54109,16 +54109,17 @@ static JSValue js_typed_array_subarray(JSContext *ctx, JSValueConst this_val, if (JS_ToInt32Clamp(ctx, &start, argv[0], 0, len, len)) goto exception; + shift = typed_array_size_log2(p->class_id); + ta = p->u.typed_array; + /* Read byteOffset (ta->offset) even if detached */ + offset = ta->offset + (start << shift); + final = len; if (!JS_IsUndefined(argv[1])) { if (JS_ToInt32Clamp(ctx, &final, argv[1], 0, len, len)) goto exception; } count = max_int(final - start, 0); - shift = typed_array_size_log2(p->class_id); - ta = p->u.typed_array; - /* Read byteOffset (ta->offset) even if detached */ - offset = ta->offset + (start << shift); ta_buffer = js_typed_array_get_buffer(ctx, this_val, 0); if (JS_IsException(ta_buffer)) goto exception;