jseption 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"typedarray.js","sourceRoot":"","sources":["../../src/builtins/typedarray.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * ArrayBuffer, SharedArrayBuffer, typed arrays and DataView (port of the\n * typed array section of quickjs.c).\n *\n * Typed arrays are exotic objects: the integer indexed element access is\n * implemented by the class exotic methods registered on the runtime. The\n * raw bytes live in the Uint8Array 'data' of the JSArrayBuffer; element\n * access goes through host typed array / DataView views created over it.\n */\nimport * as Q from '../quickjs.ts';\nimport {\n JSContext, JSRuntime, JSValue, JSObject, JSClassID, JSAtom, JS_EXCEPTION, JS_IsException, JS_IsUndefined,\n JS_IsObject, JS_IsNull, JSPropertyDescriptor, JSArrayBuffer, JSTypedArray,\n JS_NewObject, JS_NewObjectProto, JS_NewArray, JS_NewCFunction2, JS_NewCFunction3, JSCFunctionEnum,\n JS_DefinePropertyValue, JS_DefinePropertyValueStr, JS_DefinePropertyValueInt64, JS_DefineProperty,\n JS_GetOwnPropertyInternal, new_desc,\n JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_PROP_ENUMERABLE, JS_PROP_C_W_E, JS_PROP_THROW, JS_PROP_GETSET,\n JS_PROP_HAS_GET, JS_PROP_HAS_SET, JS_PROP_HAS_VALUE, JS_PROP_HAS_SHIFT, JS_PROP_HAS_CONFIGURABLE,\n JS_PROP_HAS_WRITABLE, JS_PROP_HAS_ENUMERABLE,\n JS_GetProperty, JS_GetPropertyInternal, JS_SetPropertyInternal, JS_HasProperty, JS_GetPropertyInt64,\n JS_SetPropertyInt64, JS_GetPropertyUint32, JS_SetPropertyUint32, JS_GetPropertyValue, JS_SetPropertyValue,\n JS_ToString, JS_ToBoolFree, JS_ToFloat64, JS_ToUint32Free, JS_ToUint8ClampFree, JS_ToBigInt64, JS_ToIndex,\n JS_ToInt64Sat, JS_ToInt32Clamp, JS_ToInt64Clamp, JS_ToLengthFree, JS_ToPrimitive, HINT_NUMBER, JS_ToObject,\n js_get_length64,\n JS_ThrowTypeError, JS_ThrowRangeError, JS_ThrowSyntaxError, JS_GetPropertyStr, JS_ThrowTypeErrorOrFalse, JS_ThrowTypeErrorReadOnly, JS_ThrowTypeErrorInvalidClass,\n JS_IsFunction, JS_Call, JS_CallConstructor, JS_Invoke, js_create_from_ctor, js_same_value, JS_GetIterator2,\n JS_IteratorNext, JS_CreateDataPropertyUint32, JS_GetOpaque2, JS_AtomToString, JS_AtomIsNumericIndex1,\n __JS_AtomIsTaggedInt, __JS_AtomToUInt32, __JS_AtomFromUInt32,\n JS_SetPropertyFunctionList, JS_NewGlobalCConstructorOnly, JS_NewGlobalCConstructor2, JS_SetConstructor,\n JS_CFUNC_DEF, JS_CFUNC_MAGIC_DEF, JS_NATIVE_DEF, JS_CGETSET_DEF, JS_CGETSET_MAGIC_DEF, JS_ALIAS_DEF, JS_PROP_STRING_DEF,\n JSCFunctionListEntry, hooks,\n JS_ATOM_length, JS_ATOM_toString, JS_ATOM_toLocaleString, JS_ATOM_join, JS_ATOM_next, JS_ATOM_set,\n JS_ATOM_Symbol_iterator, JS_ATOM_Symbol_species, JS_ATOM_Symbol_toStringTag, JS_ATOM_Uint8ClampedArray,\n} from '../quickjs.ts';\nimport { JS_SpeciesConstructor, check_function } from './promise.ts';\nimport { fix_array_iterator } from './native.ts';\nimport { tofp16, fromfp16, f16round } from './float16.ts';\nimport {\n B64_ALPHABET_BASE64, B64_ALPHABET_BASE64URL, B64_LAST_LOOSE, B64_LAST_STRICT, B64_LAST_STOP_BEFORE_PARTIAL,\n b64_encode, from_base64, u8a_hex_encode, u8a_hex_decode,\n} from './base64.ts';\n\nconst HOST_TYPED_ARRAY_PROTO: any = Object.getPrototypeOf(Uint8Array.prototype);\n\n/* JS_ITERATOR_KIND_xxx (same values as JSIteratorKind in index.ts) */\nconst JS_ITERATOR_KIND_KEY = 0;\nconst JS_ITERATOR_KIND_VALUE = 1;\nconst JS_ITERATOR_KIND_KEY_AND_VALUE = 2;\n\nconst JS_TYPED_ARRAY_COUNT = JSClassID.FLOAT64_ARRAY - JSClassID.UINT8C_ARRAY + 1;\n\nconst typed_array_size_log2_tab: number[] = [\n 0, 0, 0, 1, 1, 2, 2,\n 3, 3, /* BigInt64Array, BigUint64Array */\n 1, 2, 3, /* Float16Array, Float32Array, Float64Array */\n];\nfunction typed_array_size_log2(class_id: JSClassID): number {\n return typed_array_size_log2_tab[class_id - JSClassID.UINT8C_ARRAY];\n}\n\ntype HostTA = Uint8ClampedArray | Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array |\n BigInt64Array | BigUint64Array | Float32Array | Float64Array;\ntype HostTACtor = new (buffer: ArrayBufferLike, byteOffset: number, length: number) => HostTA;\n/* Guest typed arrays are host typed arrays, so Float16Array exists in the\n guest only when the host has it (its class slot stays empty otherwise).\n Math.f16round and DataView's float16 methods do not need it. */\nconst HostFloat16Array: HostTACtor | undefined = (globalThis as any).Float16Array;\nconst host_ta_ctors: (HostTACtor | undefined)[] = [\n Uint8ClampedArray, Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array,\n BigInt64Array, BigUint64Array, HostFloat16Array, Float32Array, Float64Array,\n];\n/* true if the host provides the guest typed array class 'class_id' */\nexport function typed_array_class_available(class_id: JSClassID): boolean {\n return host_ta_ctors[class_id - JSClassID.UINT8C_ARRAY] !== undefined;\n}\n\n/* ---------------------------------------------------------------------\n ArrayBuffer\n --------------------------------------------------------------------- */\n\n/* array buffer data with the resizable extension. The host buffer is\n resizable (growable when shared) when max_len >= 0; 'data' is a length\n tracking view over it. */\nexport class JSArrayBufferData extends JSArrayBuffer {\n /* maximum byte length for resizable buffers, -1 otherwise */\n max_byte_length = -1;\n /* cached host DataView over 'data' */\n dv: DataView | null = null;\n dv_data: Uint8Array | null = null;\n constructor(len: number, shared: boolean, max_len: number) {\n let buffer: ArrayBuffer | SharedArrayBuffer;\n if (shared) buffer = max_len >= 0 ? new SharedArrayBuffer(len, { maxByteLength: max_len }) : new SharedArrayBuffer(len);\n else buffer = max_len >= 0 ? new ArrayBuffer(len, { maxByteLength: max_len }) : new ArrayBuffer(len);\n super(buffer, shared);\n this.max_byte_length = max_len;\n }\n}\n\nfunction array_buffer_get_dv(abuf: JSArrayBuffer): DataView {\n const a = abuf as JSArrayBufferData;\n if (a.dv === null || a.dv_data !== abuf.data) {\n a.dv = new DataView(abuf.data.buffer, abuf.data.byteOffset, abuf.data.byteLength);\n a.dv_data = abuf.data;\n }\n return a.dv;\n}\n\nfunction array_buffer_byte_length(abuf: JSArrayBuffer): number {\n return abuf.detached ? 0 : abuf.data.length;\n}\n\nfunction array_buffer_max_byte_length(abuf: JSArrayBuffer): number {\n const m = (abuf as JSArrayBufferData).max_byte_length;\n return (typeof m === 'number') ? m : -1;\n}\n\nfunction array_buffer_is_resizable(abuf: JSArrayBuffer): boolean {\n return array_buffer_max_byte_length(abuf) >= 0;\n}\n\nfunction JS_ThrowTypeErrorDetachedArrayBuffer(ctx: JSContext): JSValue {\n return JS_ThrowTypeError(ctx, 'ArrayBuffer is detached');\n}\n\nfunction JS_ThrowTypeErrorArrayBufferOOB(ctx: JSContext): JSValue {\n return JS_ThrowTypeError(ctx, 'ArrayBuffer is detached or resized');\n}\n\n/* XXX: we are currently limited to 2 GB */\nconst ARRAY_BUFFER_MAX_LENGTH = 0x7fffffff;\n\nfunction js_array_buffer_constructor3(ctx: JSContext, new_target: JSValue, len: number, max_len: number,\n class_id: JSClassID, buf: Uint8Array | null): JSValue {\n const obj = js_create_from_ctor(ctx, new_target, class_id);\n if (JS_IsException(obj)) return obj;\n if (len > ARRAY_BUFFER_MAX_LENGTH) return JS_ThrowRangeError(ctx, 'invalid array buffer length');\n if (max_len > ARRAY_BUFFER_MAX_LENGTH) return JS_ThrowRangeError(ctx, 'invalid array buffer maximum length');\n const abuf = new JSArrayBufferData(len, class_id === JSClassID.SHARED_ARRAY_BUFFER, max_len);\n if (buf) abuf.data.set(buf.subarray(0, len));\n Q.JS_SetOpaque(obj, abuf);\n return obj;\n}\n\nfunction js_array_buffer_constructor2(ctx: JSContext, new_target: JSValue, len: number, class_id: JSClassID): JSValue {\n return js_array_buffer_constructor3(ctx, new_target, len, -1, class_id, null);\n}\n\nfunction js_array_buffer_constructor1(ctx: JSContext, new_target: JSValue, len: number): JSValue {\n return js_array_buffer_constructor2(ctx, new_target, len, JSClassID.ARRAY_BUFFER);\n}\n\nexport function JS_NewArrayBufferCopy(ctx: JSContext, buf: Uint8Array): JSValue {\n return js_array_buffer_constructor3(ctx, undefined, buf.length, -1, JSClassID.ARRAY_BUFFER, buf);\n}\n\n/* ArrayBuffer(length, options) / SharedArrayBuffer(length, options) */\nfunction js_array_buffer_constructor0(ctx: JSContext, new_target: JSValue, argv: JSValue[], class_id: JSClassID): JSValue {\n const len = JS_ToIndex(ctx, argv[0]);\n if (len < 0) return JS_EXCEPTION;\n let max_len = -1;\n const options = argv[1];\n if (JS_IsObject(options)) {\n const val = JS_GetProperty(ctx, options, JS_NewAtomStr(ctx, 'maxByteLength'));\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (!JS_IsUndefined(val)) {\n max_len = JS_ToIndex(ctx, val);\n if (max_len < 0) return JS_EXCEPTION;\n if (len > max_len) return JS_ThrowRangeError(ctx, 'invalid array buffer max length');\n }\n }\n return js_array_buffer_constructor3(ctx, new_target, len, max_len, class_id, null);\n}\n\nfunction JS_NewAtomStr(ctx: JSContext, s: string): JSAtom { return ctx.rt.atoms.newAtomStr(s); }\n\nfunction js_array_buffer_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[]): JSValue {\n return js_array_buffer_constructor0(ctx, new_target, argv, JSClassID.ARRAY_BUFFER);\n}\n\nfunction js_shared_array_buffer_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[]): JSValue {\n return js_array_buffer_constructor0(ctx, new_target, argv, JSClassID.SHARED_ARRAY_BUFFER);\n}\n\nfunction js_array_buffer_isView(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const v = argv[0];\n return Q.JS_IsObject(v) && Q.JS_GetClassID(v) >= JSClassID.UINT8C_ARRAY && Q.JS_GetClassID(v) <= JSClassID.DATAVIEW;\n}\n\nfunction js_get_this(ctx: JSContext, this_val: JSValue): JSValue { return this_val; }\n\nconst js_array_buffer_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_DEF('isView', 1, js_array_buffer_isView),\n JS_CGETSET_DEF(JS_ATOM_Symbol_species, js_get_this, null),\n];\n\nfunction js_array_buffer_get_byteLength(ctx: JSContext, this_val: JSValue, class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n /* return 0 if detached */\n return array_buffer_byte_length(abuf);\n}\n\nfunction js_array_buffer_get_maxByteLength(ctx: JSContext, this_val: JSValue, class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n if (abuf.detached) return 0;\n if (array_buffer_is_resizable(abuf)) return array_buffer_max_byte_length(abuf);\n return abuf.data.length;\n}\n\nfunction js_array_buffer_get_resizable(ctx: JSContext, this_val: JSValue, class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n return array_buffer_is_resizable(abuf);\n}\n\nfunction js_array_buffer_get_detached(ctx: JSContext, this_val: JSValue): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, JSClassID.ARRAY_BUFFER) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n return abuf.detached;\n}\n\nexport function JS_DetachArrayBuffer(ctx: JSContext, obj: JSValue): void {\n if (!Q.JS_IsObject(obj) || Q.JS_GetClassID(obj) !== JSClassID.ARRAY_BUFFER) return;\n const abuf = Q.JS_GetAnyOpaque(obj) as JSArrayBuffer;\n if (!abuf || abuf.detached) return;\n /* detach the host buffer so that the host views see a length of 0 */\n try { (abuf.buffer as ArrayBuffer).transfer(0); } catch { /* not transferable: keep the data */ }\n abuf.data = new Uint8Array(0);\n abuf.detached = true;\n /* Note: the typed array length and offset fields are not modified */\n}\n\n/* ArrayBuffer.prototype.resize / SharedArrayBuffer.prototype.grow */\nfunction js_array_buffer_resize(ctx: JSContext, this_val: JSValue, argv: JSValue[], class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n if (!array_buffer_is_resizable(abuf)) return JS_ThrowTypeError(ctx, 'array buffer is not resizable');\n const len = JS_ToIndex(ctx, argv[0]);\n if (len < 0) return JS_EXCEPTION;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (len > array_buffer_max_byte_length(abuf)) return JS_ThrowRangeError(ctx, 'invalid array buffer length');\n if (abuf.shared && len < abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid array buffer length');\n try {\n if (abuf.shared) (abuf.buffer as SharedArrayBuffer).grow(len);\n else (abuf.buffer as ArrayBuffer).resize(len);\n } catch (e) {\n return Q.js_host_exception_to_guest(ctx, e);\n }\n /* 'data' is a length tracking view: nothing else to do */\n return undefined;\n}\n\n/* ArrayBuffer.prototype.transfer / transferToFixedLength (magic = 1) */\nfunction js_array_buffer_transfer(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, JSClassID.ARRAY_BUFFER) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n let new_len: number;\n if (JS_IsUndefined(argv[0])) {\n new_len = array_buffer_byte_length(abuf);\n } else {\n new_len = JS_ToIndex(ctx, argv[0]);\n if (new_len < 0) return JS_EXCEPTION;\n }\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n let max_len = -1;\n if (magic === 0 && array_buffer_is_resizable(abuf)) {\n max_len = array_buffer_max_byte_length(abuf);\n if (new_len > max_len) return JS_ThrowRangeError(ctx, 'invalid array buffer length');\n }\n const new_obj = js_array_buffer_constructor3(ctx, undefined, new_len, max_len, JSClassID.ARRAY_BUFFER, abuf.data);\n if (JS_IsException(new_obj)) return JS_EXCEPTION;\n JS_DetachArrayBuffer(ctx, this_val);\n return new_obj;\n}\n\n/* get an ArrayBuffer or SharedArrayBuffer */\nfunction js_get_array_buffer(ctx: JSContext, obj: JSValue): JSArrayBuffer | null {\n if (Q.JS_IsObject(obj) && (Q.JS_GetClassID(obj) === JSClassID.ARRAY_BUFFER || Q.JS_GetClassID(obj) === JSClassID.SHARED_ARRAY_BUFFER)) {\n return Q.JS_GetAnyOpaque(obj) as JSArrayBuffer;\n }\n JS_ThrowTypeErrorInvalidClass(ctx, JSClassID.ARRAY_BUFFER);\n return null;\n}\n\nfunction js_array_buffer_slice(ctx: JSContext, this_val: JSValue, argv: JSValue[], class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const len = abuf.data.length;\n const start = JS_ToInt64Clamp(ctx, argv[0], 0, len, len);\n if (JS_IsException(start)) return JS_EXCEPTION;\n let end: number | typeof JS_EXCEPTION = len;\n if (!JS_IsUndefined(argv[1])) {\n end = JS_ToInt64Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(end)) return JS_EXCEPTION;\n }\n const new_len = Math.max((end as number) - (start as number), 0);\n const ctor = JS_SpeciesConstructor(ctx, this_val, undefined);\n if (JS_IsException(ctor)) return ctor;\n let new_obj: JSValue;\n if (JS_IsUndefined(ctor)) {\n new_obj = js_array_buffer_constructor2(ctx, undefined, new_len, class_id as JSClassID);\n } else {\n new_obj = JS_CallConstructor(ctx, ctor, [new_len]);\n }\n if (JS_IsException(new_obj)) return new_obj;\n const new_abuf = JS_GetOpaque2(ctx, new_obj, class_id as JSClassID) as JSArrayBuffer | null;\n if (!new_abuf) return JS_EXCEPTION;\n if (js_same_value(ctx, new_obj, this_val)) return JS_ThrowTypeError(ctx, 'cannot use identical ArrayBuffer');\n if (new_abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (new_abuf.data.length < new_len) return JS_ThrowTypeError(ctx, 'new ArrayBuffer is too small');\n /* must test again because of side effects */\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n new_abuf.data.set(abuf.data.subarray(start as number, (start as number) + new_len));\n return new_obj;\n}\n\nconst js_array_buffer_proto_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_MAGIC_DEF('byteLength', js_array_buffer_get_byteLength, null, JSClassID.ARRAY_BUFFER),\n JS_CGETSET_MAGIC_DEF('maxByteLength', js_array_buffer_get_maxByteLength, null, JSClassID.ARRAY_BUFFER),\n JS_CGETSET_MAGIC_DEF('resizable', js_array_buffer_get_resizable, null, JSClassID.ARRAY_BUFFER),\n JS_CGETSET_DEF('detached', js_array_buffer_get_detached, null),\n JS_CFUNC_MAGIC_DEF('resize', 1, js_array_buffer_resize, JSClassID.ARRAY_BUFFER),\n JS_CFUNC_MAGIC_DEF('slice', 2, js_array_buffer_slice, JSClassID.ARRAY_BUFFER),\n JS_CFUNC_MAGIC_DEF('transfer', 0, js_array_buffer_transfer, 0),\n JS_CFUNC_MAGIC_DEF('transferToFixedLength', 0, js_array_buffer_transfer, 1),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'ArrayBuffer', JS_PROP_CONFIGURABLE),\n];\n\n/* SharedArrayBuffer */\n\nconst js_shared_array_buffer_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_DEF(JS_ATOM_Symbol_species, js_get_this, null),\n];\n\nconst js_shared_array_buffer_proto_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_MAGIC_DEF('byteLength', js_array_buffer_get_byteLength, null, JSClassID.SHARED_ARRAY_BUFFER),\n JS_CGETSET_MAGIC_DEF('maxByteLength', js_array_buffer_get_maxByteLength, null, JSClassID.SHARED_ARRAY_BUFFER),\n JS_CGETSET_MAGIC_DEF('growable', js_array_buffer_get_resizable, null, JSClassID.SHARED_ARRAY_BUFFER),\n JS_CFUNC_MAGIC_DEF('grow', 1, js_array_buffer_resize, JSClassID.SHARED_ARRAY_BUFFER),\n JS_CFUNC_MAGIC_DEF('slice', 2, js_array_buffer_slice, JSClassID.SHARED_ARRAY_BUFFER),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'SharedArrayBuffer', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n Typed arrays\n --------------------------------------------------------------------- */\n\nexport function is_typed_array_class(class_id: JSClassID): boolean {\n return class_id >= JSClassID.UINT8C_ARRAY && class_id <= JSClassID.FLOAT64_ARRAY;\n}\n\nfunction get_typed_array(ctx: JSContext, this_val: JSValue, is_dataview: boolean): JSObject | null {\n if (Q.JS_IsObject(this_val)) {\n if (is_dataview) {\n if (Q.JS_GetClassID(this_val) === JSClassID.DATAVIEW) return this_val;\n } else {\n if (is_typed_array_class(Q.JS_GetClassID(this_val))) return this_val;\n }\n }\n JS_ThrowTypeError(ctx, `not a ${is_dataview ? 'DataView' : 'TypedArray'}`);\n return null;\n}\n\n/* WARNING: 'p' must be a typed array or a DataView */\nfunction typed_array_is_detached(ctx: JSContext, p: JSObject): boolean {\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n return abuf.detached;\n}\n\n/* byte length of a typed array (size_log2 = element size) or DataView\n (size_log2 = 0), taking the resizable buffer tracking into account.\n Returns -1 if out of bounds or detached. */\nfunction typed_array_get_byte_length(ta: JSTypedArray, size_log2: number): number {\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n if (abuf.detached) return -1;\n const buf_len = abuf.data.length;\n if (ta.track_rab) {\n if (ta.offset > buf_len) return -1;\n return ((buf_len - ta.offset) >> size_log2) << size_log2;\n }\n if (ta.offset + ta.length > buf_len) return -1;\n return ta.length;\n}\n\n/* byte length of a typed array or DataView object (-1 if detached/OOB) */\nfunction js_typed_array_byte_length(p: JSObject): number {\n const size_log2 = Q.JS_GetClassID(p) === JSClassID.DATAVIEW ? 0 : typed_array_size_log2(Q.JS_GetClassID(p));\n return typed_array_get_byte_length(Q.JS_GetAnyOpaque(p) as JSTypedArray, size_log2);\n}\n\n/* return true if the typed array is detached or out of bounds (resized buffer) */\nfunction typed_array_is_oob(ctx: JSContext, p: JSObject): boolean {\n return js_typed_array_byte_length(p) < 0;\n}\n\n/* WARNING: 'p' must be a typed array. Works even if the array buffer is\n detached (returns 0). This is p->u.array.count in the C version. */\nfunction typed_array_get_length(ctx: JSContext, p: JSObject): number {\n const byte_len = js_typed_array_byte_length(p);\n if (byte_len < 0) return 0;\n return byte_len >> typed_array_size_log2(Q.JS_GetClassID(p));\n}\n\n/* host view over the current elements of the typed array (null if detached/OOB) */\ninterface TAViewCache { data: Uint8Array; len: number; offset: number; view: HostTA }\nconst ta_view_cache = new WeakMap<JSTypedArray, TAViewCache>();\n\nfunction typed_array_get_view(p: JSObject): HostTA | null {\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n const byte_len = js_typed_array_byte_length(p);\n if (byte_len < 0) return null;\n const len = byte_len >> typed_array_size_log2(Q.JS_GetClassID(p));\n const c = ta_view_cache.get(ta);\n if (c && c.data === abuf.data && c.len === len && c.offset === ta.offset) return c.view;\n const ctor = host_ta_ctors[Q.JS_GetClassID(p) - JSClassID.UINT8C_ARRAY]!;\n const view = new ctor(abuf.data.buffer, abuf.data.byteOffset + ta.offset, len);\n ta_view_cache.set(ta, { data: abuf.data, len, offset: ta.offset, view });\n return view;\n}\n\nfunction validate_typed_array(ctx: JSContext, this_val: JSValue): number {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return -1;\n if (typed_array_is_detached(ctx, p)) {\n JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n return -1;\n }\n if (typed_array_is_oob(ctx, p)) {\n JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return -1;\n }\n return 0;\n}\n\nfunction js_typed_array_get_length(ctx: JSContext, this_val: JSValue): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n return typed_array_get_length(ctx, p);\n}\n\nfunction js_typed_array_get_buffer(ctx: JSContext, this_val: JSValue, is_dataview: number): JSValue {\n const p = get_typed_array(ctx, this_val, is_dataview !== 0);\n if (!p) return JS_EXCEPTION;\n return (Q.JS_GetAnyOpaque(p) as JSTypedArray).buffer;\n}\n\nfunction js_typed_array_get_byteLength(ctx: JSContext, this_val: JSValue, is_dataview: number): JSValue {\n const p = get_typed_array(ctx, this_val, is_dataview !== 0);\n if (!p) return JS_EXCEPTION;\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n if (typed_array_is_detached(ctx, p)) {\n if (is_dataview) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n return 0;\n }\n const len = js_typed_array_byte_length(p);\n if (len < 0) {\n if (is_dataview) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return 0;\n }\n void ta;\n return len;\n}\n\nfunction js_typed_array_get_byteOffset(ctx: JSContext, this_val: JSValue, is_dataview: number): JSValue {\n const p = get_typed_array(ctx, this_val, is_dataview !== 0);\n if (!p) return JS_EXCEPTION;\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n if (typed_array_is_detached(ctx, p)) {\n if (is_dataview) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n return 0;\n }\n if (js_typed_array_byte_length(p) < 0) {\n if (is_dataview) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return 0;\n }\n return ta.offset;\n}\n\nfunction js_typed_array_get_toStringTag(ctx: JSContext, this_val: JSValue): JSValue {\n if (!Q.JS_IsObject(this_val)) return undefined;\n if (!is_typed_array_class(Q.JS_GetClassID(this_val))) return undefined;\n return JS_AtomToString(ctx, ctx.rt.class_array[Q.JS_GetClassID(this_val)]!.class_name);\n}\n\n/* element access */\n\nfunction typed_array_get_element(p: JSObject, idx: number): JSValue {\n const view = typed_array_get_view(p);\n if (!view || idx >= view.length) return undefined;\n return view[idx];\n}\n\n/* convert 'val' to the element type. Returns the converted value (number\n or bigint) or JS_EXCEPTION */\nfunction typed_array_convert_value(ctx: JSContext, class_id: JSClassID, val: JSValue): number | bigint | typeof JS_EXCEPTION {\n if (class_id === JSClassID.UINT8C_ARRAY) {\n const v = JS_ToUint8ClampFree(ctx, val);\n if (JS_IsException(v)) return JS_EXCEPTION;\n return v as number;\n } else if (class_id <= JSClassID.UINT32_ARRAY) {\n const v = JS_ToUint32Free(ctx, val);\n if (JS_IsException(v)) return JS_EXCEPTION;\n return v as number;\n } else if (class_id <= JSClassID.BIG_UINT64_ARRAY) {\n const v = JS_ToBigInt64(ctx, val);\n if (JS_IsException(v)) return JS_EXCEPTION;\n return v as bigint;\n } else {\n const v = JS_ToFloat64(ctx, val);\n if (JS_IsException(v)) return JS_EXCEPTION;\n return v as number;\n }\n}\n\n/* TypedArraySetElement: the value is converted even if the index is out\n of bounds. Return -1 if exception, TRUE otherwise. */\nfunction typed_array_set_element(ctx: JSContext, p: JSObject, idx: number, val: JSValue): number {\n const v = typed_array_convert_value(ctx, Q.JS_GetClassID(p), val);\n if (JS_IsException(v)) return -1;\n const view = typed_array_get_view(p);\n if (view && idx >= 0 && idx < view.length) (view as any)[idx] = v;\n return 1;\n}\n\n\n\n\n/* methods */\n\nfunction js_typed_array_set_internal(ctx: JSContext, dst: JSValue, src: JSValue, off: JSValue): JSValue {\n const p = get_typed_array(ctx, dst, false);\n if (!p) return JS_EXCEPTION;\n const offset = JS_ToInt64Sat(ctx, off);\n if (JS_IsException(offset)) return JS_EXCEPTION;\n if ((offset as number) < 0) return JS_ThrowRangeError(ctx, 'invalid array length');\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const src_obj = JS_ToObject(ctx, src);\n if (JS_IsException(src_obj)) return JS_EXCEPTION;\n const src_p = src_obj as JSObject;\n const dst_len = typed_array_get_length(ctx, p);\n let src_len: number;\n if (is_typed_array_class(Q.JS_GetClassID(src_p))) {\n if (typed_array_is_detached(ctx, src_p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n src_len = typed_array_get_length(ctx, src_p);\n if ((offset as number) > dst_len - src_len) return JS_ThrowRangeError(ctx, 'invalid array length');\n /* copying between typed objects */\n if (Q.JS_GetClassID(src_p) === Q.JS_GetClassID(p)) {\n /* same type, use memmove */\n const dst_view = typed_array_get_view(p)!;\n const src_view = typed_array_get_view(src_p)!;\n (dst_view as any).set(src_view, offset as number);\n return undefined;\n }\n /* otherwise, default behavior is slow but correct */\n } else {\n src_len = js_get_length64(ctx, src_obj);\n if (src_len < 0) return JS_EXCEPTION;\n if ((offset as number) > dst_len - src_len) return JS_ThrowRangeError(ctx, 'invalid array length');\n }\n for (let i = 0; i < src_len; i++) {\n const val = JS_GetPropertyUint32(ctx, src_obj, i);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (JS_SetPropertyUint32(ctx, dst, (offset as number) + i, val) < 0) return JS_EXCEPTION;\n }\n return undefined;\n}\n\nfunction js_typed_array_at(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const r = JS_ToInt64Sat(ctx, argv[0]);\n if (JS_IsException(r)) return JS_EXCEPTION;\n let idx = r as number;\n const len = typed_array_get_length(ctx, p);\n if (idx < 0) idx = len + idx;\n if (idx < 0 || idx >= len) return undefined;\n return JS_GetPropertyInt64(ctx, this_val, idx);\n}\n\nfunction js_typed_array_with(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const r = JS_ToInt64Sat(ctx, argv[0]);\n if (JS_IsException(r)) return JS_EXCEPTION;\n let idx = r as number;\n const len = typed_array_get_length(ctx, p);\n if (idx < 0) idx = len + idx;\n const val = JS_ToPrimitive(ctx, argv[1], HINT_NUMBER);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (typed_array_is_detached(ctx, p) || idx < 0 || idx >= len) return JS_ThrowRangeError(ctx, 'invalid array index');\n const arr = js_typed_array_constructor_ta(ctx, undefined, this_val, Q.JS_GetClassID(p));\n if (JS_IsException(arr)) return JS_EXCEPTION;\n if (JS_SetPropertyInt64(ctx, arr, idx, val) < 0) return JS_EXCEPTION;\n return arr;\n}\n\nfunction js_typed_array_set(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n let offset: JSValue = undefined;\n if (argv.length > 1) offset = argv[1];\n return js_typed_array_set_internal(ctx, this_val, argv[0], offset);\n}\n\n\n/* return < 0 if exception */\nfunction js_typed_array_get_length_internal(ctx: JSContext, obj: JSValue): number {\n const p = get_typed_array(ctx, obj, false);\n if (!p) return -1;\n if (typed_array_is_detached(ctx, p)) {\n JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n return -1;\n }\n if (typed_array_is_oob(ctx, p)) {\n JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return -1;\n }\n return typed_array_get_length(ctx, p);\n}\n\nfunction js_typed_array_create(ctx: JSContext, ctor: JSValue, argv: JSValue[]): JSValue {\n const ret = JS_CallConstructor(ctx, ctor, argv);\n if (JS_IsException(ret)) return ret;\n /* validate the typed array */\n const new_len = js_typed_array_get_length_internal(ctx, ret);\n if (new_len < 0) return JS_EXCEPTION;\n if (argv.length === 1) {\n /* ensure that it is large enough */\n const len = JS_ToLengthFree(ctx, argv[0]);\n if (len < 0) return JS_EXCEPTION;\n if (new_len < len) return JS_ThrowTypeError(ctx, 'TypedArray length is too small');\n }\n return ret;\n}\n\nfunction js_typed_array___speciesCreate(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const obj = argv[0];\n const p = get_typed_array(ctx, obj, false);\n if (!p) return JS_EXCEPTION;\n const ctor = JS_SpeciesConstructor(ctx, obj, undefined);\n if (JS_IsException(ctor)) return ctor;\n const args1 = argv.slice(1);\n if (JS_IsUndefined(ctor)) {\n return js_typed_array_constructor(ctx, undefined, args1, Q.JS_GetClassID(p));\n }\n return js_typed_array_create(ctx, ctor, args1);\n}\n\nfunction js_array_from_iterator(ctx: JSContext, obj: JSValue, method: JSValue): { arr: JSValue; len: number } | null {\n const arr = JS_NewArray(ctx);\n if (JS_IsException(arr)) return null;\n const iter = JS_GetIterator2(ctx, obj, method);\n if (JS_IsException(iter)) return null;\n const next_method = JS_GetProperty(ctx, iter, JS_ATOM_next);\n if (JS_IsException(next_method)) return null;\n let k = 0;\n const pdone = { done: 0 };\n for (;;) {\n const val = JS_IteratorNext(ctx, iter, next_method, [], pdone);\n if (JS_IsException(val)) return null;\n if (pdone.done) break;\n if (JS_CreateDataPropertyUint32(ctx, arr, k, val, JS_PROP_THROW) < 0) return null;\n k++;\n }\n return { arr, len: k };\n}\n\nfunction js_typed_array_from(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n // from(items, mapfn = void 0, this_arg = void 0)\n const items = argv[0];\n let mapfn: JSValue = undefined, this_arg: JSValue = undefined;\n let mapping = false;\n if (argv.length > 1) {\n mapfn = argv[1];\n if (!JS_IsUndefined(mapfn)) {\n if (check_function(ctx, mapfn)) return JS_EXCEPTION;\n mapping = true;\n if (argv.length > 2) this_arg = argv[2];\n }\n }\n const iter = JS_GetProperty(ctx, items, JS_ATOM_Symbol_iterator);\n if (JS_IsException(iter)) return JS_EXCEPTION;\n let arr: JSValue;\n let len: number;\n if (!JS_IsUndefined(iter) && !JS_IsNull(iter)) {\n if (!JS_IsFunction(ctx, iter)) return JS_ThrowTypeError(ctx, 'value is not iterable');\n const r = js_array_from_iterator(ctx, items, iter);\n if (!r) return JS_EXCEPTION;\n arr = r.arr;\n len = r.len;\n } else {\n arr = JS_ToObject(ctx, items);\n if (JS_IsException(arr)) return JS_EXCEPTION;\n len = js_get_length64(ctx, arr);\n if (len < 0) return JS_EXCEPTION;\n }\n const r = js_typed_array_create(ctx, this_val, [len]);\n if (JS_IsException(r)) return JS_EXCEPTION;\n for (let k = 0; k < len; k++) {\n let v = JS_GetPropertyInt64(ctx, arr, k);\n if (JS_IsException(v)) return JS_EXCEPTION;\n if (mapping) {\n v = JS_Call(ctx, mapfn, this_arg, [v, k]);\n if (JS_IsException(v)) return JS_EXCEPTION;\n }\n if (JS_SetPropertyInt64(ctx, r, k, v) < 0) return JS_EXCEPTION;\n }\n return r;\n}\n\nfunction js_typed_array_of(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const obj = js_typed_array_create(ctx, this_val, [argv.length]);\n if (JS_IsException(obj)) return obj;\n for (let i = 0; i < argv.length; i++) {\n if (JS_SetPropertyUint32(ctx, obj, i, argv[i]) < 0) return JS_EXCEPTION;\n }\n return obj;\n}\n\nfunction js_typed_array_copyWithin(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const to = JS_ToInt32Clamp(ctx, argv[0], 0, len, len);\n if (JS_IsException(to)) return JS_EXCEPTION;\n const from = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(from)) return JS_EXCEPTION;\n let final: number | typeof JS_EXCEPTION = len;\n if (argv.length > 2 && !JS_IsUndefined(argv[2])) {\n final = JS_ToInt32Clamp(ctx, argv[2], 0, len, len);\n if (JS_IsException(final)) return JS_EXCEPTION;\n }\n const count = Math.min((final as number) - (from as number), len - (to as number));\n if (count > 0) {\n const p = this_val as JSObject;\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const view = typed_array_get_view(p);\n if (view) {\n /* the buffer may have been resized */\n const cur_len = view.length;\n const cnt = Math.min(count, cur_len - (from as number), cur_len - (to as number));\n if (cnt > 0) view.copyWithin(to as number, from as number, (from as number) + cnt);\n }\n }\n return this_val;\n}\n\nfunction js_typed_array_fill(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const p = this_val as JSObject;\n const v = typed_array_convert_value(ctx, Q.JS_GetClassID(p), argv[0]);\n if (JS_IsException(v)) return JS_EXCEPTION;\n let k: number | typeof JS_EXCEPTION = 0;\n if (argv.length > 1) {\n k = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(k)) return JS_EXCEPTION;\n }\n let final: number | typeof JS_EXCEPTION = len;\n if (argv.length > 2 && !JS_IsUndefined(argv[2])) {\n final = JS_ToInt32Clamp(ctx, argv[2], 0, len, len);\n if (JS_IsException(final)) return JS_EXCEPTION;\n }\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const view = typed_array_get_view(p);\n if (view) {\n /* RAB may have been resized by evil .valueOf method */\n const end = Math.min(final as number, view.length);\n if ((k as number) < end) (view as any).fill(v, k as number, end);\n }\n return this_val;\n}\n\nconst enum ArrayFindMode { ArrayFind, ArrayFindIndex, ArrayFindLast, ArrayFindLastIndex }\n\nfunction js_typed_array_find(ctx: JSContext, this_val: JSValue, argv: JSValue[], mode: number): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const func = argv[0];\n if (check_function(ctx, func)) return JS_EXCEPTION;\n let this_arg: JSValue = undefined;\n if (argv.length > 1) this_arg = argv[1];\n let k = 0, dir = 1, end = len;\n if (mode === ArrayFindMode.ArrayFindLast || mode === ArrayFindMode.ArrayFindLastIndex) {\n k = len - 1;\n dir = -1;\n end = -1;\n }\n for (; k !== end; k += dir) {\n const index_val = k;\n const val = JS_GetPropertyValue(ctx, this_val, index_val);\n if (JS_IsException(val)) return JS_EXCEPTION;\n const res = JS_Call(ctx, func, this_arg, [val, index_val, this_val]);\n if (JS_IsException(res)) return JS_EXCEPTION;\n if (JS_ToBoolFree(ctx, res)) {\n if (mode === ArrayFindMode.ArrayFindIndex || mode === ArrayFindMode.ArrayFindLastIndex) return index_val;\n return val;\n }\n }\n if (mode === ArrayFindMode.ArrayFindIndex || mode === ArrayFindMode.ArrayFindLastIndex) return -1;\n return undefined;\n}\n\nconst special_indexOf = 0;\nconst special_lastIndexOf = 1;\nconst special_includes = -1;\n\n/* value range of the integer typed arrays */\nconst int_ranges: [number, number][] = [\n [0, 255], [-128, 127], [0, 255], [-32768, 32767], [0, 65535], [-2147483648, 2147483647], [0, 4294967295],\n];\n\nfunction js_typed_array_indexOf(ctx: JSContext, this_val: JSValue, argv: JSValue[], special: number): JSValue {\n let res = -1;\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const done = (): JSValue => special === special_includes ? res >= 0 : res;\n if (len === 0) return done();\n let k: number, stop: number, inc: number;\n if (special === special_lastIndexOf) {\n k = len - 1;\n if (argv.length > 1) {\n const r = JS_ToFloat64(ctx, argv[1]);\n if (JS_IsException(r)) return JS_EXCEPTION;\n let d = r as number;\n if (Number.isNaN(d)) {\n k = 0;\n } else {\n if (d >= 0) {\n if (d < k) k = Math.trunc(d);\n } else {\n d += len;\n if (d < 0) return done();\n k = Math.trunc(d);\n }\n }\n }\n stop = -1;\n inc = -1;\n } else {\n k = 0;\n if (argv.length > 1) {\n const r = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(r)) return JS_EXCEPTION;\n k = r as number;\n }\n stop = len;\n inc = 1;\n }\n const p = this_val as JSObject;\n /* if the array was detached, no need to go further (but no\n exception is raised) */\n if (typed_array_is_detached(ctx, p) || typed_array_is_oob(ctx, p)) {\n /* \"includes\" scans all the properties, so \"undefined\" can match */\n if (special === special_includes && JS_IsUndefined(argv[0]) && len > 0) res = 0;\n return done();\n }\n const view = typed_array_get_view(p)!;\n /* the buffer may have been resized: only scan the current elements */\n if (view.length < len) {\n if (inc > 0) stop = view.length; else if (k >= view.length) k = view.length - 1;\n }\n const arg = argv[0];\n let is_int = false, is_bigint = false;\n let d = 0;\n let v64 = 0n;\n if (typeof arg === 'number') {\n d = arg;\n if (d >= -9223372036854775808 && d < 9223372036854775808 && Number.isInteger(d)) is_int = true;\n } else if (typeof arg === 'bigint') {\n if (Q.JS_GetClassID(p) === JSClassID.BIG_INT64_ARRAY) {\n if (arg < -(1n << 63n) || arg >= (1n << 63n)) return done(); /* does not fit an int64 : cannot be found */\n } else if (Q.JS_GetClassID(p) === JSClassID.BIG_UINT64_ARRAY) {\n if (arg < 0n || arg >= (1n << 64n)) return done();\n } else {\n return done();\n }\n v64 = arg;\n is_bigint = true;\n } else {\n return done();\n }\n const scan = (v: number | bigint): void => {\n for (; k !== stop; k += inc) {\n if (view[k] === v) { res = k; break; }\n }\n };\n switch (Q.JS_GetClassID(p)) {\n case JSClassID.INT8_ARRAY: case JSClassID.UINT8C_ARRAY: case JSClassID.UINT8_ARRAY:\n case JSClassID.INT16_ARRAY: case JSClassID.UINT16_ARRAY: case JSClassID.INT32_ARRAY: case JSClassID.UINT32_ARRAY: {\n const [min, max] = int_ranges[Q.JS_GetClassID(p) - JSClassID.UINT8C_ARRAY];\n if (is_int && d >= min && d <= max) scan(d);\n break;\n }\n case JSClassID.FLOAT16_ARRAY:\n if (is_bigint) break;\n if (Number.isNaN(d)) {\n /* special case: indexOf returns -1, includes finds NaN */\n if (special !== special_includes) return done();\n for (; k !== stop; k += inc) {\n if (Number.isNaN(view[k] as number)) { res = k; break; }\n }\n } else if (f16round(d) === d) {\n scan(d);\n }\n break;\n case JSClassID.FLOAT32_ARRAY:\n if (is_bigint) break;\n if (Number.isNaN(d)) {\n /* special case: indexOf returns -1, includes finds NaN */\n if (special !== special_includes) return done();\n for (; k !== stop; k += inc) {\n if (Number.isNaN(view[k] as number)) { res = k; break; }\n }\n } else if (Math.fround(d) === d) {\n scan(d);\n }\n break;\n case JSClassID.FLOAT64_ARRAY:\n if (is_bigint) break;\n if (Number.isNaN(d)) {\n /* special case: indexOf returns -1, includes finds NaN */\n if (special !== special_includes) return done();\n for (; k !== stop; k += inc) {\n if (Number.isNaN(view[k] as number)) { res = k; break; }\n }\n } else {\n scan(d);\n }\n break;\n case JSClassID.BIG_INT64_ARRAY:\n case JSClassID.BIG_UINT64_ARRAY:\n if (is_bigint) scan(v64);\n break;\n }\n return done();\n}\n\nfunction JS_ToLocaleStringFree(ctx: JSContext, val: JSValue): JSValue {\n if (JS_IsUndefined(val) || JS_IsNull(val)) return JS_ToString(ctx, val);\n return JS_Invoke(ctx, val, JS_ATOM_toLocaleString, []);\n}\n\nfunction js_typed_array_join(ctx: JSContext, this_val: JSValue, argv: JSValue[], toLocaleString: number): JSValue {\n const n = js_typed_array_get_length_internal(ctx, this_val);\n if (n < 0) return JS_EXCEPTION;\n let sep = ','; /* default separator */\n if (!toLocaleString && argv.length > 0 && !JS_IsUndefined(argv[0])) {\n const s = JS_ToString(ctx, argv[0]);\n if (JS_IsException(s)) return JS_EXCEPTION;\n sep = s as string;\n }\n let b = '';\n /* XXX: optimize with direct access */\n for (let i = 0; i < n; i++) {\n if (i > 0) b += sep;\n let el = JS_GetPropertyUint32(ctx, this_val, i);\n /* Can return undefined for example if the typed array is detached */\n if (!JS_IsNull(el) && !JS_IsUndefined(el)) {\n if (JS_IsException(el)) return JS_EXCEPTION;\n if (toLocaleString) {\n el = JS_ToLocaleStringFree(ctx, el);\n if (JS_IsException(el)) return JS_EXCEPTION;\n }\n const s = JS_ToString(ctx, el);\n if (JS_IsException(s)) return JS_EXCEPTION;\n b += s as string;\n }\n }\n return b;\n}\n\nfunction js_typed_array_reverse(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n if (len > 0) {\n const view = typed_array_get_view(this_val as JSObject);\n if (view) view.reverse();\n }\n return this_val;\n}\n\nfunction js_typed_array_toReversed(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n const arr = js_typed_array_constructor_ta(ctx, undefined, this_val, Q.JS_GetClassID(p));\n if (JS_IsException(arr)) return JS_EXCEPTION;\n return js_typed_array_reverse(ctx, arr, argv);\n}\n\n/* copy 'len' bytes; the spec mandates a byte copy when the regions overlap */\nfunction slice_memcpy(dst: Uint8Array, dst_pos: number, src: Uint8Array, src_pos: number, len: number): void {\n if (dst.buffer !== src.buffer) {\n dst.set(src.subarray(src_pos, src_pos + len), dst_pos);\n } else {\n const d0 = dst.byteOffset + dst_pos, s0 = src.byteOffset + src_pos;\n if (d0 + len <= s0 || d0 >= s0 + len) {\n dst.set(src.subarray(src_pos, src_pos + len), dst_pos);\n } else {\n for (let i = 0; i < len; i++) dst[dst_pos + i] = src[src_pos + i];\n }\n }\n}\n\nfunction js_typed_array_slice(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const start = JS_ToInt32Clamp(ctx, argv[0], 0, len, len);\n if (JS_IsException(start)) return JS_EXCEPTION;\n let final: number | typeof JS_EXCEPTION = len;\n if (!JS_IsUndefined(argv[1])) {\n final = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(final)) return JS_EXCEPTION;\n }\n const count = Math.max((final as number) - (start as number), 0);\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n const shift = typed_array_size_log2(Q.JS_GetClassID(p));\n const arr = js_typed_array___speciesCreate(ctx, undefined, [this_val, count]);\n if (JS_IsException(arr)) return JS_EXCEPTION;\n if (count > 0) {\n if (validate_typed_array(ctx, this_val) || validate_typed_array(ctx, arr)) return JS_EXCEPTION;\n const p1 = get_typed_array(ctx, arr, false);\n if (p1 !== null && Q.JS_GetClassID(p) === Q.JS_GetClassID(p1) &&\n typed_array_get_length(ctx, p1) >= count &&\n typed_array_get_length(ctx, p) >= (start as number) + count) {\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray, ta1 = Q.JS_GetAnyOpaque(p1) as JSTypedArray;\n const src = (Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer).data, dst = (Q.JS_GetAnyOpaque(ta1.buffer) as JSArrayBuffer).data;\n slice_memcpy(dst, ta1.offset, src, ta.offset + ((start as number) << shift), count << shift);\n } else {\n for (let n = 0; n < count; n++) {\n const val = JS_GetPropertyValue(ctx, this_val, (start as number) + n);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (JS_SetPropertyValue(ctx, arr, n, val, JS_PROP_THROW) < 0) return JS_EXCEPTION;\n }\n }\n }\n return arr;\n}\n\nfunction js_typed_array_subarray(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n const len = typed_array_get_length(ctx, p);\n const start = JS_ToInt32Clamp(ctx, argv[0], 0, len, len);\n if (JS_IsException(start)) return JS_EXCEPTION;\n let final: number | typeof JS_EXCEPTION = len;\n if (!JS_IsUndefined(argv[1])) {\n final = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(final)) return JS_EXCEPTION;\n }\n const count = Math.max((final as number) - (start as number), 0);\n const byteOffset = js_typed_array_get_byteOffset(ctx, this_val, 0);\n if (JS_IsException(byteOffset)) return JS_EXCEPTION;\n const shift = typed_array_size_log2(Q.JS_GetClassID(p));\n const offset = (byteOffset as number) + ((start as number) << shift);\n const ta_buffer = js_typed_array_get_buffer(ctx, this_val, 0);\n if (JS_IsException(ta_buffer)) return JS_EXCEPTION;\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n if (ta.track_rab && JS_IsUndefined(argv[1])) {\n /* length tracking subarray of a length tracking array */\n return js_typed_array___speciesCreate(ctx, undefined, [this_val, ta_buffer, offset]);\n }\n return js_typed_array___speciesCreate(ctx, undefined, [this_val, ta_buffer, offset, count]);\n}\n\n/* TypedArray.prototype.sort */\n\nfunction js_cmp_doubles(x: number, y: number): number {\n if (Number.isNaN(x)) return Number.isNaN(y) ? 0 : +1;\n if (Number.isNaN(y)) return -1;\n if (x < y) return -1;\n if (x > y) return 1;\n if (x !== 0) return 0;\n if (1 / x < 0) return 1 / y < 0 ? 0 : -1;\n return 1 / y < 0 ? 1 : 0;\n}\n\nfunction js_TA_cmp_default(a: number | bigint, b: number | bigint): number {\n if (typeof a === 'bigint') return a < (b as bigint) ? -1 : a > (b as bigint) ? 1 : 0;\n return js_cmp_doubles(a, b as number);\n}\n\n/* stable merge sort of an index array */\nfunction merge_sort_indices(idx: number[], cmp: (a: number, b: number) => number): number[] {\n const n = idx.length;\n let src = idx, dst = new Array<number>(n);\n for (let width = 1; width < n; width *= 2) {\n for (let i = 0; i < n; i += 2 * width) {\n let l = i, r = Math.min(i + width, n);\n const lend = r, rend = Math.min(i + 2 * width, n);\n let k = i;\n while (l < lend && r < rend) {\n if (cmp(src[l], src[r]) <= 0) dst[k++] = src[l++];\n else dst[k++] = src[r++];\n }\n while (l < lend) dst[k++] = src[l++];\n while (r < rend) dst[k++] = src[r++];\n }\n const t = src; src = dst; dst = t;\n }\n return src;\n}\n\nfunction js_typed_array_sort(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const cmp = argv[0];\n if (!JS_IsUndefined(cmp) && check_function(ctx, cmp)) return JS_EXCEPTION;\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n if (len > 1) {\n const p = this_val as JSObject;\n const view = typed_array_get_view(p)!;\n const vals: (number | bigint)[] = new Array(len);\n for (let i = 0; i < len; i++) vals[i] = view[i];\n if (!JS_IsUndefined(cmp)) {\n let exception = 0;\n const idx: number[] = new Array(len);\n for (let i = 0; i < len; i++) idx[i] = i;\n const sorted = merge_sort_indices(idx, (a, b) => {\n if (exception) return 0;\n const res = JS_Call(ctx, cmp, undefined, [vals[a], vals[b]]);\n if (JS_IsException(res)) { exception = 1; return 0; }\n const d = JS_ToFloat64(ctx, res);\n if (JS_IsException(d)) { exception = 1; return 0; }\n let v = d as number;\n if (Number.isNaN(v)) v = 0;\n /* make sort stable: compare array offsets */\n if (v === 0) return a - b;\n return v < 0 ? -1 : 1;\n });\n if (exception) return JS_EXCEPTION;\n /* the array may have been detached or resized during the sort: no error */\n const view1 = typed_array_get_view(p);\n if (view1) {\n const n = Math.min(len, view1.length);\n for (let i = 0; i < n; i++) (view1 as any)[i] = vals[sorted[i]];\n }\n } else {\n const idx: number[] = new Array(len);\n for (let i = 0; i < len; i++) idx[i] = i;\n const sorted = merge_sort_indices(idx, (a, b) => js_TA_cmp_default(vals[a], vals[b]));\n for (let i = 0; i < len; i++) (view as any)[i] = vals[sorted[i]];\n }\n }\n return this_val;\n}\n\nfunction js_typed_array_toSorted(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n const arr = js_typed_array_constructor_ta(ctx, undefined, this_val, Q.JS_GetClassID(p));\n if (JS_IsException(arr)) return JS_EXCEPTION;\n return js_typed_array_sort(ctx, arr, argv);\n}\n\n/* every/some/forEach/map/filter (typed array variants of js_array_every) */\nconst special_every = 0;\nconst special_some = 1;\nconst special_forEach = 2;\nconst special_map = 3;\nconst special_filter = 4;\nconst special_TA = 8;\n\nfunction js_array_every(ctx: JSContext, this_val: JSValue, argv: JSValue[], special: number): JSValue {\n const obj = this_val;\n const len = js_typed_array_get_length_internal(ctx, obj);\n if (len < 0) return JS_EXCEPTION;\n const func = argv[0];\n let this_arg: JSValue = undefined;\n if (argv.length > 1) this_arg = argv[1];\n if (check_function(ctx, func)) return JS_EXCEPTION;\n let ret: JSValue = undefined;\n switch (special) {\n case special_every | special_TA:\n ret = true;\n break;\n case special_some | special_TA:\n ret = false;\n break;\n case special_map | special_TA:\n ret = js_typed_array___speciesCreate(ctx, undefined, [obj, len]);\n if (JS_IsException(ret)) return JS_EXCEPTION;\n break;\n case special_filter | special_TA:\n ret = JS_NewArray(ctx);\n if (JS_IsException(ret)) return JS_EXCEPTION;\n break;\n }\n let n = 0;\n let k: number;\n loop: for (k = 0; k < len; k++) {\n const val = JS_GetPropertyInt64(ctx, obj, k);\n if (JS_IsException(val)) return JS_EXCEPTION;\n const res = JS_Call(ctx, func, this_arg, [val, k, obj]);\n if (JS_IsException(res)) return JS_EXCEPTION;\n switch (special) {\n case special_every | special_TA:\n if (!JS_ToBoolFree(ctx, res)) { ret = false; break loop; }\n break;\n case special_some | special_TA:\n if (JS_ToBoolFree(ctx, res)) { ret = true; break loop; }\n break;\n case special_map | special_TA:\n if (JS_SetPropertyValue(ctx, ret, k, res, JS_PROP_THROW) < 0) return JS_EXCEPTION;\n break;\n case special_filter | special_TA:\n if (JS_ToBoolFree(ctx, res)) {\n if (JS_DefinePropertyValueInt64(ctx, ret, n++, val, JS_PROP_C_W_E | JS_PROP_THROW) < 0) return JS_EXCEPTION;\n }\n break;\n default:\n break;\n }\n }\n if (special === (special_filter | special_TA)) {\n const arr = js_typed_array___speciesCreate(ctx, undefined, [obj, n]);\n if (JS_IsException(arr)) return JS_EXCEPTION;\n const res = JS_Invoke(ctx, arr, JS_ATOM_set, [ret]);\n if (JS_IsException(res)) return JS_EXCEPTION;\n ret = arr;\n }\n return ret;\n}\n\nconst special_reduce = 0;\nconst special_reduceRight = 1;\n\nfunction js_array_reduce(ctx: JSContext, this_val: JSValue, argv: JSValue[], special: number): JSValue {\n const obj = this_val;\n const len = js_typed_array_get_length_internal(ctx, obj);\n if (len < 0) return JS_EXCEPTION;\n const func = argv[0];\n if (check_function(ctx, func)) return JS_EXCEPTION;\n let k = 0;\n let acc: JSValue;\n if (argv.length > 1) {\n acc = argv[1];\n } else {\n if (k >= len) return JS_ThrowTypeError(ctx, 'empty array');\n const k1 = (special & special_reduceRight) ? len - k - 1 : k;\n k++;\n acc = JS_GetPropertyInt64(ctx, obj, k1);\n if (JS_IsException(acc)) return JS_EXCEPTION;\n }\n for (; k < len; k++) {\n const k1 = (special & special_reduceRight) ? len - k - 1 : k;\n const val = JS_GetPropertyInt64(ctx, obj, k1);\n if (JS_IsException(val)) return JS_EXCEPTION;\n const acc1 = JS_Call(ctx, func, undefined, [acc, val, k1, obj]);\n if (JS_IsException(acc1)) return JS_EXCEPTION;\n acc = acc1;\n }\n return acc;\n}\n\n/* fallback Array.prototype.toString (used if the Array builtins are not\n installed yet): port of js_array_toString */\nfunction js_array_toString(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const obj = JS_ToObject(ctx, this_val);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n const method = JS_GetProperty(ctx, obj, JS_ATOM_join);\n if (JS_IsException(method)) return JS_EXCEPTION;\n if (!JS_IsFunction(ctx, method)) {\n /* Use intrinsic Object.prototype.toString */\n const objproto = ctx.class_proto[JSClassID.OBJECT];\n const ts = objproto ? JS_GetProperty(ctx, objproto, JS_ATOM_toString) : undefined;\n if (JS_IsException(ts)) return JS_EXCEPTION;\n if (JS_IsFunction(ctx, ts)) return JS_Call(ctx, ts, obj, []);\n return '[object Object]';\n }\n return JS_Call(ctx, method, obj, []);\n}\n\nconst js_typed_array_base_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_DEF('from', 1, js_typed_array_from),\n JS_CFUNC_DEF('of', 0, js_typed_array_of),\n JS_CGETSET_DEF(JS_ATOM_Symbol_species, js_get_this, null),\n];\n\nconst js_typed_array_base_proto_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_DEF(JS_ATOM_length, js_typed_array_get_length, null),\n JS_CFUNC_DEF('at', 1, js_typed_array_at),\n JS_CFUNC_DEF('with', 2, js_typed_array_with),\n JS_CGETSET_MAGIC_DEF('buffer', js_typed_array_get_buffer, null, 0),\n JS_CGETSET_MAGIC_DEF('byteLength', js_typed_array_get_byteLength, null, 0),\n JS_CGETSET_MAGIC_DEF('byteOffset', js_typed_array_get_byteOffset, null, 0),\n JS_CFUNC_DEF('set', 1, js_typed_array_set),\n /* typed arrays are host typed arrays: the host iterators are used, with\n the guest Array Iterator prototype */\n JS_NATIVE_DEF('values', 0, HOST_TYPED_ARRAY_PROTO.values, fix_array_iterator),\n JS_ALIAS_DEF(JS_ATOM_Symbol_iterator, 'values'),\n JS_NATIVE_DEF('keys', 0, HOST_TYPED_ARRAY_PROTO.keys, fix_array_iterator),\n JS_NATIVE_DEF('entries', 0, HOST_TYPED_ARRAY_PROTO.entries, fix_array_iterator),\n JS_CGETSET_DEF(JS_ATOM_Symbol_toStringTag, js_typed_array_get_toStringTag, null),\n JS_CFUNC_DEF('copyWithin', 2, js_typed_array_copyWithin),\n JS_CFUNC_MAGIC_DEF('every', 1, js_array_every, special_every | special_TA),\n JS_CFUNC_MAGIC_DEF('some', 1, js_array_every, special_some | special_TA),\n JS_CFUNC_MAGIC_DEF('forEach', 1, js_array_every, special_forEach | special_TA),\n JS_CFUNC_MAGIC_DEF('map', 1, js_array_every, special_map | special_TA),\n JS_CFUNC_MAGIC_DEF('filter', 1, js_array_every, special_filter | special_TA),\n JS_CFUNC_MAGIC_DEF('reduce', 1, js_array_reduce, special_reduce | special_TA),\n JS_CFUNC_MAGIC_DEF('reduceRight', 1, js_array_reduce, special_reduceRight | special_TA),\n JS_CFUNC_DEF('fill', 1, js_typed_array_fill),\n JS_CFUNC_MAGIC_DEF('find', 1, js_typed_array_find, ArrayFindMode.ArrayFind),\n JS_CFUNC_MAGIC_DEF('findIndex', 1, js_typed_array_find, ArrayFindMode.ArrayFindIndex),\n JS_CFUNC_MAGIC_DEF('findLast', 1, js_typed_array_find, ArrayFindMode.ArrayFindLast),\n JS_CFUNC_MAGIC_DEF('findLastIndex', 1, js_typed_array_find, ArrayFindMode.ArrayFindLastIndex),\n JS_CFUNC_DEF('reverse', 0, js_typed_array_reverse),\n JS_CFUNC_DEF('toReversed', 0, js_typed_array_toReversed),\n JS_CFUNC_DEF('slice', 2, js_typed_array_slice),\n JS_CFUNC_DEF('subarray', 2, js_typed_array_subarray),\n JS_CFUNC_DEF('sort', 1, js_typed_array_sort),\n JS_CFUNC_DEF('toSorted', 1, js_typed_array_toSorted),\n JS_CFUNC_MAGIC_DEF('join', 1, js_typed_array_join, 0),\n JS_CFUNC_MAGIC_DEF('toLocaleString', 0, js_typed_array_join, 1),\n JS_CFUNC_MAGIC_DEF('indexOf', 1, js_typed_array_indexOf, special_indexOf),\n JS_CFUNC_MAGIC_DEF('lastIndexOf', 1, js_typed_array_indexOf, special_lastIndexOf),\n JS_CFUNC_MAGIC_DEF('includes', 1, js_typed_array_indexOf, special_includes),\n];\n\nfunction js_typed_array_base_constructor(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return JS_ThrowTypeError(ctx, 'cannot be called');\n}\n\n/* 'obj' is the allocated placeholder object (its prototype and class are\n used). Returns the guest typed array object: a host typed array over\n the buffer, re-prototyped, carrying the metadata. */\nfunction typed_array_init(ctx: JSContext, obj: JSValue, buffer: JSValue, offset: number, len: number, track_rab: boolean): JSValue {\n const class_id = Q.JS_GetClassID(obj);\n const size_log2 = typed_array_size_log2(class_id);\n const ta = new JSTypedArray(buffer as JSObject, offset, len << size_log2);\n ta.track_rab = track_rab;\n const abuf = Q.JS_GetAnyOpaque(buffer) as JSArrayBuffer;\n const ctor = host_ta_ctors[class_id - JSClassID.UINT8C_ARRAY]!;\n let view: HostTA;\n try {\n view = track_rab ? new (ctor as any)(abuf.buffer, offset) : new ctor(abuf.buffer, offset, len);\n } catch (e) {\n return Q.js_host_exception_to_guest(ctx, e);\n }\n return host_view_adopt(ctx, obj, view, ta);\n}\n\n/* move the class metadata of the placeholder 'obj' to the host view */\nfunction host_view_adopt(ctx: JSContext, obj: JSValue, view: object, ta: JSTypedArray): JSValue {\n Object.setPrototypeOf(view, Reflect.getPrototypeOf(obj as object));\n const m = Q.js_meta.get(obj as object)!;\n m.u = ta;\n Q.js_meta.set(view, m);\n Q.js_meta.delete(obj as object);\n return view;\n}\n\nfunction js_typed_array_constructor_obj(ctx: JSContext, new_target: JSValue, obj: JSValue, classid: JSClassID): JSValue {\n const size_log2 = typed_array_size_log2(classid);\n let ret = js_create_from_ctor(ctx, new_target, classid);\n if (JS_IsException(ret)) return JS_EXCEPTION;\n const iter = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_iterator);\n if (JS_IsException(iter)) return JS_EXCEPTION;\n let arr: JSValue;\n let len: number;\n if (!JS_IsUndefined(iter) && !JS_IsNull(iter)) {\n const r = js_array_from_iterator(ctx, obj, iter);\n if (!r) return JS_EXCEPTION;\n arr = r.arr;\n len = r.len;\n } else {\n len = js_get_length64(ctx, obj);\n if (len < 0) return JS_EXCEPTION;\n arr = obj;\n }\n const buffer = js_array_buffer_constructor1(ctx, undefined, len << size_log2);\n if (JS_IsException(buffer)) return JS_EXCEPTION;\n ret = typed_array_init(ctx, ret, buffer, 0, len, false);\n if (JS_IsException(ret)) return JS_EXCEPTION;\n for (let i = 0; i < len; i++) {\n const val = JS_GetPropertyUint32(ctx, arr, i);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (JS_SetPropertyUint32(ctx, ret, i, val) < 0) return JS_EXCEPTION;\n }\n return ret;\n}\n\nfunction js_typed_array_constructor_ta(ctx: JSContext, new_target: JSValue, src_obj: JSValue, classid: JSClassID): JSValue {\n let obj = js_create_from_ctor(ctx, new_target, classid);\n if (JS_IsException(obj)) return obj;\n const p = src_obj as JSObject;\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (typed_array_is_oob(ctx, p)) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n const len = typed_array_get_length(ctx, p);\n const src_abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n const size_log2 = typed_array_size_log2(classid);\n const buffer = js_array_buffer_constructor1(ctx, undefined, len << size_log2);\n if (JS_IsException(buffer)) return JS_EXCEPTION;\n /* necessary because it could have been detached */\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const abuf = Q.JS_GetAnyOpaque(buffer) as JSArrayBuffer;\n obj = typed_array_init(ctx, obj, buffer, 0, len, false);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n if (Q.JS_GetClassID(p) === classid) {\n /* same type: copy the content */\n abuf.data.set(src_abuf.data.subarray(ta.offset, ta.offset + abuf.data.length));\n } else {\n for (let i = 0; i < len; i++) {\n const val = JS_GetPropertyUint32(ctx, src_obj, i);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (JS_SetPropertyUint32(ctx, obj, i, val) < 0) return JS_EXCEPTION;\n }\n }\n return obj;\n}\n\nfunction js_typed_array_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[], classid: number): JSValue {\n const size_log2 = typed_array_size_log2(classid as JSClassID);\n let buffer: JSValue;\n let len: number, offset: number;\n let track_rab = false;\n const arg0 = argv[0];\n /* the object (its prototype read from new.target) is created before the\n offset and the length are converted (QuickJS 68caa5f) */\n let obj: JSValue;\n if (!Q.JS_IsObject(arg0)) {\n len = JS_ToIndex(ctx, arg0);\n if (len < 0) return JS_EXCEPTION;\n obj = js_create_from_ctor(ctx, new_target, classid as JSClassID);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n buffer = js_array_buffer_constructor1(ctx, undefined, len << size_log2);\n if (JS_IsException(buffer)) return JS_EXCEPTION;\n offset = 0;\n } else {\n const p = arg0;\n if (Q.JS_GetClassID(p) === JSClassID.ARRAY_BUFFER || Q.JS_GetClassID(p) === JSClassID.SHARED_ARRAY_BUFFER) {\n obj = js_create_from_ctor(ctx, new_target, classid as JSClassID);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n const abuf = Q.JS_GetAnyOpaque(p) as JSArrayBuffer;\n offset = JS_ToIndex(ctx, argv[1]);\n if (offset < 0) return JS_EXCEPTION;\n if ((offset & ((1 << size_log2) - 1)) !== 0) return JS_ThrowRangeError(ctx, 'invalid offset');\n if (JS_IsUndefined(argv[2])) {\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (offset > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid offset');\n if (array_buffer_is_resizable(abuf)) {\n track_rab = true;\n len = (abuf.data.length - offset) >> size_log2;\n } else {\n if ((abuf.data.length & ((1 << size_log2) - 1)) !== 0) return JS_ThrowRangeError(ctx, 'invalid length');\n len = (abuf.data.length - offset) >> size_log2;\n }\n } else {\n len = JS_ToIndex(ctx, argv[2]);\n if (len < 0) return JS_EXCEPTION;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if ((offset + (len << size_log2)) > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid length');\n }\n buffer = arg0;\n } else {\n if (is_typed_array_class(Q.JS_GetClassID(p))) {\n return js_typed_array_constructor_ta(ctx, new_target, arg0, classid as JSClassID);\n } else {\n return js_typed_array_constructor_obj(ctx, new_target, arg0, classid as JSClassID);\n }\n }\n }\n return typed_array_init(ctx, obj, buffer, offset, len, track_rab);\n}\n\n/* ---------------------------------------------------------------------\n DataView\n --------------------------------------------------------------------- */\n\nfunction js_dataview_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[]): JSValue {\n const buffer = argv[0];\n const abuf = js_get_array_buffer(ctx, buffer);\n if (!abuf) return JS_EXCEPTION;\n let offset = 0;\n if (argv.length > 1) {\n offset = JS_ToIndex(ctx, argv[1]);\n if (offset < 0) return JS_EXCEPTION;\n }\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (offset > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid byteOffset');\n let len = abuf.data.length - offset;\n let track_rab = false;\n let recompute_len = false;\n if (argv.length > 2 && !JS_IsUndefined(argv[2])) {\n const l = JS_ToIndex(ctx, argv[2]);\n if (l < 0) return JS_EXCEPTION;\n if (l > len) return JS_ThrowRangeError(ctx, 'invalid byteLength');\n len = l;\n } else {\n recompute_len = true;\n track_rab = array_buffer_is_resizable(abuf);\n }\n const obj = js_create_from_ctor(ctx, new_target, JSClassID.DATAVIEW);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n if (abuf.detached) {\n /* could have been detached in js_create_from_ctor() */\n return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n }\n /* the buffer could have been resized in js_create_from_ctor() (a RangeError, as in\n QuickJS 2026-06-04 and the specification) */\n if (offset > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid byteOffset or byteLength');\n if (recompute_len) len = abuf.data.length - offset;\n else if (offset + len > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid byteOffset or byteLength');\n const ta = new JSTypedArray(buffer as JSObject, offset, len);\n ta.track_rab = track_rab;\n let view: DataView;\n try {\n view = track_rab ? new DataView(abuf.buffer, offset) : new DataView(abuf.buffer, offset, len);\n } catch (e) {\n return Q.js_host_exception_to_guest(ctx, e);\n }\n return host_view_adopt(ctx, obj, view, ta);\n}\n\nfunction js_dataview_getValue(ctx: JSContext, this_obj: JSValue, argv: JSValue[], class_id: number): JSValue {\n const ta = JS_GetOpaque2(ctx, this_obj, JSClassID.DATAVIEW) as JSTypedArray | null;\n if (!ta) return JS_EXCEPTION;\n const size = 1 << typed_array_size_log2(class_id as JSClassID);\n const pos = JS_ToIndex(ctx, argv[0]);\n if (pos < 0) return JS_EXCEPTION;\n const littleEndian = argv.length > 1 && JS_ToBoolFree(ctx, argv[1]);\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const ta_len = typed_array_get_byte_length(ta, 0);\n if (ta_len < 0) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n if ((pos + size) > ta_len) return JS_ThrowRangeError(ctx, 'out of bound');\n const dv = array_buffer_get_dv(abuf);\n const ptr = ta.offset + pos;\n switch (class_id) {\n case JSClassID.INT8_ARRAY: return dv.getInt8(ptr);\n case JSClassID.UINT8_ARRAY: return dv.getUint8(ptr);\n case JSClassID.INT16_ARRAY: return dv.getInt16(ptr, littleEndian);\n case JSClassID.UINT16_ARRAY: return dv.getUint16(ptr, littleEndian);\n case JSClassID.INT32_ARRAY: return dv.getInt32(ptr, littleEndian);\n case JSClassID.UINT32_ARRAY: return dv.getUint32(ptr, littleEndian);\n case JSClassID.BIG_INT64_ARRAY: return dv.getBigInt64(ptr, littleEndian);\n case JSClassID.BIG_UINT64_ARRAY: return dv.getBigUint64(ptr, littleEndian);\n case JSClassID.FLOAT16_ARRAY: return fromfp16(dv.getUint16(ptr, littleEndian));\n case JSClassID.FLOAT32_ARRAY: return dv.getFloat32(ptr, littleEndian);\n case JSClassID.FLOAT64_ARRAY: return dv.getFloat64(ptr, littleEndian);\n default: return JS_ThrowTypeError(ctx, 'invalid DataView type');\n }\n}\n\nfunction js_dataview_setValue(ctx: JSContext, this_obj: JSValue, argv: JSValue[], class_id: number): JSValue {\n const ta = JS_GetOpaque2(ctx, this_obj, JSClassID.DATAVIEW) as JSTypedArray | null;\n if (!ta) return JS_EXCEPTION;\n const size = 1 << typed_array_size_log2(class_id as JSClassID);\n const pos = JS_ToIndex(ctx, argv[0]);\n if (pos < 0) return JS_EXCEPTION;\n const val = argv[1];\n let v: number = 0;\n let v64: bigint = 0n;\n if (class_id <= JSClassID.UINT32_ARRAY) {\n const r = JS_ToUint32Free(ctx, val);\n if (JS_IsException(r)) return JS_EXCEPTION;\n v = r as number;\n } else if (class_id <= JSClassID.BIG_UINT64_ARRAY) {\n const r = JS_ToBigInt64(ctx, val);\n if (JS_IsException(r)) return JS_EXCEPTION;\n v64 = r as bigint;\n } else {\n const r = JS_ToFloat64(ctx, val);\n if (JS_IsException(r)) return JS_EXCEPTION;\n v = r as number;\n }\n const littleEndian = argv.length > 2 && JS_ToBoolFree(ctx, argv[2]);\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const ta_len = typed_array_get_byte_length(ta, 0);\n if (ta_len < 0) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n if ((pos + size) > ta_len) return JS_ThrowRangeError(ctx, 'out of bound');\n const dv = array_buffer_get_dv(abuf);\n const ptr = ta.offset + pos;\n switch (class_id) {\n case JSClassID.INT8_ARRAY:\n case JSClassID.UINT8_ARRAY:\n dv.setUint8(ptr, v);\n break;\n case JSClassID.INT16_ARRAY:\n case JSClassID.UINT16_ARRAY:\n dv.setUint16(ptr, v, littleEndian);\n break;\n case JSClassID.INT32_ARRAY:\n case JSClassID.UINT32_ARRAY:\n dv.setUint32(ptr, v, littleEndian);\n break;\n case JSClassID.FLOAT16_ARRAY:\n dv.setUint16(ptr, tofp16(v), littleEndian);\n break;\n case JSClassID.FLOAT32_ARRAY:\n dv.setFloat32(ptr, v, littleEndian);\n break;\n case JSClassID.BIG_INT64_ARRAY:\n case JSClassID.BIG_UINT64_ARRAY:\n dv.setBigInt64(ptr, v64, littleEndian);\n break;\n case JSClassID.FLOAT64_ARRAY:\n dv.setFloat64(ptr, v, littleEndian);\n break;\n default:\n return JS_ThrowTypeError(ctx, 'invalid DataView type');\n }\n return undefined;\n}\n\nconst js_dataview_proto_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_MAGIC_DEF('buffer', js_typed_array_get_buffer, null, 1),\n JS_CGETSET_MAGIC_DEF('byteLength', js_typed_array_get_byteLength, null, 1),\n JS_CGETSET_MAGIC_DEF('byteOffset', js_typed_array_get_byteOffset, null, 1),\n JS_CFUNC_MAGIC_DEF('getInt8', 1, js_dataview_getValue, JSClassID.INT8_ARRAY),\n JS_CFUNC_MAGIC_DEF('getUint8', 1, js_dataview_getValue, JSClassID.UINT8_ARRAY),\n JS_CFUNC_MAGIC_DEF('getInt16', 1, js_dataview_getValue, JSClassID.INT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('getUint16', 1, js_dataview_getValue, JSClassID.UINT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('getInt32', 1, js_dataview_getValue, JSClassID.INT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('getUint32', 1, js_dataview_getValue, JSClassID.UINT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('getBigInt64', 1, js_dataview_getValue, JSClassID.BIG_INT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('getBigUint64', 1, js_dataview_getValue, JSClassID.BIG_UINT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('getFloat16', 1, js_dataview_getValue, JSClassID.FLOAT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('getFloat32', 1, js_dataview_getValue, JSClassID.FLOAT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('getFloat64', 1, js_dataview_getValue, JSClassID.FLOAT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('setInt8', 2, js_dataview_setValue, JSClassID.INT8_ARRAY),\n JS_CFUNC_MAGIC_DEF('setUint8', 2, js_dataview_setValue, JSClassID.UINT8_ARRAY),\n JS_CFUNC_MAGIC_DEF('setInt16', 2, js_dataview_setValue, JSClassID.INT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('setUint16', 2, js_dataview_setValue, JSClassID.UINT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('setInt32', 2, js_dataview_setValue, JSClassID.INT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('setUint32', 2, js_dataview_setValue, JSClassID.UINT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('setBigInt64', 2, js_dataview_setValue, JSClassID.BIG_INT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('setBigUint64', 2, js_dataview_setValue, JSClassID.BIG_UINT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('setFloat16', 2, js_dataview_setValue, JSClassID.FLOAT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('setFloat32', 2, js_dataview_setValue, JSClassID.FLOAT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('setFloat64', 2, js_dataview_setValue, JSClassID.FLOAT64_ARRAY),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'DataView', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n Uint8Array base64 / hex (tc39 proposal-arraybuffer-base64)\n --------------------------------------------------------------------- */\n\n/* JS_STRING_LEN_MAX */\nconst JS_STRING_LEN_MAX = (1 << 30) - 1;\n\n/* a new Uint8Array holding a copy of 'buf' (JS_NewUint8ArrayCopy) */\nfunction JS_NewUint8ArrayCopy(ctx: JSContext, buf: Uint8Array): JSValue {\n const buffer = js_array_buffer_constructor3(ctx, undefined, buf.length, -1, JSClassID.ARRAY_BUFFER, buf);\n if (JS_IsException(buffer)) return JS_EXCEPTION;\n const obj = js_create_from_ctor(ctx, undefined, JSClassID.UINT8_ARRAY);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n return typed_array_init(ctx, obj, buffer, 0, buf.length, false);\n}\n\n/* this_val must be a Uint8Array (type check only, no detach check) */\nfunction check_uint8array(ctx: JSContext, this_val: JSValue): JSObject | null {\n if (Q.JS_IsObject(this_val) && Q.JS_GetClassID(this_val) === JSClassID.UINT8_ARRAY) return this_val;\n JS_ThrowTypeError(ctx, 'not a Uint8Array');\n return null;\n}\n\n/* the bytes of a Uint8Array, checking for detached and out of bounds buffers.\n Must be called after the options are read (spec ordering). */\nfunction get_uint8array_bytes(ctx: JSContext, p: JSObject): Uint8Array | null {\n if (typed_array_is_oob(ctx, p)) {\n JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return null;\n }\n return (typed_array_get_view(p) as Uint8Array | null) ?? new Uint8Array(0);\n}\n\n/* GetOptionsObject: undefined or an object */\nfunction check_options_object(ctx: JSContext, options: JSValue): number {\n if (JS_IsUndefined(options)) return 0;\n if (!Q.JS_IsObject(options)) {\n JS_ThrowTypeError(ctx, 'options must be an object');\n return -1;\n }\n return 0;\n}\n\n/* the 'alphabet' option: B64_ALPHABET_xxx or -1 on exception */\nfunction parse_alphabet_option(ctx: JSContext, options: JSValue): number {\n if (JS_IsUndefined(options)) return B64_ALPHABET_BASE64;\n const val = JS_GetPropertyStr(ctx, options, 'alphabet');\n if (JS_IsException(val)) return -1;\n if (JS_IsUndefined(val)) return B64_ALPHABET_BASE64;\n if (typeof val !== 'string') {\n JS_ThrowTypeError(ctx, 'expected string for alphabet');\n return -1;\n }\n if (val === 'base64') return B64_ALPHABET_BASE64;\n if (val === 'base64url') return B64_ALPHABET_BASE64URL;\n JS_ThrowTypeError(ctx, 'invalid alphabet');\n return -1;\n}\n\n/* the 'lastChunkHandling' option: B64_LAST_xxx or -1 on exception */\nfunction parse_last_chunk_option(ctx: JSContext, options: JSValue): number {\n if (JS_IsUndefined(options)) return B64_LAST_LOOSE;\n const val = JS_GetPropertyStr(ctx, options, 'lastChunkHandling');\n if (JS_IsException(val)) return -1;\n if (JS_IsUndefined(val)) return B64_LAST_LOOSE;\n if (typeof val !== 'string') {\n JS_ThrowTypeError(ctx, 'expected string for lastChunkHandling');\n return -1;\n }\n if (val === 'loose') return B64_LAST_LOOSE;\n if (val === 'strict') return B64_LAST_STRICT;\n if (val === 'stop-before-partial') return B64_LAST_STOP_BEFORE_PARTIAL;\n JS_ThrowTypeError(ctx, 'invalid lastChunkHandling option');\n return -1;\n}\n\n/* Uint8Array.prototype.toBase64([options]) */\nfunction js_uint8array_to_base64(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = check_uint8array(ctx, this_val);\n if (!p) return JS_EXCEPTION;\n const options = argv.length > 0 ? argv[0] : undefined;\n if (check_options_object(ctx, options)) return JS_EXCEPTION;\n const alphabet = parse_alphabet_option(ctx, options);\n if (alphabet < 0) return JS_EXCEPTION;\n let omit_padding = false;\n if (!JS_IsUndefined(options)) {\n const op_val = JS_GetPropertyStr(ctx, options, 'omitPadding');\n if (JS_IsException(op_val)) return JS_EXCEPTION;\n omit_padding = JS_ToBoolFree(ctx, op_val);\n }\n const data = get_uint8array_bytes(ctx, p);\n if (!data) return JS_EXCEPTION;\n if (4 * Math.floor((data.length + 2) / 3) > JS_STRING_LEN_MAX) return JS_ThrowRangeError(ctx, 'output too large');\n return b64_encode(data, alphabet, omit_padding);\n}\n\n/* Uint8Array.prototype.toHex() */\nfunction js_uint8array_to_hex(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = check_uint8array(ctx, this_val);\n if (!p) return JS_EXCEPTION;\n const data = get_uint8array_bytes(ctx, p);\n if (!data) return JS_EXCEPTION;\n if (data.length * 2 > JS_STRING_LEN_MAX) return JS_ThrowRangeError(ctx, 'output too large');\n return u8a_hex_encode(data);\n}\n\n/* Uint8Array.fromBase64(string[, options]) */\nfunction js_uint8array_from_base64(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const str = argv[0];\n if (typeof str !== 'string') return JS_ThrowTypeError(ctx, 'expected string');\n const options = argv.length > 1 ? argv[1] : undefined;\n if (check_options_object(ctx, options)) return JS_EXCEPTION;\n const alphabet = parse_alphabet_option(ctx, options);\n if (alphabet < 0) return JS_EXCEPTION;\n const last_chunk = parse_last_chunk_option(ctx, options);\n if (last_chunk < 0) return JS_EXCEPTION;\n const out_cap = Math.floor(str.length / 4) * 3 + 3;\n const buf = new Uint8Array(out_cap);\n const r = from_base64(str, buf, out_cap, alphabet, last_chunk);\n if (r.err) return JS_ThrowSyntaxError(ctx, 'invalid base64 string');\n return JS_NewUint8ArrayCopy(ctx, buf.subarray(0, r.written));\n}\n\n/* Uint8Array.fromHex(string) */\nfunction js_uint8array_from_hex(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const str = argv[0];\n if (typeof str !== 'string') return JS_ThrowTypeError(ctx, 'expected string');\n const out_cap = Math.floor(str.length / 2) + 1;\n const buf = new Uint8Array(out_cap);\n const r = u8a_hex_decode(str, buf, out_cap);\n if (r.err) return JS_ThrowSyntaxError(ctx, 'invalid hex string');\n return JS_NewUint8ArrayCopy(ctx, buf.subarray(0, r.written));\n}\n\n/* a { read, written } result object */\nfunction js_make_read_written(ctx: JSContext, read: number, written: number): JSValue {\n const obj = JS_NewObject(ctx);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n if (JS_DefinePropertyValueStr(ctx, obj, 'read', read, JS_PROP_C_W_E) < 0) return JS_EXCEPTION;\n if (JS_DefinePropertyValueStr(ctx, obj, 'written', written, JS_PROP_C_W_E) < 0) return JS_EXCEPTION;\n return obj;\n}\n\n/* Uint8Array.prototype.setFromBase64(string[, options]) */\nfunction js_uint8array_set_from_base64(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = check_uint8array(ctx, this_val);\n if (!p) return JS_EXCEPTION;\n const str = argv[0];\n if (typeof str !== 'string') return JS_ThrowTypeError(ctx, 'expected string');\n const options = argv.length > 1 ? argv[1] : undefined;\n if (check_options_object(ctx, options)) return JS_EXCEPTION;\n const alphabet = parse_alphabet_option(ctx, options);\n if (alphabet < 0) return JS_EXCEPTION;\n const last_chunk = parse_last_chunk_option(ctx, options);\n if (last_chunk < 0) return JS_EXCEPTION;\n const data = get_uint8array_bytes(ctx, p);\n if (!data) return JS_EXCEPTION;\n const r = from_base64(str, data, data.length, alphabet, last_chunk);\n if (r.err) return JS_ThrowSyntaxError(ctx, 'invalid base64 string');\n return js_make_read_written(ctx, r.read, r.written);\n}\n\n/* Uint8Array.prototype.setFromHex(string) */\nfunction js_uint8array_set_from_hex(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = check_uint8array(ctx, this_val);\n if (!p) return JS_EXCEPTION;\n const str = argv[0];\n if (typeof str !== 'string') return JS_ThrowTypeError(ctx, 'expected string');\n const data = get_uint8array_bytes(ctx, p);\n if (!data) return JS_EXCEPTION;\n const r = u8a_hex_decode(str, data, data.length);\n if (r.err) return JS_ThrowSyntaxError(ctx, 'invalid hex string');\n return js_make_read_written(ctx, r.read, r.written);\n}\n\nconst js_uint8array_proto_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_DEF('toBase64', 0, js_uint8array_to_base64),\n JS_CFUNC_DEF('toHex', 0, js_uint8array_to_hex),\n JS_CFUNC_DEF('setFromBase64', 1, js_uint8array_set_from_base64),\n JS_CFUNC_DEF('setFromHex', 1, js_uint8array_set_from_hex),\n];\n\nconst js_uint8array_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_DEF('fromBase64', 1, js_uint8array_from_base64),\n JS_CFUNC_DEF('fromHex', 1, js_uint8array_from_hex),\n];\n\n/* ---------------------------------------------------------------------\n Intrinsics\n --------------------------------------------------------------------- */\n\nexport function JS_AddIntrinsicTypedArrays(ctx: JSContext): void {\n const ab_proto = JS_NewObject(ctx) as JSObject;\n ctx.class_proto[JSClassID.ARRAY_BUFFER] = ab_proto;\n JS_SetPropertyFunctionList(ctx, ab_proto, js_array_buffer_proto_funcs);\n const array_buffer_func = JS_NewGlobalCConstructorOnly(ctx, 'ArrayBuffer', js_array_buffer_constructor, 1, ab_proto);\n JS_SetPropertyFunctionList(ctx, array_buffer_func, js_array_buffer_funcs);\n\n const sab_proto = JS_NewObject(ctx) as JSObject;\n ctx.class_proto[JSClassID.SHARED_ARRAY_BUFFER] = sab_proto;\n JS_SetPropertyFunctionList(ctx, sab_proto, js_shared_array_buffer_proto_funcs);\n const shared_array_buffer_func = JS_NewGlobalCConstructorOnly(ctx, 'SharedArrayBuffer', js_shared_array_buffer_constructor, 1, sab_proto);\n JS_SetPropertyFunctionList(ctx, shared_array_buffer_func, js_shared_array_buffer_funcs);\n\n const typed_array_base_proto = JS_NewObject(ctx) as JSObject;\n JS_SetPropertyFunctionList(ctx, typed_array_base_proto, js_typed_array_base_proto_funcs);\n\n /* TypedArray.prototype.toString must be the same object as Array.prototype.toString */\n let obj = JS_GetProperty(ctx, ctx.class_proto[JSClassID.ARRAY], JS_ATOM_toString);\n if (JS_IsException(obj) || !JS_IsFunction(ctx, obj)) {\n obj = JS_NewCFunction3(ctx, js_array_toString, 'toString', 0, JSCFunctionEnum.generic, 0, ctx.function_proto);\n }\n JS_DefinePropertyValue(ctx, typed_array_base_proto, JS_ATOM_toString, obj, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n\n const typed_array_base_func = JS_NewCFunction2(ctx, js_typed_array_base_constructor, 'TypedArray', 0, JSCFunctionEnum.constructor_or_func, 0);\n JS_SetPropertyFunctionList(ctx, typed_array_base_func, js_typed_array_base_funcs);\n JS_SetConstructor(ctx, typed_array_base_func, typed_array_base_proto);\n\n for (let i = JSClassID.UINT8C_ARRAY; i < JSClassID.UINT8C_ARRAY + JS_TYPED_ARRAY_COUNT; i++) {\n if (!typed_array_class_available(i)) continue; /* Float16Array on hosts without it */\n const proto = JS_NewObjectProto(ctx, typed_array_base_proto) as JSObject;\n ctx.class_proto[i] = proto;\n JS_DefinePropertyValueStr(ctx, proto, 'BYTES_PER_ELEMENT', 1 << typed_array_size_log2(i), 0);\n const name = JS_AtomToString(ctx, JS_ATOM_Uint8ClampedArray + i - JSClassID.UINT8C_ARRAY);\n const func_obj = JS_NewCFunction3(ctx, js_typed_array_constructor, name, 3, JSCFunctionEnum.constructor_magic, i, typed_array_base_func);\n JS_NewGlobalCConstructor2(ctx, func_obj, name, proto);\n JS_DefinePropertyValueStr(ctx, func_obj, 'BYTES_PER_ELEMENT', 1 << typed_array_size_log2(i), 0);\n if (i === JSClassID.UINT8_ARRAY) {\n JS_SetPropertyFunctionList(ctx, func_obj, js_uint8array_funcs);\n JS_SetPropertyFunctionList(ctx, proto, js_uint8array_proto_funcs);\n }\n }\n\n /* DataView */\n const dv_proto = JS_NewObject(ctx) as JSObject;\n ctx.class_proto[JSClassID.DATAVIEW] = dv_proto;\n JS_SetPropertyFunctionList(ctx, dv_proto, js_dataview_proto_funcs);\n JS_NewGlobalCConstructorOnly(ctx, 'DataView', js_dataview_constructor, 1, dv_proto);\n}\n\nexport { typed_array_get_length as js_typed_array_get_length_elements, typed_array_is_detached, validate_typed_array };\n"]}
1
+ {"version":3,"file":"typedarray.js","sourceRoot":"","sources":["../../src/builtins/typedarray.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * ArrayBuffer, SharedArrayBuffer, typed arrays and DataView (port of the\n * typed array section of quickjs.c).\n *\n * Typed arrays are exotic objects: the integer indexed element access is\n * implemented by the class exotic methods registered on the runtime. The\n * raw bytes live in the Uint8Array 'data' of the JSArrayBuffer; element\n * access goes through host typed array / DataView views created over it.\n */\nimport * as Q from '../quickjs.ts';\nimport {\n JSContext, JSRuntime, JSValue, JSObject, JSClassID, JSAtom, JS_EXCEPTION, JS_IsException, JS_IsUndefined,\n JS_IsObject, JS_IsNull, JSPropertyDescriptor, JSArrayBuffer, JSTypedArray,\n JS_NewObject, JS_NewObjectProto, JS_NewArray, JS_NewCFunction2, JS_NewCFunction3, JSCFunctionEnum,\n JS_DefinePropertyValue, JS_DefinePropertyValueStr, JS_DefinePropertyValueInt64, JS_DefineProperty,\n JS_GetOwnPropertyInternal, new_desc,\n JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_PROP_ENUMERABLE, JS_PROP_C_W_E, JS_PROP_THROW, JS_PROP_GETSET,\n JS_PROP_HAS_GET, JS_PROP_HAS_SET, JS_PROP_HAS_VALUE, JS_PROP_HAS_SHIFT, JS_PROP_HAS_CONFIGURABLE,\n JS_PROP_HAS_WRITABLE, JS_PROP_HAS_ENUMERABLE,\n JS_GetProperty, JS_GetPropertyInternal, JS_SetPropertyInternal, JS_HasProperty, JS_GetPropertyInt64,\n JS_SetPropertyInt64, JS_GetPropertyUint32, JS_SetPropertyUint32, JS_GetPropertyValue, JS_SetPropertyValue,\n JS_ToString, JS_ToBoolFree, JS_ToFloat64, JS_ToUint32Free, JS_ToUint8ClampFree, JS_ToBigInt64, JS_ToIndex,\n JS_ToInt64Sat, JS_ToInt32Clamp, JS_ToInt64Clamp, JS_ToLengthFree, JS_ToPrimitive, HINT_NUMBER, JS_ToObject,\n js_get_length64,\n JS_ThrowTypeError, JS_ThrowRangeError, JS_ThrowSyntaxError, JS_GetPropertyStr, JS_ThrowTypeErrorOrFalse, JS_ThrowTypeErrorReadOnly, JS_ThrowTypeErrorInvalidClass,\n JS_IsFunction, JS_Call, JS_CallConstructor, JS_Invoke, js_create_from_ctor, js_same_value, JS_GetIterator2,\n JS_IteratorNext, JS_CreateDataPropertyUint32, JS_GetOpaque2, JS_AtomToString, JS_AtomIsNumericIndex1,\n __JS_AtomIsTaggedInt, __JS_AtomToUInt32, __JS_AtomFromUInt32,\n JS_SetPropertyFunctionList, JS_NewGlobalCConstructorOnly, JS_NewGlobalCConstructor2, JS_SetConstructor,\n JS_CFUNC_DEF, JS_CFUNC_MAGIC_DEF, JS_NATIVE_DEF, JS_CGETSET_DEF, JS_CGETSET_MAGIC_DEF, JS_ALIAS_DEF, JS_PROP_STRING_DEF,\n JSCFunctionListEntry, hooks,\n JS_ATOM_length, JS_ATOM_toString, JS_ATOM_toLocaleString, JS_ATOM_join, JS_ATOM_next, JS_ATOM_set,\n JS_ATOM_Symbol_iterator, JS_ATOM_Symbol_species, JS_ATOM_Symbol_toStringTag, JS_ATOM_Uint8ClampedArray,\n} from '../quickjs.ts';\nimport { JS_SpeciesConstructor, check_function } from './promise.ts';\nimport { fix_array_iterator } from './native.ts';\nimport { tofp16, fromfp16, f16round } from './float16.ts';\nimport {\n B64_ALPHABET_BASE64, B64_ALPHABET_BASE64URL, B64_LAST_LOOSE, B64_LAST_STRICT, B64_LAST_STOP_BEFORE_PARTIAL,\n b64_encode, from_base64, u8a_hex_encode, u8a_hex_decode,\n} from './base64.ts';\n\nconst HOST_TYPED_ARRAY_PROTO: any = Object.getPrototypeOf(Uint8Array.prototype);\n\n/* JS_ITERATOR_KIND_xxx (same values as JSIteratorKind in index.ts) */\nconst JS_ITERATOR_KIND_KEY = 0;\nconst JS_ITERATOR_KIND_VALUE = 1;\nconst JS_ITERATOR_KIND_KEY_AND_VALUE = 2;\n\nconst JS_TYPED_ARRAY_COUNT = JSClassID.FLOAT64_ARRAY - JSClassID.UINT8C_ARRAY + 1;\n\nconst typed_array_size_log2_tab: number[] = [\n 0, 0, 0, 1, 1, 2, 2,\n 3, 3, /* BigInt64Array, BigUint64Array */\n 1, 2, 3, /* Float16Array, Float32Array, Float64Array */\n];\nfunction typed_array_size_log2(class_id: JSClassID): number {\n return typed_array_size_log2_tab[class_id - JSClassID.UINT8C_ARRAY];\n}\n\ntype HostTA = Uint8ClampedArray | Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array |\n BigInt64Array | BigUint64Array | Float32Array | Float64Array;\ntype HostTACtor = new (buffer: ArrayBufferLike, byteOffset: number, length: number) => HostTA;\n/* Guest typed arrays are host typed arrays, so Float16Array exists in the\n guest only when the host has it (its class slot stays empty otherwise).\n Math.f16round and DataView's float16 methods do not need it. */\nconst HostFloat16Array: HostTACtor | undefined = (globalThis as any).Float16Array;\nconst host_ta_ctors: (HostTACtor | undefined)[] = [\n Uint8ClampedArray, Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array,\n BigInt64Array, BigUint64Array, HostFloat16Array, Float32Array, Float64Array,\n];\n/* true if the host provides the guest typed array class 'class_id' */\nexport function typed_array_class_available(class_id: JSClassID): boolean {\n return host_ta_ctors[class_id - JSClassID.UINT8C_ARRAY] !== undefined;\n}\n\n/* ---------------------------------------------------------------------\n ArrayBuffer\n --------------------------------------------------------------------- */\n\n/* array buffer data with the resizable extension. The host buffer is\n resizable (growable when shared) when max_len >= 0; 'data' is a length\n tracking view over it. With 'existing', the guest buffer is that host\n buffer itself (JS_NewArrayBufferFrom): the two sides share the bytes. */\nexport class JSArrayBufferData extends JSArrayBuffer {\n /* maximum byte length for resizable buffers, -1 otherwise */\n max_byte_length = -1;\n /* cached host DataView over 'data' */\n dv: DataView | null = null;\n dv_data: Uint8Array | null = null;\n constructor(len: number, shared: boolean, max_len: number, existing?: ArrayBuffer | SharedArrayBuffer) {\n let buffer: ArrayBuffer | SharedArrayBuffer;\n if (existing) {\n buffer = existing;\n max_len = (shared ? (existing as SharedArrayBuffer).growable : (existing as ArrayBuffer).resizable) ? existing.maxByteLength : -1;\n } else if (shared) buffer = max_len >= 0 ? new SharedArrayBuffer(len, { maxByteLength: max_len }) : new SharedArrayBuffer(len);\n else buffer = max_len >= 0 ? new ArrayBuffer(len, { maxByteLength: max_len }) : new ArrayBuffer(len);\n super(buffer, shared);\n this.max_byte_length = max_len;\n }\n}\n\n/* a host SharedArrayBuffer, where the host has one */\nexport function isSharedArrayBuffer(v: unknown): v is SharedArrayBuffer {\n return typeof SharedArrayBuffer === 'function' && v instanceof SharedArrayBuffer;\n}\n\nfunction array_buffer_get_dv(abuf: JSArrayBuffer): DataView {\n const a = abuf as JSArrayBufferData;\n if (a.dv === null || a.dv_data !== abuf.data) {\n a.dv = new DataView(abuf.data.buffer, abuf.data.byteOffset, abuf.data.byteLength);\n a.dv_data = abuf.data;\n }\n return a.dv;\n}\n\nfunction array_buffer_byte_length(abuf: JSArrayBuffer): number {\n return abuf.detached ? 0 : abuf.data.length;\n}\n\nfunction array_buffer_max_byte_length(abuf: JSArrayBuffer): number {\n const m = (abuf as JSArrayBufferData).max_byte_length;\n return (typeof m === 'number') ? m : -1;\n}\n\nfunction array_buffer_is_resizable(abuf: JSArrayBuffer): boolean {\n return array_buffer_max_byte_length(abuf) >= 0;\n}\n\nfunction JS_ThrowTypeErrorDetachedArrayBuffer(ctx: JSContext): JSValue {\n return JS_ThrowTypeError(ctx, 'ArrayBuffer is detached');\n}\n\nfunction JS_ThrowTypeErrorArrayBufferOOB(ctx: JSContext): JSValue {\n return JS_ThrowTypeError(ctx, 'ArrayBuffer is detached or resized');\n}\n\n/* XXX: we are currently limited to 2 GB */\nconst ARRAY_BUFFER_MAX_LENGTH = 0x7fffffff;\n\nfunction js_array_buffer_constructor3(ctx: JSContext, new_target: JSValue, len: number, max_len: number,\n class_id: JSClassID, buf: Uint8Array | null,\n existing?: ArrayBuffer | SharedArrayBuffer): JSValue {\n const obj = js_create_from_ctor(ctx, new_target, class_id);\n if (JS_IsException(obj)) return obj;\n if (len > ARRAY_BUFFER_MAX_LENGTH) return JS_ThrowRangeError(ctx, 'invalid array buffer length');\n if (max_len > ARRAY_BUFFER_MAX_LENGTH) return JS_ThrowRangeError(ctx, 'invalid array buffer maximum length');\n const abuf = new JSArrayBufferData(len, class_id === JSClassID.SHARED_ARRAY_BUFFER, max_len, existing);\n if (buf) abuf.data.set(buf.subarray(0, len));\n Q.JS_SetOpaque(obj, abuf);\n return obj;\n}\n\n/* a guest ArrayBuffer (or SharedArrayBuffer) over the host buffer itself, not a\n copy: what the guest writes the host sees, and the other way round. A\n buffer is bytes: it reaches no host object, so sharing it keeps the\n sandbox rules (its guest prototype is the guest's). The guest cannot\n detach, resize or transfer it beyond what the host buffer allows. */\nexport function JS_NewArrayBufferFrom(ctx: JSContext, buffer: ArrayBuffer | SharedArrayBuffer): JSValue {\n const shared = isSharedArrayBuffer(buffer);\n return js_array_buffer_constructor3(ctx, undefined, buffer.byteLength, -1,\n shared ? JSClassID.SHARED_ARRAY_BUFFER : JSClassID.ARRAY_BUFFER, null, buffer);\n}\n\nfunction js_array_buffer_constructor2(ctx: JSContext, new_target: JSValue, len: number, class_id: JSClassID): JSValue {\n return js_array_buffer_constructor3(ctx, new_target, len, -1, class_id, null);\n}\n\nfunction js_array_buffer_constructor1(ctx: JSContext, new_target: JSValue, len: number): JSValue {\n return js_array_buffer_constructor2(ctx, new_target, len, JSClassID.ARRAY_BUFFER);\n}\n\nexport function JS_NewArrayBufferCopy(ctx: JSContext, buf: Uint8Array): JSValue {\n return js_array_buffer_constructor3(ctx, undefined, buf.length, -1, JSClassID.ARRAY_BUFFER, buf);\n}\n\n/* ArrayBuffer(length, options) / SharedArrayBuffer(length, options) */\nfunction js_array_buffer_constructor0(ctx: JSContext, new_target: JSValue, argv: JSValue[], class_id: JSClassID): JSValue {\n const len = JS_ToIndex(ctx, argv[0]);\n if (len < 0) return JS_EXCEPTION;\n let max_len = -1;\n const options = argv[1];\n if (JS_IsObject(options)) {\n const val = JS_GetProperty(ctx, options, JS_NewAtomStr(ctx, 'maxByteLength'));\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (!JS_IsUndefined(val)) {\n max_len = JS_ToIndex(ctx, val);\n if (max_len < 0) return JS_EXCEPTION;\n if (len > max_len) return JS_ThrowRangeError(ctx, 'invalid array buffer max length');\n }\n }\n return js_array_buffer_constructor3(ctx, new_target, len, max_len, class_id, null);\n}\n\nfunction JS_NewAtomStr(ctx: JSContext, s: string): JSAtom { return ctx.rt.atoms.newAtomStr(s); }\n\nfunction js_array_buffer_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[]): JSValue {\n return js_array_buffer_constructor0(ctx, new_target, argv, JSClassID.ARRAY_BUFFER);\n}\n\nfunction js_shared_array_buffer_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[]): JSValue {\n return js_array_buffer_constructor0(ctx, new_target, argv, JSClassID.SHARED_ARRAY_BUFFER);\n}\n\nfunction js_array_buffer_isView(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const v = argv[0];\n return Q.JS_IsObject(v) && Q.JS_GetClassID(v) >= JSClassID.UINT8C_ARRAY && Q.JS_GetClassID(v) <= JSClassID.DATAVIEW;\n}\n\nfunction js_get_this(ctx: JSContext, this_val: JSValue): JSValue { return this_val; }\n\nconst js_array_buffer_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_DEF('isView', 1, js_array_buffer_isView),\n JS_CGETSET_DEF(JS_ATOM_Symbol_species, js_get_this, null),\n];\n\nfunction js_array_buffer_get_byteLength(ctx: JSContext, this_val: JSValue, class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n /* return 0 if detached */\n return array_buffer_byte_length(abuf);\n}\n\nfunction js_array_buffer_get_maxByteLength(ctx: JSContext, this_val: JSValue, class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n if (abuf.detached) return 0;\n if (array_buffer_is_resizable(abuf)) return array_buffer_max_byte_length(abuf);\n return abuf.data.length;\n}\n\nfunction js_array_buffer_get_resizable(ctx: JSContext, this_val: JSValue, class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n return array_buffer_is_resizable(abuf);\n}\n\nfunction js_array_buffer_get_detached(ctx: JSContext, this_val: JSValue): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, JSClassID.ARRAY_BUFFER) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n return abuf.detached;\n}\n\nexport function JS_DetachArrayBuffer(ctx: JSContext, obj: JSValue): void {\n if (!Q.JS_IsObject(obj) || Q.JS_GetClassID(obj) !== JSClassID.ARRAY_BUFFER) return;\n const abuf = Q.JS_GetAnyOpaque(obj) as JSArrayBuffer;\n if (!abuf || abuf.detached) return;\n /* detach the host buffer so that the host views see a length of 0 */\n try { (abuf.buffer as ArrayBuffer).transfer(0); } catch { /* not transferable: keep the data */ }\n abuf.data = new Uint8Array(0);\n abuf.detached = true;\n /* Note: the typed array length and offset fields are not modified */\n}\n\n/* ArrayBuffer.prototype.resize / SharedArrayBuffer.prototype.grow */\nfunction js_array_buffer_resize(ctx: JSContext, this_val: JSValue, argv: JSValue[], class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n if (!array_buffer_is_resizable(abuf)) return JS_ThrowTypeError(ctx, 'array buffer is not resizable');\n const len = JS_ToIndex(ctx, argv[0]);\n if (len < 0) return JS_EXCEPTION;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (len > array_buffer_max_byte_length(abuf)) return JS_ThrowRangeError(ctx, 'invalid array buffer length');\n if (abuf.shared && len < abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid array buffer length');\n try {\n if (abuf.shared) (abuf.buffer as SharedArrayBuffer).grow(len);\n else (abuf.buffer as ArrayBuffer).resize(len);\n } catch (e) {\n return Q.js_host_exception_to_guest(ctx, e);\n }\n /* 'data' is a length tracking view: nothing else to do */\n return undefined;\n}\n\n/* ArrayBuffer.prototype.transfer / transferToFixedLength (magic = 1) */\nfunction js_array_buffer_transfer(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, JSClassID.ARRAY_BUFFER) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n let new_len: number;\n if (JS_IsUndefined(argv[0])) {\n new_len = array_buffer_byte_length(abuf);\n } else {\n new_len = JS_ToIndex(ctx, argv[0]);\n if (new_len < 0) return JS_EXCEPTION;\n }\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n let max_len = -1;\n if (magic === 0 && array_buffer_is_resizable(abuf)) {\n max_len = array_buffer_max_byte_length(abuf);\n if (new_len > max_len) return JS_ThrowRangeError(ctx, 'invalid array buffer length');\n }\n const new_obj = js_array_buffer_constructor3(ctx, undefined, new_len, max_len, JSClassID.ARRAY_BUFFER, abuf.data);\n if (JS_IsException(new_obj)) return JS_EXCEPTION;\n JS_DetachArrayBuffer(ctx, this_val);\n return new_obj;\n}\n\n/* get an ArrayBuffer or SharedArrayBuffer */\nfunction js_get_array_buffer(ctx: JSContext, obj: JSValue): JSArrayBuffer | null {\n if (Q.JS_IsObject(obj) && (Q.JS_GetClassID(obj) === JSClassID.ARRAY_BUFFER || Q.JS_GetClassID(obj) === JSClassID.SHARED_ARRAY_BUFFER)) {\n return Q.JS_GetAnyOpaque(obj) as JSArrayBuffer;\n }\n JS_ThrowTypeErrorInvalidClass(ctx, JSClassID.ARRAY_BUFFER);\n return null;\n}\n\nfunction js_array_buffer_slice(ctx: JSContext, this_val: JSValue, argv: JSValue[], class_id: number): JSValue {\n const abuf = JS_GetOpaque2(ctx, this_val, class_id as JSClassID) as JSArrayBuffer | null;\n if (!abuf) return JS_EXCEPTION;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const len = abuf.data.length;\n const start = JS_ToInt64Clamp(ctx, argv[0], 0, len, len);\n if (JS_IsException(start)) return JS_EXCEPTION;\n let end: number | typeof JS_EXCEPTION = len;\n if (!JS_IsUndefined(argv[1])) {\n end = JS_ToInt64Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(end)) return JS_EXCEPTION;\n }\n const new_len = Math.max((end as number) - (start as number), 0);\n const ctor = JS_SpeciesConstructor(ctx, this_val, undefined);\n if (JS_IsException(ctor)) return ctor;\n let new_obj: JSValue;\n if (JS_IsUndefined(ctor)) {\n new_obj = js_array_buffer_constructor2(ctx, undefined, new_len, class_id as JSClassID);\n } else {\n new_obj = JS_CallConstructor(ctx, ctor, [new_len]);\n }\n if (JS_IsException(new_obj)) return new_obj;\n const new_abuf = JS_GetOpaque2(ctx, new_obj, class_id as JSClassID) as JSArrayBuffer | null;\n if (!new_abuf) return JS_EXCEPTION;\n if (js_same_value(ctx, new_obj, this_val)) return JS_ThrowTypeError(ctx, 'cannot use identical ArrayBuffer');\n if (new_abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (new_abuf.data.length < new_len) return JS_ThrowTypeError(ctx, 'new ArrayBuffer is too small');\n /* must test again because of side effects */\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n new_abuf.data.set(abuf.data.subarray(start as number, (start as number) + new_len));\n return new_obj;\n}\n\nconst js_array_buffer_proto_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_MAGIC_DEF('byteLength', js_array_buffer_get_byteLength, null, JSClassID.ARRAY_BUFFER),\n JS_CGETSET_MAGIC_DEF('maxByteLength', js_array_buffer_get_maxByteLength, null, JSClassID.ARRAY_BUFFER),\n JS_CGETSET_MAGIC_DEF('resizable', js_array_buffer_get_resizable, null, JSClassID.ARRAY_BUFFER),\n JS_CGETSET_DEF('detached', js_array_buffer_get_detached, null),\n JS_CFUNC_MAGIC_DEF('resize', 1, js_array_buffer_resize, JSClassID.ARRAY_BUFFER),\n JS_CFUNC_MAGIC_DEF('slice', 2, js_array_buffer_slice, JSClassID.ARRAY_BUFFER),\n JS_CFUNC_MAGIC_DEF('transfer', 0, js_array_buffer_transfer, 0),\n JS_CFUNC_MAGIC_DEF('transferToFixedLength', 0, js_array_buffer_transfer, 1),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'ArrayBuffer', JS_PROP_CONFIGURABLE),\n];\n\n/* SharedArrayBuffer */\n\nconst js_shared_array_buffer_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_DEF(JS_ATOM_Symbol_species, js_get_this, null),\n];\n\nconst js_shared_array_buffer_proto_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_MAGIC_DEF('byteLength', js_array_buffer_get_byteLength, null, JSClassID.SHARED_ARRAY_BUFFER),\n JS_CGETSET_MAGIC_DEF('maxByteLength', js_array_buffer_get_maxByteLength, null, JSClassID.SHARED_ARRAY_BUFFER),\n JS_CGETSET_MAGIC_DEF('growable', js_array_buffer_get_resizable, null, JSClassID.SHARED_ARRAY_BUFFER),\n JS_CFUNC_MAGIC_DEF('grow', 1, js_array_buffer_resize, JSClassID.SHARED_ARRAY_BUFFER),\n JS_CFUNC_MAGIC_DEF('slice', 2, js_array_buffer_slice, JSClassID.SHARED_ARRAY_BUFFER),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'SharedArrayBuffer', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n Typed arrays\n --------------------------------------------------------------------- */\n\nexport function is_typed_array_class(class_id: JSClassID): boolean {\n return class_id >= JSClassID.UINT8C_ARRAY && class_id <= JSClassID.FLOAT64_ARRAY;\n}\n\nfunction get_typed_array(ctx: JSContext, this_val: JSValue, is_dataview: boolean): JSObject | null {\n if (Q.JS_IsObject(this_val)) {\n if (is_dataview) {\n if (Q.JS_GetClassID(this_val) === JSClassID.DATAVIEW) return this_val;\n } else {\n if (is_typed_array_class(Q.JS_GetClassID(this_val))) return this_val;\n }\n }\n JS_ThrowTypeError(ctx, `not a ${is_dataview ? 'DataView' : 'TypedArray'}`);\n return null;\n}\n\n/* WARNING: 'p' must be a typed array or a DataView */\nfunction typed_array_is_detached(ctx: JSContext, p: JSObject): boolean {\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n return abuf.detached;\n}\n\n/* byte length of a typed array (size_log2 = element size) or DataView\n (size_log2 = 0), taking the resizable buffer tracking into account.\n Returns -1 if out of bounds or detached. */\nfunction typed_array_get_byte_length(ta: JSTypedArray, size_log2: number): number {\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n if (abuf.detached) return -1;\n const buf_len = abuf.data.length;\n if (ta.track_rab) {\n if (ta.offset > buf_len) return -1;\n return ((buf_len - ta.offset) >> size_log2) << size_log2;\n }\n if (ta.offset + ta.length > buf_len) return -1;\n return ta.length;\n}\n\n/* byte length of a typed array or DataView object (-1 if detached/OOB) */\nfunction js_typed_array_byte_length(p: JSObject): number {\n const size_log2 = Q.JS_GetClassID(p) === JSClassID.DATAVIEW ? 0 : typed_array_size_log2(Q.JS_GetClassID(p));\n return typed_array_get_byte_length(Q.JS_GetAnyOpaque(p) as JSTypedArray, size_log2);\n}\n\n/* return true if the typed array is detached or out of bounds (resized buffer) */\nfunction typed_array_is_oob(ctx: JSContext, p: JSObject): boolean {\n return js_typed_array_byte_length(p) < 0;\n}\n\n/* WARNING: 'p' must be a typed array. Works even if the array buffer is\n detached (returns 0). This is p->u.array.count in the C version. */\nfunction typed_array_get_length(ctx: JSContext, p: JSObject): number {\n const byte_len = js_typed_array_byte_length(p);\n if (byte_len < 0) return 0;\n return byte_len >> typed_array_size_log2(Q.JS_GetClassID(p));\n}\n\n/* host view over the current elements of the typed array (null if detached/OOB) */\ninterface TAViewCache { data: Uint8Array; len: number; offset: number; view: HostTA }\nconst ta_view_cache = new WeakMap<JSTypedArray, TAViewCache>();\n\nfunction typed_array_get_view(p: JSObject): HostTA | null {\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n const byte_len = js_typed_array_byte_length(p);\n if (byte_len < 0) return null;\n const len = byte_len >> typed_array_size_log2(Q.JS_GetClassID(p));\n const c = ta_view_cache.get(ta);\n if (c && c.data === abuf.data && c.len === len && c.offset === ta.offset) return c.view;\n const ctor = host_ta_ctors[Q.JS_GetClassID(p) - JSClassID.UINT8C_ARRAY]!;\n const view = new ctor(abuf.data.buffer, abuf.data.byteOffset + ta.offset, len);\n ta_view_cache.set(ta, { data: abuf.data, len, offset: ta.offset, view });\n return view;\n}\n\nfunction validate_typed_array(ctx: JSContext, this_val: JSValue): number {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return -1;\n if (typed_array_is_detached(ctx, p)) {\n JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n return -1;\n }\n if (typed_array_is_oob(ctx, p)) {\n JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return -1;\n }\n return 0;\n}\n\nfunction js_typed_array_get_length(ctx: JSContext, this_val: JSValue): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n return typed_array_get_length(ctx, p);\n}\n\nfunction js_typed_array_get_buffer(ctx: JSContext, this_val: JSValue, is_dataview: number): JSValue {\n const p = get_typed_array(ctx, this_val, is_dataview !== 0);\n if (!p) return JS_EXCEPTION;\n return (Q.JS_GetAnyOpaque(p) as JSTypedArray).buffer;\n}\n\nfunction js_typed_array_get_byteLength(ctx: JSContext, this_val: JSValue, is_dataview: number): JSValue {\n const p = get_typed_array(ctx, this_val, is_dataview !== 0);\n if (!p) return JS_EXCEPTION;\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n if (typed_array_is_detached(ctx, p)) {\n if (is_dataview) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n return 0;\n }\n const len = js_typed_array_byte_length(p);\n if (len < 0) {\n if (is_dataview) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return 0;\n }\n void ta;\n return len;\n}\n\nfunction js_typed_array_get_byteOffset(ctx: JSContext, this_val: JSValue, is_dataview: number): JSValue {\n const p = get_typed_array(ctx, this_val, is_dataview !== 0);\n if (!p) return JS_EXCEPTION;\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n if (typed_array_is_detached(ctx, p)) {\n if (is_dataview) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n return 0;\n }\n if (js_typed_array_byte_length(p) < 0) {\n if (is_dataview) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return 0;\n }\n return ta.offset;\n}\n\nfunction js_typed_array_get_toStringTag(ctx: JSContext, this_val: JSValue): JSValue {\n if (!Q.JS_IsObject(this_val)) return undefined;\n if (!is_typed_array_class(Q.JS_GetClassID(this_val))) return undefined;\n return JS_AtomToString(ctx, ctx.rt.class_array[Q.JS_GetClassID(this_val)]!.class_name);\n}\n\n/* element access */\n\nfunction typed_array_get_element(p: JSObject, idx: number): JSValue {\n const view = typed_array_get_view(p);\n if (!view || idx >= view.length) return undefined;\n return view[idx];\n}\n\n/* convert 'val' to the element type. Returns the converted value (number\n or bigint) or JS_EXCEPTION */\nfunction typed_array_convert_value(ctx: JSContext, class_id: JSClassID, val: JSValue): number | bigint | typeof JS_EXCEPTION {\n if (class_id === JSClassID.UINT8C_ARRAY) {\n const v = JS_ToUint8ClampFree(ctx, val);\n if (JS_IsException(v)) return JS_EXCEPTION;\n return v as number;\n } else if (class_id <= JSClassID.UINT32_ARRAY) {\n const v = JS_ToUint32Free(ctx, val);\n if (JS_IsException(v)) return JS_EXCEPTION;\n return v as number;\n } else if (class_id <= JSClassID.BIG_UINT64_ARRAY) {\n const v = JS_ToBigInt64(ctx, val);\n if (JS_IsException(v)) return JS_EXCEPTION;\n return v as bigint;\n } else {\n const v = JS_ToFloat64(ctx, val);\n if (JS_IsException(v)) return JS_EXCEPTION;\n return v as number;\n }\n}\n\n/* TypedArraySetElement: the value is converted even if the index is out\n of bounds. Return -1 if exception, TRUE otherwise. */\nfunction typed_array_set_element(ctx: JSContext, p: JSObject, idx: number, val: JSValue): number {\n const v = typed_array_convert_value(ctx, Q.JS_GetClassID(p), val);\n if (JS_IsException(v)) return -1;\n const view = typed_array_get_view(p);\n if (view && idx >= 0 && idx < view.length) (view as any)[idx] = v;\n return 1;\n}\n\n\n\n\n/* methods */\n\nfunction js_typed_array_set_internal(ctx: JSContext, dst: JSValue, src: JSValue, off: JSValue): JSValue {\n const p = get_typed_array(ctx, dst, false);\n if (!p) return JS_EXCEPTION;\n const offset = JS_ToInt64Sat(ctx, off);\n if (JS_IsException(offset)) return JS_EXCEPTION;\n if ((offset as number) < 0) return JS_ThrowRangeError(ctx, 'invalid array length');\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const src_obj = JS_ToObject(ctx, src);\n if (JS_IsException(src_obj)) return JS_EXCEPTION;\n const src_p = src_obj as JSObject;\n const dst_len = typed_array_get_length(ctx, p);\n let src_len: number;\n if (is_typed_array_class(Q.JS_GetClassID(src_p))) {\n if (typed_array_is_detached(ctx, src_p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n src_len = typed_array_get_length(ctx, src_p);\n if ((offset as number) > dst_len - src_len) return JS_ThrowRangeError(ctx, 'invalid array length');\n /* copying between typed objects */\n if (Q.JS_GetClassID(src_p) === Q.JS_GetClassID(p)) {\n /* same type, use memmove */\n const dst_view = typed_array_get_view(p)!;\n const src_view = typed_array_get_view(src_p)!;\n (dst_view as any).set(src_view, offset as number);\n return undefined;\n }\n /* otherwise, default behavior is slow but correct */\n } else {\n src_len = js_get_length64(ctx, src_obj);\n if (src_len < 0) return JS_EXCEPTION;\n if ((offset as number) > dst_len - src_len) return JS_ThrowRangeError(ctx, 'invalid array length');\n }\n for (let i = 0; i < src_len; i++) {\n const val = JS_GetPropertyUint32(ctx, src_obj, i);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (JS_SetPropertyUint32(ctx, dst, (offset as number) + i, val) < 0) return JS_EXCEPTION;\n }\n return undefined;\n}\n\nfunction js_typed_array_at(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const r = JS_ToInt64Sat(ctx, argv[0]);\n if (JS_IsException(r)) return JS_EXCEPTION;\n let idx = r as number;\n const len = typed_array_get_length(ctx, p);\n if (idx < 0) idx = len + idx;\n if (idx < 0 || idx >= len) return undefined;\n return JS_GetPropertyInt64(ctx, this_val, idx);\n}\n\nfunction js_typed_array_with(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const r = JS_ToInt64Sat(ctx, argv[0]);\n if (JS_IsException(r)) return JS_EXCEPTION;\n let idx = r as number;\n const len = typed_array_get_length(ctx, p);\n if (idx < 0) idx = len + idx;\n const val = JS_ToPrimitive(ctx, argv[1], HINT_NUMBER);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (typed_array_is_detached(ctx, p) || idx < 0 || idx >= len) return JS_ThrowRangeError(ctx, 'invalid array index');\n const arr = js_typed_array_constructor_ta(ctx, undefined, this_val, Q.JS_GetClassID(p));\n if (JS_IsException(arr)) return JS_EXCEPTION;\n if (JS_SetPropertyInt64(ctx, arr, idx, val) < 0) return JS_EXCEPTION;\n return arr;\n}\n\nfunction js_typed_array_set(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n let offset: JSValue = undefined;\n if (argv.length > 1) offset = argv[1];\n return js_typed_array_set_internal(ctx, this_val, argv[0], offset);\n}\n\n\n/* return < 0 if exception */\nfunction js_typed_array_get_length_internal(ctx: JSContext, obj: JSValue): number {\n const p = get_typed_array(ctx, obj, false);\n if (!p) return -1;\n if (typed_array_is_detached(ctx, p)) {\n JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n return -1;\n }\n if (typed_array_is_oob(ctx, p)) {\n JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return -1;\n }\n return typed_array_get_length(ctx, p);\n}\n\nfunction js_typed_array_create(ctx: JSContext, ctor: JSValue, argv: JSValue[]): JSValue {\n const ret = JS_CallConstructor(ctx, ctor, argv);\n if (JS_IsException(ret)) return ret;\n /* validate the typed array */\n const new_len = js_typed_array_get_length_internal(ctx, ret);\n if (new_len < 0) return JS_EXCEPTION;\n if (argv.length === 1) {\n /* ensure that it is large enough */\n const len = JS_ToLengthFree(ctx, argv[0]);\n if (len < 0) return JS_EXCEPTION;\n if (new_len < len) return JS_ThrowTypeError(ctx, 'TypedArray length is too small');\n }\n return ret;\n}\n\nfunction js_typed_array___speciesCreate(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const obj = argv[0];\n const p = get_typed_array(ctx, obj, false);\n if (!p) return JS_EXCEPTION;\n const ctor = JS_SpeciesConstructor(ctx, obj, undefined);\n if (JS_IsException(ctor)) return ctor;\n const args1 = argv.slice(1);\n if (JS_IsUndefined(ctor)) {\n return js_typed_array_constructor(ctx, undefined, args1, Q.JS_GetClassID(p));\n }\n return js_typed_array_create(ctx, ctor, args1);\n}\n\nfunction js_array_from_iterator(ctx: JSContext, obj: JSValue, method: JSValue): { arr: JSValue; len: number } | null {\n const arr = JS_NewArray(ctx);\n if (JS_IsException(arr)) return null;\n const iter = JS_GetIterator2(ctx, obj, method);\n if (JS_IsException(iter)) return null;\n const next_method = JS_GetProperty(ctx, iter, JS_ATOM_next);\n if (JS_IsException(next_method)) return null;\n let k = 0;\n const pdone = { done: 0 };\n for (;;) {\n const val = JS_IteratorNext(ctx, iter, next_method, [], pdone);\n if (JS_IsException(val)) return null;\n if (pdone.done) break;\n if (JS_CreateDataPropertyUint32(ctx, arr, k, val, JS_PROP_THROW) < 0) return null;\n k++;\n }\n return { arr, len: k };\n}\n\nfunction js_typed_array_from(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n // from(items, mapfn = void 0, this_arg = void 0)\n const items = argv[0];\n let mapfn: JSValue = undefined, this_arg: JSValue = undefined;\n let mapping = false;\n if (argv.length > 1) {\n mapfn = argv[1];\n if (!JS_IsUndefined(mapfn)) {\n if (check_function(ctx, mapfn)) return JS_EXCEPTION;\n mapping = true;\n if (argv.length > 2) this_arg = argv[2];\n }\n }\n const iter = JS_GetProperty(ctx, items, JS_ATOM_Symbol_iterator);\n if (JS_IsException(iter)) return JS_EXCEPTION;\n let arr: JSValue;\n let len: number;\n if (!JS_IsUndefined(iter) && !JS_IsNull(iter)) {\n if (!JS_IsFunction(ctx, iter)) return JS_ThrowTypeError(ctx, 'value is not iterable');\n const r = js_array_from_iterator(ctx, items, iter);\n if (!r) return JS_EXCEPTION;\n arr = r.arr;\n len = r.len;\n } else {\n arr = JS_ToObject(ctx, items);\n if (JS_IsException(arr)) return JS_EXCEPTION;\n len = js_get_length64(ctx, arr);\n if (len < 0) return JS_EXCEPTION;\n }\n const r = js_typed_array_create(ctx, this_val, [len]);\n if (JS_IsException(r)) return JS_EXCEPTION;\n for (let k = 0; k < len; k++) {\n let v = JS_GetPropertyInt64(ctx, arr, k);\n if (JS_IsException(v)) return JS_EXCEPTION;\n if (mapping) {\n v = JS_Call(ctx, mapfn, this_arg, [v, k]);\n if (JS_IsException(v)) return JS_EXCEPTION;\n }\n if (JS_SetPropertyInt64(ctx, r, k, v) < 0) return JS_EXCEPTION;\n }\n return r;\n}\n\nfunction js_typed_array_of(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const obj = js_typed_array_create(ctx, this_val, [argv.length]);\n if (JS_IsException(obj)) return obj;\n for (let i = 0; i < argv.length; i++) {\n if (JS_SetPropertyUint32(ctx, obj, i, argv[i]) < 0) return JS_EXCEPTION;\n }\n return obj;\n}\n\nfunction js_typed_array_copyWithin(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const to = JS_ToInt32Clamp(ctx, argv[0], 0, len, len);\n if (JS_IsException(to)) return JS_EXCEPTION;\n const from = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(from)) return JS_EXCEPTION;\n let final: number | typeof JS_EXCEPTION = len;\n if (argv.length > 2 && !JS_IsUndefined(argv[2])) {\n final = JS_ToInt32Clamp(ctx, argv[2], 0, len, len);\n if (JS_IsException(final)) return JS_EXCEPTION;\n }\n const count = Math.min((final as number) - (from as number), len - (to as number));\n if (count > 0) {\n const p = this_val as JSObject;\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const view = typed_array_get_view(p);\n if (view) {\n /* the buffer may have been resized */\n const cur_len = view.length;\n const cnt = Math.min(count, cur_len - (from as number), cur_len - (to as number));\n if (cnt > 0) view.copyWithin(to as number, from as number, (from as number) + cnt);\n }\n }\n return this_val;\n}\n\nfunction js_typed_array_fill(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const p = this_val as JSObject;\n const v = typed_array_convert_value(ctx, Q.JS_GetClassID(p), argv[0]);\n if (JS_IsException(v)) return JS_EXCEPTION;\n let k: number | typeof JS_EXCEPTION = 0;\n if (argv.length > 1) {\n k = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(k)) return JS_EXCEPTION;\n }\n let final: number | typeof JS_EXCEPTION = len;\n if (argv.length > 2 && !JS_IsUndefined(argv[2])) {\n final = JS_ToInt32Clamp(ctx, argv[2], 0, len, len);\n if (JS_IsException(final)) return JS_EXCEPTION;\n }\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const view = typed_array_get_view(p);\n if (view) {\n /* RAB may have been resized by evil .valueOf method */\n const end = Math.min(final as number, view.length);\n if ((k as number) < end) (view as any).fill(v, k as number, end);\n }\n return this_val;\n}\n\nconst enum ArrayFindMode { ArrayFind, ArrayFindIndex, ArrayFindLast, ArrayFindLastIndex }\n\nfunction js_typed_array_find(ctx: JSContext, this_val: JSValue, argv: JSValue[], mode: number): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const func = argv[0];\n if (check_function(ctx, func)) return JS_EXCEPTION;\n let this_arg: JSValue = undefined;\n if (argv.length > 1) this_arg = argv[1];\n let k = 0, dir = 1, end = len;\n if (mode === ArrayFindMode.ArrayFindLast || mode === ArrayFindMode.ArrayFindLastIndex) {\n k = len - 1;\n dir = -1;\n end = -1;\n }\n for (; k !== end; k += dir) {\n const index_val = k;\n const val = JS_GetPropertyValue(ctx, this_val, index_val);\n if (JS_IsException(val)) return JS_EXCEPTION;\n const res = JS_Call(ctx, func, this_arg, [val, index_val, this_val]);\n if (JS_IsException(res)) return JS_EXCEPTION;\n if (JS_ToBoolFree(ctx, res)) {\n if (mode === ArrayFindMode.ArrayFindIndex || mode === ArrayFindMode.ArrayFindLastIndex) return index_val;\n return val;\n }\n }\n if (mode === ArrayFindMode.ArrayFindIndex || mode === ArrayFindMode.ArrayFindLastIndex) return -1;\n return undefined;\n}\n\nconst special_indexOf = 0;\nconst special_lastIndexOf = 1;\nconst special_includes = -1;\n\n/* value range of the integer typed arrays */\nconst int_ranges: [number, number][] = [\n [0, 255], [-128, 127], [0, 255], [-32768, 32767], [0, 65535], [-2147483648, 2147483647], [0, 4294967295],\n];\n\nfunction js_typed_array_indexOf(ctx: JSContext, this_val: JSValue, argv: JSValue[], special: number): JSValue {\n let res = -1;\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const done = (): JSValue => special === special_includes ? res >= 0 : res;\n if (len === 0) return done();\n let k: number, stop: number, inc: number;\n if (special === special_lastIndexOf) {\n k = len - 1;\n if (argv.length > 1) {\n const r = JS_ToFloat64(ctx, argv[1]);\n if (JS_IsException(r)) return JS_EXCEPTION;\n let d = r as number;\n if (Number.isNaN(d)) {\n k = 0;\n } else {\n if (d >= 0) {\n if (d < k) k = Math.trunc(d);\n } else {\n d += len;\n if (d < 0) return done();\n k = Math.trunc(d);\n }\n }\n }\n stop = -1;\n inc = -1;\n } else {\n k = 0;\n if (argv.length > 1) {\n const r = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(r)) return JS_EXCEPTION;\n k = r as number;\n }\n stop = len;\n inc = 1;\n }\n const p = this_val as JSObject;\n /* if the array was detached, no need to go further (but no\n exception is raised) */\n if (typed_array_is_detached(ctx, p) || typed_array_is_oob(ctx, p)) {\n /* \"includes\" scans all the properties, so \"undefined\" can match */\n if (special === special_includes && JS_IsUndefined(argv[0]) && len > 0) res = 0;\n return done();\n }\n const view = typed_array_get_view(p)!;\n /* the buffer may have been resized: only scan the current elements */\n if (view.length < len) {\n if (inc > 0) stop = view.length; else if (k >= view.length) k = view.length - 1;\n }\n const arg = argv[0];\n let is_int = false, is_bigint = false;\n let d = 0;\n let v64 = 0n;\n if (typeof arg === 'number') {\n d = arg;\n if (d >= -9223372036854775808 && d < 9223372036854775808 && Number.isInteger(d)) is_int = true;\n } else if (typeof arg === 'bigint') {\n if (Q.JS_GetClassID(p) === JSClassID.BIG_INT64_ARRAY) {\n if (arg < -(1n << 63n) || arg >= (1n << 63n)) return done(); /* does not fit an int64 : cannot be found */\n } else if (Q.JS_GetClassID(p) === JSClassID.BIG_UINT64_ARRAY) {\n if (arg < 0n || arg >= (1n << 64n)) return done();\n } else {\n return done();\n }\n v64 = arg;\n is_bigint = true;\n } else {\n return done();\n }\n const scan = (v: number | bigint): void => {\n for (; k !== stop; k += inc) {\n if (view[k] === v) { res = k; break; }\n }\n };\n switch (Q.JS_GetClassID(p)) {\n case JSClassID.INT8_ARRAY: case JSClassID.UINT8C_ARRAY: case JSClassID.UINT8_ARRAY:\n case JSClassID.INT16_ARRAY: case JSClassID.UINT16_ARRAY: case JSClassID.INT32_ARRAY: case JSClassID.UINT32_ARRAY: {\n const [min, max] = int_ranges[Q.JS_GetClassID(p) - JSClassID.UINT8C_ARRAY];\n if (is_int && d >= min && d <= max) scan(d);\n break;\n }\n case JSClassID.FLOAT16_ARRAY:\n if (is_bigint) break;\n if (Number.isNaN(d)) {\n /* special case: indexOf returns -1, includes finds NaN */\n if (special !== special_includes) return done();\n for (; k !== stop; k += inc) {\n if (Number.isNaN(view[k] as number)) { res = k; break; }\n }\n } else if (f16round(d) === d) {\n scan(d);\n }\n break;\n case JSClassID.FLOAT32_ARRAY:\n if (is_bigint) break;\n if (Number.isNaN(d)) {\n /* special case: indexOf returns -1, includes finds NaN */\n if (special !== special_includes) return done();\n for (; k !== stop; k += inc) {\n if (Number.isNaN(view[k] as number)) { res = k; break; }\n }\n } else if (Math.fround(d) === d) {\n scan(d);\n }\n break;\n case JSClassID.FLOAT64_ARRAY:\n if (is_bigint) break;\n if (Number.isNaN(d)) {\n /* special case: indexOf returns -1, includes finds NaN */\n if (special !== special_includes) return done();\n for (; k !== stop; k += inc) {\n if (Number.isNaN(view[k] as number)) { res = k; break; }\n }\n } else {\n scan(d);\n }\n break;\n case JSClassID.BIG_INT64_ARRAY:\n case JSClassID.BIG_UINT64_ARRAY:\n if (is_bigint) scan(v64);\n break;\n }\n return done();\n}\n\nfunction JS_ToLocaleStringFree(ctx: JSContext, val: JSValue): JSValue {\n if (JS_IsUndefined(val) || JS_IsNull(val)) return JS_ToString(ctx, val);\n return JS_Invoke(ctx, val, JS_ATOM_toLocaleString, []);\n}\n\nfunction js_typed_array_join(ctx: JSContext, this_val: JSValue, argv: JSValue[], toLocaleString: number): JSValue {\n const n = js_typed_array_get_length_internal(ctx, this_val);\n if (n < 0) return JS_EXCEPTION;\n let sep = ','; /* default separator */\n if (!toLocaleString && argv.length > 0 && !JS_IsUndefined(argv[0])) {\n const s = JS_ToString(ctx, argv[0]);\n if (JS_IsException(s)) return JS_EXCEPTION;\n sep = s as string;\n }\n let b = '';\n /* XXX: optimize with direct access */\n for (let i = 0; i < n; i++) {\n if (i > 0) b += sep;\n let el = JS_GetPropertyUint32(ctx, this_val, i);\n /* Can return undefined for example if the typed array is detached */\n if (!JS_IsNull(el) && !JS_IsUndefined(el)) {\n if (JS_IsException(el)) return JS_EXCEPTION;\n if (toLocaleString) {\n el = JS_ToLocaleStringFree(ctx, el);\n if (JS_IsException(el)) return JS_EXCEPTION;\n }\n const s = JS_ToString(ctx, el);\n if (JS_IsException(s)) return JS_EXCEPTION;\n b += s as string;\n }\n }\n return b;\n}\n\nfunction js_typed_array_reverse(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n if (len > 0) {\n const view = typed_array_get_view(this_val as JSObject);\n if (view) view.reverse();\n }\n return this_val;\n}\n\nfunction js_typed_array_toReversed(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n const arr = js_typed_array_constructor_ta(ctx, undefined, this_val, Q.JS_GetClassID(p));\n if (JS_IsException(arr)) return JS_EXCEPTION;\n return js_typed_array_reverse(ctx, arr, argv);\n}\n\n/* copy 'len' bytes; the spec mandates a byte copy when the regions overlap */\nfunction slice_memcpy(dst: Uint8Array, dst_pos: number, src: Uint8Array, src_pos: number, len: number): void {\n if (dst.buffer !== src.buffer) {\n dst.set(src.subarray(src_pos, src_pos + len), dst_pos);\n } else {\n const d0 = dst.byteOffset + dst_pos, s0 = src.byteOffset + src_pos;\n if (d0 + len <= s0 || d0 >= s0 + len) {\n dst.set(src.subarray(src_pos, src_pos + len), dst_pos);\n } else {\n for (let i = 0; i < len; i++) dst[dst_pos + i] = src[src_pos + i];\n }\n }\n}\n\nfunction js_typed_array_slice(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n const start = JS_ToInt32Clamp(ctx, argv[0], 0, len, len);\n if (JS_IsException(start)) return JS_EXCEPTION;\n let final: number | typeof JS_EXCEPTION = len;\n if (!JS_IsUndefined(argv[1])) {\n final = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(final)) return JS_EXCEPTION;\n }\n const count = Math.max((final as number) - (start as number), 0);\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n const shift = typed_array_size_log2(Q.JS_GetClassID(p));\n const arr = js_typed_array___speciesCreate(ctx, undefined, [this_val, count]);\n if (JS_IsException(arr)) return JS_EXCEPTION;\n if (count > 0) {\n if (validate_typed_array(ctx, this_val) || validate_typed_array(ctx, arr)) return JS_EXCEPTION;\n const p1 = get_typed_array(ctx, arr, false);\n if (p1 !== null && Q.JS_GetClassID(p) === Q.JS_GetClassID(p1) &&\n typed_array_get_length(ctx, p1) >= count &&\n typed_array_get_length(ctx, p) >= (start as number) + count) {\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray, ta1 = Q.JS_GetAnyOpaque(p1) as JSTypedArray;\n const src = (Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer).data, dst = (Q.JS_GetAnyOpaque(ta1.buffer) as JSArrayBuffer).data;\n slice_memcpy(dst, ta1.offset, src, ta.offset + ((start as number) << shift), count << shift);\n } else {\n for (let n = 0; n < count; n++) {\n const val = JS_GetPropertyValue(ctx, this_val, (start as number) + n);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (JS_SetPropertyValue(ctx, arr, n, val, JS_PROP_THROW) < 0) return JS_EXCEPTION;\n }\n }\n }\n return arr;\n}\n\nfunction js_typed_array_subarray(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n const len = typed_array_get_length(ctx, p);\n const start = JS_ToInt32Clamp(ctx, argv[0], 0, len, len);\n if (JS_IsException(start)) return JS_EXCEPTION;\n let final: number | typeof JS_EXCEPTION = len;\n if (!JS_IsUndefined(argv[1])) {\n final = JS_ToInt32Clamp(ctx, argv[1], 0, len, len);\n if (JS_IsException(final)) return JS_EXCEPTION;\n }\n const count = Math.max((final as number) - (start as number), 0);\n const byteOffset = js_typed_array_get_byteOffset(ctx, this_val, 0);\n if (JS_IsException(byteOffset)) return JS_EXCEPTION;\n const shift = typed_array_size_log2(Q.JS_GetClassID(p));\n const offset = (byteOffset as number) + ((start as number) << shift);\n const ta_buffer = js_typed_array_get_buffer(ctx, this_val, 0);\n if (JS_IsException(ta_buffer)) return JS_EXCEPTION;\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n if (ta.track_rab && JS_IsUndefined(argv[1])) {\n /* length tracking subarray of a length tracking array */\n return js_typed_array___speciesCreate(ctx, undefined, [this_val, ta_buffer, offset]);\n }\n return js_typed_array___speciesCreate(ctx, undefined, [this_val, ta_buffer, offset, count]);\n}\n\n/* TypedArray.prototype.sort */\n\nfunction js_cmp_doubles(x: number, y: number): number {\n if (Number.isNaN(x)) return Number.isNaN(y) ? 0 : +1;\n if (Number.isNaN(y)) return -1;\n if (x < y) return -1;\n if (x > y) return 1;\n if (x !== 0) return 0;\n if (1 / x < 0) return 1 / y < 0 ? 0 : -1;\n return 1 / y < 0 ? 1 : 0;\n}\n\nfunction js_TA_cmp_default(a: number | bigint, b: number | bigint): number {\n if (typeof a === 'bigint') return a < (b as bigint) ? -1 : a > (b as bigint) ? 1 : 0;\n return js_cmp_doubles(a, b as number);\n}\n\n/* stable merge sort of an index array */\nfunction merge_sort_indices(idx: number[], cmp: (a: number, b: number) => number): number[] {\n const n = idx.length;\n let src = idx, dst = new Array<number>(n);\n for (let width = 1; width < n; width *= 2) {\n for (let i = 0; i < n; i += 2 * width) {\n let l = i, r = Math.min(i + width, n);\n const lend = r, rend = Math.min(i + 2 * width, n);\n let k = i;\n while (l < lend && r < rend) {\n if (cmp(src[l], src[r]) <= 0) dst[k++] = src[l++];\n else dst[k++] = src[r++];\n }\n while (l < lend) dst[k++] = src[l++];\n while (r < rend) dst[k++] = src[r++];\n }\n const t = src; src = dst; dst = t;\n }\n return src;\n}\n\nfunction js_typed_array_sort(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const cmp = argv[0];\n if (!JS_IsUndefined(cmp) && check_function(ctx, cmp)) return JS_EXCEPTION;\n const len = js_typed_array_get_length_internal(ctx, this_val);\n if (len < 0) return JS_EXCEPTION;\n if (len > 1) {\n const p = this_val as JSObject;\n const view = typed_array_get_view(p)!;\n const vals: (number | bigint)[] = new Array(len);\n for (let i = 0; i < len; i++) vals[i] = view[i];\n if (!JS_IsUndefined(cmp)) {\n let exception = 0;\n const idx: number[] = new Array(len);\n for (let i = 0; i < len; i++) idx[i] = i;\n const sorted = merge_sort_indices(idx, (a, b) => {\n if (exception) return 0;\n const res = JS_Call(ctx, cmp, undefined, [vals[a], vals[b]]);\n if (JS_IsException(res)) { exception = 1; return 0; }\n const d = JS_ToFloat64(ctx, res);\n if (JS_IsException(d)) { exception = 1; return 0; }\n let v = d as number;\n if (Number.isNaN(v)) v = 0;\n /* make sort stable: compare array offsets */\n if (v === 0) return a - b;\n return v < 0 ? -1 : 1;\n });\n if (exception) return JS_EXCEPTION;\n /* the array may have been detached or resized during the sort: no error */\n const view1 = typed_array_get_view(p);\n if (view1) {\n const n = Math.min(len, view1.length);\n for (let i = 0; i < n; i++) (view1 as any)[i] = vals[sorted[i]];\n }\n } else {\n const idx: number[] = new Array(len);\n for (let i = 0; i < len; i++) idx[i] = i;\n const sorted = merge_sort_indices(idx, (a, b) => js_TA_cmp_default(vals[a], vals[b]));\n for (let i = 0; i < len; i++) (view as any)[i] = vals[sorted[i]];\n }\n }\n return this_val;\n}\n\nfunction js_typed_array_toSorted(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = get_typed_array(ctx, this_val, false);\n if (!p) return JS_EXCEPTION;\n const arr = js_typed_array_constructor_ta(ctx, undefined, this_val, Q.JS_GetClassID(p));\n if (JS_IsException(arr)) return JS_EXCEPTION;\n return js_typed_array_sort(ctx, arr, argv);\n}\n\n/* every/some/forEach/map/filter (typed array variants of js_array_every) */\nconst special_every = 0;\nconst special_some = 1;\nconst special_forEach = 2;\nconst special_map = 3;\nconst special_filter = 4;\nconst special_TA = 8;\n\nfunction js_array_every(ctx: JSContext, this_val: JSValue, argv: JSValue[], special: number): JSValue {\n const obj = this_val;\n const len = js_typed_array_get_length_internal(ctx, obj);\n if (len < 0) return JS_EXCEPTION;\n const func = argv[0];\n let this_arg: JSValue = undefined;\n if (argv.length > 1) this_arg = argv[1];\n if (check_function(ctx, func)) return JS_EXCEPTION;\n let ret: JSValue = undefined;\n switch (special) {\n case special_every | special_TA:\n ret = true;\n break;\n case special_some | special_TA:\n ret = false;\n break;\n case special_map | special_TA:\n ret = js_typed_array___speciesCreate(ctx, undefined, [obj, len]);\n if (JS_IsException(ret)) return JS_EXCEPTION;\n break;\n case special_filter | special_TA:\n ret = JS_NewArray(ctx);\n if (JS_IsException(ret)) return JS_EXCEPTION;\n break;\n }\n let n = 0;\n let k: number;\n loop: for (k = 0; k < len; k++) {\n const val = JS_GetPropertyInt64(ctx, obj, k);\n if (JS_IsException(val)) return JS_EXCEPTION;\n const res = JS_Call(ctx, func, this_arg, [val, k, obj]);\n if (JS_IsException(res)) return JS_EXCEPTION;\n switch (special) {\n case special_every | special_TA:\n if (!JS_ToBoolFree(ctx, res)) { ret = false; break loop; }\n break;\n case special_some | special_TA:\n if (JS_ToBoolFree(ctx, res)) { ret = true; break loop; }\n break;\n case special_map | special_TA:\n if (JS_SetPropertyValue(ctx, ret, k, res, JS_PROP_THROW) < 0) return JS_EXCEPTION;\n break;\n case special_filter | special_TA:\n if (JS_ToBoolFree(ctx, res)) {\n if (JS_DefinePropertyValueInt64(ctx, ret, n++, val, JS_PROP_C_W_E | JS_PROP_THROW) < 0) return JS_EXCEPTION;\n }\n break;\n default:\n break;\n }\n }\n if (special === (special_filter | special_TA)) {\n const arr = js_typed_array___speciesCreate(ctx, undefined, [obj, n]);\n if (JS_IsException(arr)) return JS_EXCEPTION;\n const res = JS_Invoke(ctx, arr, JS_ATOM_set, [ret]);\n if (JS_IsException(res)) return JS_EXCEPTION;\n ret = arr;\n }\n return ret;\n}\n\nconst special_reduce = 0;\nconst special_reduceRight = 1;\n\nfunction js_array_reduce(ctx: JSContext, this_val: JSValue, argv: JSValue[], special: number): JSValue {\n const obj = this_val;\n const len = js_typed_array_get_length_internal(ctx, obj);\n if (len < 0) return JS_EXCEPTION;\n const func = argv[0];\n if (check_function(ctx, func)) return JS_EXCEPTION;\n let k = 0;\n let acc: JSValue;\n if (argv.length > 1) {\n acc = argv[1];\n } else {\n if (k >= len) return JS_ThrowTypeError(ctx, 'empty array');\n const k1 = (special & special_reduceRight) ? len - k - 1 : k;\n k++;\n acc = JS_GetPropertyInt64(ctx, obj, k1);\n if (JS_IsException(acc)) return JS_EXCEPTION;\n }\n for (; k < len; k++) {\n const k1 = (special & special_reduceRight) ? len - k - 1 : k;\n const val = JS_GetPropertyInt64(ctx, obj, k1);\n if (JS_IsException(val)) return JS_EXCEPTION;\n const acc1 = JS_Call(ctx, func, undefined, [acc, val, k1, obj]);\n if (JS_IsException(acc1)) return JS_EXCEPTION;\n acc = acc1;\n }\n return acc;\n}\n\n/* fallback Array.prototype.toString (used if the Array builtins are not\n installed yet): port of js_array_toString */\nfunction js_array_toString(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const obj = JS_ToObject(ctx, this_val);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n const method = JS_GetProperty(ctx, obj, JS_ATOM_join);\n if (JS_IsException(method)) return JS_EXCEPTION;\n if (!JS_IsFunction(ctx, method)) {\n /* Use intrinsic Object.prototype.toString */\n const objproto = ctx.class_proto[JSClassID.OBJECT];\n const ts = objproto ? JS_GetProperty(ctx, objproto, JS_ATOM_toString) : undefined;\n if (JS_IsException(ts)) return JS_EXCEPTION;\n if (JS_IsFunction(ctx, ts)) return JS_Call(ctx, ts, obj, []);\n return '[object Object]';\n }\n return JS_Call(ctx, method, obj, []);\n}\n\nconst js_typed_array_base_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_DEF('from', 1, js_typed_array_from),\n JS_CFUNC_DEF('of', 0, js_typed_array_of),\n JS_CGETSET_DEF(JS_ATOM_Symbol_species, js_get_this, null),\n];\n\nconst js_typed_array_base_proto_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_DEF(JS_ATOM_length, js_typed_array_get_length, null),\n JS_CFUNC_DEF('at', 1, js_typed_array_at),\n JS_CFUNC_DEF('with', 2, js_typed_array_with),\n JS_CGETSET_MAGIC_DEF('buffer', js_typed_array_get_buffer, null, 0),\n JS_CGETSET_MAGIC_DEF('byteLength', js_typed_array_get_byteLength, null, 0),\n JS_CGETSET_MAGIC_DEF('byteOffset', js_typed_array_get_byteOffset, null, 0),\n JS_CFUNC_DEF('set', 1, js_typed_array_set),\n /* typed arrays are host typed arrays: the host iterators are used, with\n the guest Array Iterator prototype */\n JS_NATIVE_DEF('values', 0, HOST_TYPED_ARRAY_PROTO.values, fix_array_iterator),\n JS_ALIAS_DEF(JS_ATOM_Symbol_iterator, 'values'),\n JS_NATIVE_DEF('keys', 0, HOST_TYPED_ARRAY_PROTO.keys, fix_array_iterator),\n JS_NATIVE_DEF('entries', 0, HOST_TYPED_ARRAY_PROTO.entries, fix_array_iterator),\n JS_CGETSET_DEF(JS_ATOM_Symbol_toStringTag, js_typed_array_get_toStringTag, null),\n JS_CFUNC_DEF('copyWithin', 2, js_typed_array_copyWithin),\n JS_CFUNC_MAGIC_DEF('every', 1, js_array_every, special_every | special_TA),\n JS_CFUNC_MAGIC_DEF('some', 1, js_array_every, special_some | special_TA),\n JS_CFUNC_MAGIC_DEF('forEach', 1, js_array_every, special_forEach | special_TA),\n JS_CFUNC_MAGIC_DEF('map', 1, js_array_every, special_map | special_TA),\n JS_CFUNC_MAGIC_DEF('filter', 1, js_array_every, special_filter | special_TA),\n JS_CFUNC_MAGIC_DEF('reduce', 1, js_array_reduce, special_reduce | special_TA),\n JS_CFUNC_MAGIC_DEF('reduceRight', 1, js_array_reduce, special_reduceRight | special_TA),\n JS_CFUNC_DEF('fill', 1, js_typed_array_fill),\n JS_CFUNC_MAGIC_DEF('find', 1, js_typed_array_find, ArrayFindMode.ArrayFind),\n JS_CFUNC_MAGIC_DEF('findIndex', 1, js_typed_array_find, ArrayFindMode.ArrayFindIndex),\n JS_CFUNC_MAGIC_DEF('findLast', 1, js_typed_array_find, ArrayFindMode.ArrayFindLast),\n JS_CFUNC_MAGIC_DEF('findLastIndex', 1, js_typed_array_find, ArrayFindMode.ArrayFindLastIndex),\n JS_CFUNC_DEF('reverse', 0, js_typed_array_reverse),\n JS_CFUNC_DEF('toReversed', 0, js_typed_array_toReversed),\n JS_CFUNC_DEF('slice', 2, js_typed_array_slice),\n JS_CFUNC_DEF('subarray', 2, js_typed_array_subarray),\n JS_CFUNC_DEF('sort', 1, js_typed_array_sort),\n JS_CFUNC_DEF('toSorted', 1, js_typed_array_toSorted),\n JS_CFUNC_MAGIC_DEF('join', 1, js_typed_array_join, 0),\n JS_CFUNC_MAGIC_DEF('toLocaleString', 0, js_typed_array_join, 1),\n JS_CFUNC_MAGIC_DEF('indexOf', 1, js_typed_array_indexOf, special_indexOf),\n JS_CFUNC_MAGIC_DEF('lastIndexOf', 1, js_typed_array_indexOf, special_lastIndexOf),\n JS_CFUNC_MAGIC_DEF('includes', 1, js_typed_array_indexOf, special_includes),\n];\n\nfunction js_typed_array_base_constructor(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return JS_ThrowTypeError(ctx, 'cannot be called');\n}\n\n/* 'obj' is the allocated placeholder object (its prototype and class are\n used). Returns the guest typed array object: a host typed array over\n the buffer, re-prototyped, carrying the metadata. */\nfunction typed_array_init(ctx: JSContext, obj: JSValue, buffer: JSValue, offset: number, len: number, track_rab: boolean): JSValue {\n const class_id = Q.JS_GetClassID(obj);\n const size_log2 = typed_array_size_log2(class_id);\n const ta = new JSTypedArray(buffer as JSObject, offset, len << size_log2);\n ta.track_rab = track_rab;\n const abuf = Q.JS_GetAnyOpaque(buffer) as JSArrayBuffer;\n const ctor = host_ta_ctors[class_id - JSClassID.UINT8C_ARRAY]!;\n let view: HostTA;\n try {\n view = track_rab ? new (ctor as any)(abuf.buffer, offset) : new ctor(abuf.buffer, offset, len);\n } catch (e) {\n return Q.js_host_exception_to_guest(ctx, e);\n }\n return host_view_adopt(ctx, obj, view, ta);\n}\n\n/* move the class metadata of the placeholder 'obj' to the host view */\nfunction host_view_adopt(ctx: JSContext, obj: JSValue, view: object, ta: JSTypedArray): JSValue {\n Object.setPrototypeOf(view, Reflect.getPrototypeOf(obj as object));\n const m = Q.js_meta.get(obj as object)!;\n m.u = ta;\n Q.js_meta.set(view, m);\n Q.js_meta.delete(obj as object);\n return view;\n}\n\nfunction js_typed_array_constructor_obj(ctx: JSContext, new_target: JSValue, obj: JSValue, classid: JSClassID): JSValue {\n const size_log2 = typed_array_size_log2(classid);\n let ret = js_create_from_ctor(ctx, new_target, classid);\n if (JS_IsException(ret)) return JS_EXCEPTION;\n const iter = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_iterator);\n if (JS_IsException(iter)) return JS_EXCEPTION;\n let arr: JSValue;\n let len: number;\n if (!JS_IsUndefined(iter) && !JS_IsNull(iter)) {\n const r = js_array_from_iterator(ctx, obj, iter);\n if (!r) return JS_EXCEPTION;\n arr = r.arr;\n len = r.len;\n } else {\n len = js_get_length64(ctx, obj);\n if (len < 0) return JS_EXCEPTION;\n arr = obj;\n }\n const buffer = js_array_buffer_constructor1(ctx, undefined, len << size_log2);\n if (JS_IsException(buffer)) return JS_EXCEPTION;\n ret = typed_array_init(ctx, ret, buffer, 0, len, false);\n if (JS_IsException(ret)) return JS_EXCEPTION;\n for (let i = 0; i < len; i++) {\n const val = JS_GetPropertyUint32(ctx, arr, i);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (JS_SetPropertyUint32(ctx, ret, i, val) < 0) return JS_EXCEPTION;\n }\n return ret;\n}\n\nfunction js_typed_array_constructor_ta(ctx: JSContext, new_target: JSValue, src_obj: JSValue, classid: JSClassID): JSValue {\n let obj = js_create_from_ctor(ctx, new_target, classid);\n if (JS_IsException(obj)) return obj;\n const p = src_obj as JSObject;\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (typed_array_is_oob(ctx, p)) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n const ta = Q.JS_GetAnyOpaque(p) as JSTypedArray;\n const len = typed_array_get_length(ctx, p);\n const src_abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n const size_log2 = typed_array_size_log2(classid);\n const buffer = js_array_buffer_constructor1(ctx, undefined, len << size_log2);\n if (JS_IsException(buffer)) return JS_EXCEPTION;\n /* necessary because it could have been detached */\n if (typed_array_is_detached(ctx, p)) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const abuf = Q.JS_GetAnyOpaque(buffer) as JSArrayBuffer;\n obj = typed_array_init(ctx, obj, buffer, 0, len, false);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n if (Q.JS_GetClassID(p) === classid) {\n /* same type: copy the content */\n abuf.data.set(src_abuf.data.subarray(ta.offset, ta.offset + abuf.data.length));\n } else {\n for (let i = 0; i < len; i++) {\n const val = JS_GetPropertyUint32(ctx, src_obj, i);\n if (JS_IsException(val)) return JS_EXCEPTION;\n if (JS_SetPropertyUint32(ctx, obj, i, val) < 0) return JS_EXCEPTION;\n }\n }\n return obj;\n}\n\nfunction js_typed_array_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[], classid: number): JSValue {\n const size_log2 = typed_array_size_log2(classid as JSClassID);\n let buffer: JSValue;\n let len: number, offset: number;\n let track_rab = false;\n const arg0 = argv[0];\n /* the object (its prototype read from new.target) is created before the\n offset and the length are converted (QuickJS 68caa5f) */\n let obj: JSValue;\n if (!Q.JS_IsObject(arg0)) {\n len = JS_ToIndex(ctx, arg0);\n if (len < 0) return JS_EXCEPTION;\n obj = js_create_from_ctor(ctx, new_target, classid as JSClassID);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n buffer = js_array_buffer_constructor1(ctx, undefined, len << size_log2);\n if (JS_IsException(buffer)) return JS_EXCEPTION;\n offset = 0;\n } else {\n const p = arg0;\n if (Q.JS_GetClassID(p) === JSClassID.ARRAY_BUFFER || Q.JS_GetClassID(p) === JSClassID.SHARED_ARRAY_BUFFER) {\n obj = js_create_from_ctor(ctx, new_target, classid as JSClassID);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n const abuf = Q.JS_GetAnyOpaque(p) as JSArrayBuffer;\n offset = JS_ToIndex(ctx, argv[1]);\n if (offset < 0) return JS_EXCEPTION;\n if ((offset & ((1 << size_log2) - 1)) !== 0) return JS_ThrowRangeError(ctx, 'invalid offset');\n if (JS_IsUndefined(argv[2])) {\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (offset > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid offset');\n if (array_buffer_is_resizable(abuf)) {\n track_rab = true;\n len = (abuf.data.length - offset) >> size_log2;\n } else {\n if ((abuf.data.length & ((1 << size_log2) - 1)) !== 0) return JS_ThrowRangeError(ctx, 'invalid length');\n len = (abuf.data.length - offset) >> size_log2;\n }\n } else {\n len = JS_ToIndex(ctx, argv[2]);\n if (len < 0) return JS_EXCEPTION;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if ((offset + (len << size_log2)) > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid length');\n }\n buffer = arg0;\n } else {\n if (is_typed_array_class(Q.JS_GetClassID(p))) {\n return js_typed_array_constructor_ta(ctx, new_target, arg0, classid as JSClassID);\n } else {\n return js_typed_array_constructor_obj(ctx, new_target, arg0, classid as JSClassID);\n }\n }\n }\n return typed_array_init(ctx, obj, buffer, offset, len, track_rab);\n}\n\n/* ---------------------------------------------------------------------\n DataView\n --------------------------------------------------------------------- */\n\nfunction js_dataview_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[]): JSValue {\n const buffer = argv[0];\n const abuf = js_get_array_buffer(ctx, buffer);\n if (!abuf) return JS_EXCEPTION;\n let offset = 0;\n if (argv.length > 1) {\n offset = JS_ToIndex(ctx, argv[1]);\n if (offset < 0) return JS_EXCEPTION;\n }\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n if (offset > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid byteOffset');\n let len = abuf.data.length - offset;\n let track_rab = false;\n let recompute_len = false;\n if (argv.length > 2 && !JS_IsUndefined(argv[2])) {\n const l = JS_ToIndex(ctx, argv[2]);\n if (l < 0) return JS_EXCEPTION;\n if (l > len) return JS_ThrowRangeError(ctx, 'invalid byteLength');\n len = l;\n } else {\n recompute_len = true;\n track_rab = array_buffer_is_resizable(abuf);\n }\n const obj = js_create_from_ctor(ctx, new_target, JSClassID.DATAVIEW);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n if (abuf.detached) {\n /* could have been detached in js_create_from_ctor() */\n return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n }\n /* the buffer could have been resized in js_create_from_ctor() (a RangeError, as in\n QuickJS 2026-06-04 and the specification) */\n if (offset > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid byteOffset or byteLength');\n if (recompute_len) len = abuf.data.length - offset;\n else if (offset + len > abuf.data.length) return JS_ThrowRangeError(ctx, 'invalid byteOffset or byteLength');\n const ta = new JSTypedArray(buffer as JSObject, offset, len);\n ta.track_rab = track_rab;\n let view: DataView;\n try {\n view = track_rab ? new DataView(abuf.buffer, offset) : new DataView(abuf.buffer, offset, len);\n } catch (e) {\n return Q.js_host_exception_to_guest(ctx, e);\n }\n return host_view_adopt(ctx, obj, view, ta);\n}\n\nfunction js_dataview_getValue(ctx: JSContext, this_obj: JSValue, argv: JSValue[], class_id: number): JSValue {\n const ta = JS_GetOpaque2(ctx, this_obj, JSClassID.DATAVIEW) as JSTypedArray | null;\n if (!ta) return JS_EXCEPTION;\n const size = 1 << typed_array_size_log2(class_id as JSClassID);\n const pos = JS_ToIndex(ctx, argv[0]);\n if (pos < 0) return JS_EXCEPTION;\n const littleEndian = argv.length > 1 && JS_ToBoolFree(ctx, argv[1]);\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const ta_len = typed_array_get_byte_length(ta, 0);\n if (ta_len < 0) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n if ((pos + size) > ta_len) return JS_ThrowRangeError(ctx, 'out of bound');\n const dv = array_buffer_get_dv(abuf);\n const ptr = ta.offset + pos;\n switch (class_id) {\n case JSClassID.INT8_ARRAY: return dv.getInt8(ptr);\n case JSClassID.UINT8_ARRAY: return dv.getUint8(ptr);\n case JSClassID.INT16_ARRAY: return dv.getInt16(ptr, littleEndian);\n case JSClassID.UINT16_ARRAY: return dv.getUint16(ptr, littleEndian);\n case JSClassID.INT32_ARRAY: return dv.getInt32(ptr, littleEndian);\n case JSClassID.UINT32_ARRAY: return dv.getUint32(ptr, littleEndian);\n case JSClassID.BIG_INT64_ARRAY: return dv.getBigInt64(ptr, littleEndian);\n case JSClassID.BIG_UINT64_ARRAY: return dv.getBigUint64(ptr, littleEndian);\n case JSClassID.FLOAT16_ARRAY: return fromfp16(dv.getUint16(ptr, littleEndian));\n case JSClassID.FLOAT32_ARRAY: return dv.getFloat32(ptr, littleEndian);\n case JSClassID.FLOAT64_ARRAY: return dv.getFloat64(ptr, littleEndian);\n default: return JS_ThrowTypeError(ctx, 'invalid DataView type');\n }\n}\n\nfunction js_dataview_setValue(ctx: JSContext, this_obj: JSValue, argv: JSValue[], class_id: number): JSValue {\n const ta = JS_GetOpaque2(ctx, this_obj, JSClassID.DATAVIEW) as JSTypedArray | null;\n if (!ta) return JS_EXCEPTION;\n const size = 1 << typed_array_size_log2(class_id as JSClassID);\n const pos = JS_ToIndex(ctx, argv[0]);\n if (pos < 0) return JS_EXCEPTION;\n const val = argv[1];\n let v: number = 0;\n let v64: bigint = 0n;\n if (class_id <= JSClassID.UINT32_ARRAY) {\n const r = JS_ToUint32Free(ctx, val);\n if (JS_IsException(r)) return JS_EXCEPTION;\n v = r as number;\n } else if (class_id <= JSClassID.BIG_UINT64_ARRAY) {\n const r = JS_ToBigInt64(ctx, val);\n if (JS_IsException(r)) return JS_EXCEPTION;\n v64 = r as bigint;\n } else {\n const r = JS_ToFloat64(ctx, val);\n if (JS_IsException(r)) return JS_EXCEPTION;\n v = r as number;\n }\n const littleEndian = argv.length > 2 && JS_ToBoolFree(ctx, argv[2]);\n const abuf = Q.JS_GetAnyOpaque(ta.buffer) as JSArrayBuffer;\n if (abuf.detached) return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);\n const ta_len = typed_array_get_byte_length(ta, 0);\n if (ta_len < 0) return JS_ThrowTypeErrorArrayBufferOOB(ctx);\n if ((pos + size) > ta_len) return JS_ThrowRangeError(ctx, 'out of bound');\n const dv = array_buffer_get_dv(abuf);\n const ptr = ta.offset + pos;\n switch (class_id) {\n case JSClassID.INT8_ARRAY:\n case JSClassID.UINT8_ARRAY:\n dv.setUint8(ptr, v);\n break;\n case JSClassID.INT16_ARRAY:\n case JSClassID.UINT16_ARRAY:\n dv.setUint16(ptr, v, littleEndian);\n break;\n case JSClassID.INT32_ARRAY:\n case JSClassID.UINT32_ARRAY:\n dv.setUint32(ptr, v, littleEndian);\n break;\n case JSClassID.FLOAT16_ARRAY:\n dv.setUint16(ptr, tofp16(v), littleEndian);\n break;\n case JSClassID.FLOAT32_ARRAY:\n dv.setFloat32(ptr, v, littleEndian);\n break;\n case JSClassID.BIG_INT64_ARRAY:\n case JSClassID.BIG_UINT64_ARRAY:\n dv.setBigInt64(ptr, v64, littleEndian);\n break;\n case JSClassID.FLOAT64_ARRAY:\n dv.setFloat64(ptr, v, littleEndian);\n break;\n default:\n return JS_ThrowTypeError(ctx, 'invalid DataView type');\n }\n return undefined;\n}\n\nconst js_dataview_proto_funcs: JSCFunctionListEntry[] = [\n JS_CGETSET_MAGIC_DEF('buffer', js_typed_array_get_buffer, null, 1),\n JS_CGETSET_MAGIC_DEF('byteLength', js_typed_array_get_byteLength, null, 1),\n JS_CGETSET_MAGIC_DEF('byteOffset', js_typed_array_get_byteOffset, null, 1),\n JS_CFUNC_MAGIC_DEF('getInt8', 1, js_dataview_getValue, JSClassID.INT8_ARRAY),\n JS_CFUNC_MAGIC_DEF('getUint8', 1, js_dataview_getValue, JSClassID.UINT8_ARRAY),\n JS_CFUNC_MAGIC_DEF('getInt16', 1, js_dataview_getValue, JSClassID.INT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('getUint16', 1, js_dataview_getValue, JSClassID.UINT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('getInt32', 1, js_dataview_getValue, JSClassID.INT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('getUint32', 1, js_dataview_getValue, JSClassID.UINT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('getBigInt64', 1, js_dataview_getValue, JSClassID.BIG_INT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('getBigUint64', 1, js_dataview_getValue, JSClassID.BIG_UINT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('getFloat16', 1, js_dataview_getValue, JSClassID.FLOAT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('getFloat32', 1, js_dataview_getValue, JSClassID.FLOAT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('getFloat64', 1, js_dataview_getValue, JSClassID.FLOAT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('setInt8', 2, js_dataview_setValue, JSClassID.INT8_ARRAY),\n JS_CFUNC_MAGIC_DEF('setUint8', 2, js_dataview_setValue, JSClassID.UINT8_ARRAY),\n JS_CFUNC_MAGIC_DEF('setInt16', 2, js_dataview_setValue, JSClassID.INT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('setUint16', 2, js_dataview_setValue, JSClassID.UINT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('setInt32', 2, js_dataview_setValue, JSClassID.INT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('setUint32', 2, js_dataview_setValue, JSClassID.UINT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('setBigInt64', 2, js_dataview_setValue, JSClassID.BIG_INT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('setBigUint64', 2, js_dataview_setValue, JSClassID.BIG_UINT64_ARRAY),\n JS_CFUNC_MAGIC_DEF('setFloat16', 2, js_dataview_setValue, JSClassID.FLOAT16_ARRAY),\n JS_CFUNC_MAGIC_DEF('setFloat32', 2, js_dataview_setValue, JSClassID.FLOAT32_ARRAY),\n JS_CFUNC_MAGIC_DEF('setFloat64', 2, js_dataview_setValue, JSClassID.FLOAT64_ARRAY),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'DataView', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n Uint8Array base64 / hex (tc39 proposal-arraybuffer-base64)\n --------------------------------------------------------------------- */\n\n/* JS_STRING_LEN_MAX */\nconst JS_STRING_LEN_MAX = (1 << 30) - 1;\n\n/* a new Uint8Array holding a copy of 'buf' (JS_NewUint8ArrayCopy) */\nfunction JS_NewUint8ArrayCopy(ctx: JSContext, buf: Uint8Array): JSValue {\n const buffer = js_array_buffer_constructor3(ctx, undefined, buf.length, -1, JSClassID.ARRAY_BUFFER, buf);\n if (JS_IsException(buffer)) return JS_EXCEPTION;\n const obj = js_create_from_ctor(ctx, undefined, JSClassID.UINT8_ARRAY);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n return typed_array_init(ctx, obj, buffer, 0, buf.length, false);\n}\n\n/* this_val must be a Uint8Array (type check only, no detach check) */\nfunction check_uint8array(ctx: JSContext, this_val: JSValue): JSObject | null {\n if (Q.JS_IsObject(this_val) && Q.JS_GetClassID(this_val) === JSClassID.UINT8_ARRAY) return this_val;\n JS_ThrowTypeError(ctx, 'not a Uint8Array');\n return null;\n}\n\n/* the bytes of a Uint8Array, checking for detached and out of bounds buffers.\n Must be called after the options are read (spec ordering). */\nfunction get_uint8array_bytes(ctx: JSContext, p: JSObject): Uint8Array | null {\n if (typed_array_is_oob(ctx, p)) {\n JS_ThrowTypeErrorArrayBufferOOB(ctx);\n return null;\n }\n return (typed_array_get_view(p) as Uint8Array | null) ?? new Uint8Array(0);\n}\n\n/* GetOptionsObject: undefined or an object */\nfunction check_options_object(ctx: JSContext, options: JSValue): number {\n if (JS_IsUndefined(options)) return 0;\n if (!Q.JS_IsObject(options)) {\n JS_ThrowTypeError(ctx, 'options must be an object');\n return -1;\n }\n return 0;\n}\n\n/* the 'alphabet' option: B64_ALPHABET_xxx or -1 on exception */\nfunction parse_alphabet_option(ctx: JSContext, options: JSValue): number {\n if (JS_IsUndefined(options)) return B64_ALPHABET_BASE64;\n const val = JS_GetPropertyStr(ctx, options, 'alphabet');\n if (JS_IsException(val)) return -1;\n if (JS_IsUndefined(val)) return B64_ALPHABET_BASE64;\n if (typeof val !== 'string') {\n JS_ThrowTypeError(ctx, 'expected string for alphabet');\n return -1;\n }\n if (val === 'base64') return B64_ALPHABET_BASE64;\n if (val === 'base64url') return B64_ALPHABET_BASE64URL;\n JS_ThrowTypeError(ctx, 'invalid alphabet');\n return -1;\n}\n\n/* the 'lastChunkHandling' option: B64_LAST_xxx or -1 on exception */\nfunction parse_last_chunk_option(ctx: JSContext, options: JSValue): number {\n if (JS_IsUndefined(options)) return B64_LAST_LOOSE;\n const val = JS_GetPropertyStr(ctx, options, 'lastChunkHandling');\n if (JS_IsException(val)) return -1;\n if (JS_IsUndefined(val)) return B64_LAST_LOOSE;\n if (typeof val !== 'string') {\n JS_ThrowTypeError(ctx, 'expected string for lastChunkHandling');\n return -1;\n }\n if (val === 'loose') return B64_LAST_LOOSE;\n if (val === 'strict') return B64_LAST_STRICT;\n if (val === 'stop-before-partial') return B64_LAST_STOP_BEFORE_PARTIAL;\n JS_ThrowTypeError(ctx, 'invalid lastChunkHandling option');\n return -1;\n}\n\n/* Uint8Array.prototype.toBase64([options]) */\nfunction js_uint8array_to_base64(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = check_uint8array(ctx, this_val);\n if (!p) return JS_EXCEPTION;\n const options = argv.length > 0 ? argv[0] : undefined;\n if (check_options_object(ctx, options)) return JS_EXCEPTION;\n const alphabet = parse_alphabet_option(ctx, options);\n if (alphabet < 0) return JS_EXCEPTION;\n let omit_padding = false;\n if (!JS_IsUndefined(options)) {\n const op_val = JS_GetPropertyStr(ctx, options, 'omitPadding');\n if (JS_IsException(op_val)) return JS_EXCEPTION;\n omit_padding = JS_ToBoolFree(ctx, op_val);\n }\n const data = get_uint8array_bytes(ctx, p);\n if (!data) return JS_EXCEPTION;\n if (4 * Math.floor((data.length + 2) / 3) > JS_STRING_LEN_MAX) return JS_ThrowRangeError(ctx, 'output too large');\n return b64_encode(data, alphabet, omit_padding);\n}\n\n/* Uint8Array.prototype.toHex() */\nfunction js_uint8array_to_hex(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = check_uint8array(ctx, this_val);\n if (!p) return JS_EXCEPTION;\n const data = get_uint8array_bytes(ctx, p);\n if (!data) return JS_EXCEPTION;\n if (data.length * 2 > JS_STRING_LEN_MAX) return JS_ThrowRangeError(ctx, 'output too large');\n return u8a_hex_encode(data);\n}\n\n/* Uint8Array.fromBase64(string[, options]) */\nfunction js_uint8array_from_base64(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const str = argv[0];\n if (typeof str !== 'string') return JS_ThrowTypeError(ctx, 'expected string');\n const options = argv.length > 1 ? argv[1] : undefined;\n if (check_options_object(ctx, options)) return JS_EXCEPTION;\n const alphabet = parse_alphabet_option(ctx, options);\n if (alphabet < 0) return JS_EXCEPTION;\n const last_chunk = parse_last_chunk_option(ctx, options);\n if (last_chunk < 0) return JS_EXCEPTION;\n const out_cap = Math.floor(str.length / 4) * 3 + 3;\n const buf = new Uint8Array(out_cap);\n const r = from_base64(str, buf, out_cap, alphabet, last_chunk);\n if (r.err) return JS_ThrowSyntaxError(ctx, 'invalid base64 string');\n return JS_NewUint8ArrayCopy(ctx, buf.subarray(0, r.written));\n}\n\n/* Uint8Array.fromHex(string) */\nfunction js_uint8array_from_hex(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const str = argv[0];\n if (typeof str !== 'string') return JS_ThrowTypeError(ctx, 'expected string');\n const out_cap = Math.floor(str.length / 2) + 1;\n const buf = new Uint8Array(out_cap);\n const r = u8a_hex_decode(str, buf, out_cap);\n if (r.err) return JS_ThrowSyntaxError(ctx, 'invalid hex string');\n return JS_NewUint8ArrayCopy(ctx, buf.subarray(0, r.written));\n}\n\n/* a { read, written } result object */\nfunction js_make_read_written(ctx: JSContext, read: number, written: number): JSValue {\n const obj = JS_NewObject(ctx);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n if (JS_DefinePropertyValueStr(ctx, obj, 'read', read, JS_PROP_C_W_E) < 0) return JS_EXCEPTION;\n if (JS_DefinePropertyValueStr(ctx, obj, 'written', written, JS_PROP_C_W_E) < 0) return JS_EXCEPTION;\n return obj;\n}\n\n/* Uint8Array.prototype.setFromBase64(string[, options]) */\nfunction js_uint8array_set_from_base64(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = check_uint8array(ctx, this_val);\n if (!p) return JS_EXCEPTION;\n const str = argv[0];\n if (typeof str !== 'string') return JS_ThrowTypeError(ctx, 'expected string');\n const options = argv.length > 1 ? argv[1] : undefined;\n if (check_options_object(ctx, options)) return JS_EXCEPTION;\n const alphabet = parse_alphabet_option(ctx, options);\n if (alphabet < 0) return JS_EXCEPTION;\n const last_chunk = parse_last_chunk_option(ctx, options);\n if (last_chunk < 0) return JS_EXCEPTION;\n const data = get_uint8array_bytes(ctx, p);\n if (!data) return JS_EXCEPTION;\n const r = from_base64(str, data, data.length, alphabet, last_chunk);\n if (r.err) return JS_ThrowSyntaxError(ctx, 'invalid base64 string');\n return js_make_read_written(ctx, r.read, r.written);\n}\n\n/* Uint8Array.prototype.setFromHex(string) */\nfunction js_uint8array_set_from_hex(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const p = check_uint8array(ctx, this_val);\n if (!p) return JS_EXCEPTION;\n const str = argv[0];\n if (typeof str !== 'string') return JS_ThrowTypeError(ctx, 'expected string');\n const data = get_uint8array_bytes(ctx, p);\n if (!data) return JS_EXCEPTION;\n const r = u8a_hex_decode(str, data, data.length);\n if (r.err) return JS_ThrowSyntaxError(ctx, 'invalid hex string');\n return js_make_read_written(ctx, r.read, r.written);\n}\n\nconst js_uint8array_proto_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_DEF('toBase64', 0, js_uint8array_to_base64),\n JS_CFUNC_DEF('toHex', 0, js_uint8array_to_hex),\n JS_CFUNC_DEF('setFromBase64', 1, js_uint8array_set_from_base64),\n JS_CFUNC_DEF('setFromHex', 1, js_uint8array_set_from_hex),\n];\n\nconst js_uint8array_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_DEF('fromBase64', 1, js_uint8array_from_base64),\n JS_CFUNC_DEF('fromHex', 1, js_uint8array_from_hex),\n];\n\n/* ---------------------------------------------------------------------\n Intrinsics\n --------------------------------------------------------------------- */\n\nexport function JS_AddIntrinsicTypedArrays(ctx: JSContext): void {\n const ab_proto = JS_NewObject(ctx) as JSObject;\n ctx.class_proto[JSClassID.ARRAY_BUFFER] = ab_proto;\n JS_SetPropertyFunctionList(ctx, ab_proto, js_array_buffer_proto_funcs);\n const array_buffer_func = JS_NewGlobalCConstructorOnly(ctx, 'ArrayBuffer', js_array_buffer_constructor, 1, ab_proto);\n JS_SetPropertyFunctionList(ctx, array_buffer_func, js_array_buffer_funcs);\n\n const sab_proto = JS_NewObject(ctx) as JSObject;\n ctx.class_proto[JSClassID.SHARED_ARRAY_BUFFER] = sab_proto;\n JS_SetPropertyFunctionList(ctx, sab_proto, js_shared_array_buffer_proto_funcs);\n const shared_array_buffer_func = JS_NewGlobalCConstructorOnly(ctx, 'SharedArrayBuffer', js_shared_array_buffer_constructor, 1, sab_proto);\n JS_SetPropertyFunctionList(ctx, shared_array_buffer_func, js_shared_array_buffer_funcs);\n\n const typed_array_base_proto = JS_NewObject(ctx) as JSObject;\n JS_SetPropertyFunctionList(ctx, typed_array_base_proto, js_typed_array_base_proto_funcs);\n\n /* TypedArray.prototype.toString must be the same object as Array.prototype.toString */\n let obj = JS_GetProperty(ctx, ctx.class_proto[JSClassID.ARRAY], JS_ATOM_toString);\n if (JS_IsException(obj) || !JS_IsFunction(ctx, obj)) {\n obj = JS_NewCFunction3(ctx, js_array_toString, 'toString', 0, JSCFunctionEnum.generic, 0, ctx.function_proto);\n }\n JS_DefinePropertyValue(ctx, typed_array_base_proto, JS_ATOM_toString, obj, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n\n const typed_array_base_func = JS_NewCFunction2(ctx, js_typed_array_base_constructor, 'TypedArray', 0, JSCFunctionEnum.constructor_or_func, 0);\n JS_SetPropertyFunctionList(ctx, typed_array_base_func, js_typed_array_base_funcs);\n JS_SetConstructor(ctx, typed_array_base_func, typed_array_base_proto);\n\n for (let i = JSClassID.UINT8C_ARRAY; i < JSClassID.UINT8C_ARRAY + JS_TYPED_ARRAY_COUNT; i++) {\n if (!typed_array_class_available(i)) continue; /* Float16Array on hosts without it */\n const proto = JS_NewObjectProto(ctx, typed_array_base_proto) as JSObject;\n ctx.class_proto[i] = proto;\n JS_DefinePropertyValueStr(ctx, proto, 'BYTES_PER_ELEMENT', 1 << typed_array_size_log2(i), 0);\n const name = JS_AtomToString(ctx, JS_ATOM_Uint8ClampedArray + i - JSClassID.UINT8C_ARRAY);\n const func_obj = JS_NewCFunction3(ctx, js_typed_array_constructor, name, 3, JSCFunctionEnum.constructor_magic, i, typed_array_base_func);\n JS_NewGlobalCConstructor2(ctx, func_obj, name, proto);\n JS_DefinePropertyValueStr(ctx, func_obj, 'BYTES_PER_ELEMENT', 1 << typed_array_size_log2(i), 0);\n if (i === JSClassID.UINT8_ARRAY) {\n JS_SetPropertyFunctionList(ctx, func_obj, js_uint8array_funcs);\n JS_SetPropertyFunctionList(ctx, proto, js_uint8array_proto_funcs);\n }\n }\n\n /* DataView */\n const dv_proto = JS_NewObject(ctx) as JSObject;\n ctx.class_proto[JSClassID.DATAVIEW] = dv_proto;\n JS_SetPropertyFunctionList(ctx, dv_proto, js_dataview_proto_funcs);\n JS_NewGlobalCConstructorOnly(ctx, 'DataView', js_dataview_constructor, 1, dv_proto);\n}\n\nexport { typed_array_get_length as js_typed_array_get_length_elements, typed_array_is_detached, validate_typed_array };\n"]}