jseption 0.0.3 → 0.0.5
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.
- package/README.md +112 -4
- package/dist/bytecode.js +162 -2
- package/dist/bytecode.js.map +1 -1
- package/dist/embed.d.ts +5 -0
- package/dist/embed.js +44 -12
- package/dist/embed.js.map +1 -1
- package/dist/interpreter.js +15 -4
- package/dist/interpreter.js.map +1 -1
- package/dist/jit.js +12 -4
- package/dist/jit.js.map +1 -1
- package/dist/jit_runtime.d.ts +2 -0
- package/dist/jit_runtime.js +11 -0
- package/dist/jit_runtime.js.map +1 -1
- package/dist/jseption.d.ts +6 -0
- package/dist/jseption.js +4 -0
- package/dist/jseption.js.map +1 -1
- package/dist/membrane.d.ts +16 -0
- package/dist/membrane.js +576 -0
- package/dist/membrane.js.map +1 -0
- package/dist/module.d.ts +28 -0
- package/dist/module.js +1166 -0
- package/dist/module.js.map +1 -0
- package/dist/opcodes.js +1 -1
- package/dist/opcodes.js.map +1 -1
- package/dist/parser.d.ts +31 -0
- package/dist/parser.js +2862 -62
- package/dist/parser.js.map +1 -1
- package/dist/qjs.js +86 -17
- package/dist/qjs.js.map +1 -1
- package/dist/quickjs.d.ts +8 -0
- package/dist/quickjs.js +21 -2
- package/dist/quickjs.js.map +1 -1
- package/dist/std.d.ts +2 -0
- package/dist/std.js +34 -0
- package/dist/std.js.map +1 -1
- package/dist/values.d.ts +78 -0
- package/dist/values.js +85 -0
- package/dist/values.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/dist/interpreter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * jseption: TypeScript port of QuickJS\n *\n * Port of the bytecode interpreter of quickjs.c: JS_CallInternal, closures,\n * variable references, the arguments objects, private fields/brands,\n * class definition, generators, async functions and async generators.\n */\nimport { jit_hooks, JIT_NOT_COMPILED } from './jit_hook.ts';\nimport {\n JSContext, JSRuntime, JSValue, JSObject, JSAtom, JSClassID, JSSpecial,\n JS_EXCEPTION, JS_UNINITIALIZED, JS_IsException, JS_IsUndefined, JS_IsNull, JS_IsObject,\n JS_IsUninitialized, JS_IsCatchOffset, JS_NewCatchOffset, JSFunctionBytecode, JSFunctionData,\n JSVarRef, JSStackFrame, EMPTY_VAR_REFS, JSAsyncFunctionState, JSGeneratorData, JSGeneratorState, JSFunctionKind,\n JS_CALL_FLAG_CONSTRUCTOR, JS_CALL_FLAG_COPY_ARGV, JS_CALL_FLAG_GENERATOR, JS_MODE_STRICT, JS_MODE_ASYNC,\n JS_PROP_CONFIGURABLE, JS_PROP_WRITABLE, JS_PROP_ENUMERABLE, JS_PROP_C_W_E, JS_PROP_THROW,\n JS_PROP_THROW_STRICT, JS_PROP_HAS_GET, JS_PROP_HAS_SET, JS_PROP_HAS_VALUE,\n JS_PROP_HAS_WRITABLE, JS_PROP_HAS_CONFIGURABLE, JS_PROP_HAS_ENUMERABLE,\n JS_EVAL_TYPE_DIRECT, JS_EVAL_FLAG_STRICT,\n js_meta, js_get_meta, js_new_host_function, js_take_exception, js_call_host_function, js_call_c_function,\n js_c_function_data_call, JS_GetFunctionData, js_privates, JSObjectMeta, JS_GetClassID, JS_AtomToKey, JSHostImpl,\n js_host_exception_to_guest,\n JS_ATOM_NULL, JS_ATOM_length, JS_ATOM_name, JS_ATOM_prototype, JS_ATOM_constructor, JS_ATOM_callee,\n JS_ATOM_Symbol_iterator, JS_ATOM_Symbol_unscopables, JS_ATOM_Private_brand, JS_ATOM_brand,\n JS_ATOM_empty_string, JS_ATOM_next, JS_ATOM_return, JS_ATOM_throw, JS_ATOM_undefined, JS_ATOM_function,\n JS_ATOM_stack, JS_ATOM_TYPE_PRIVATE, JS_ATOM_Symbol_toStringTag,\n hooks, JS_Throw, JS_GetException, JS_ThrowTypeError, JS_ThrowTypeErrorAtom, JS_ThrowTypeErrorNotAnObject,\n JS_ThrowTypeErrorNotASymbol, JS_ThrowReferenceError, JS_ThrowReferenceErrorNotDefined,\n JS_ThrowReferenceErrorUninitialized, JS_ThrowReferenceErrorUninitialized2, JS_ThrowSyntaxErrorAtom,\n JS_ThrowInternalError, JS_ThrowStackOverflow, JS_ThrowTypeErrorReadOnly, JS_IsUncatchableError,\n JS_SetUncatchableError, build_backtrace, is_strict_mode,\n JS_NewObject, JS_NewObjectProto, JS_NewObjectProtoClass, JS_NewObjectClass, JS_NewArray,\n JS_NewSymbolFromAtom, JS_AtomToValue, JS_AtomToString, JS_ValueToAtom, JS_NewCFunctionData,\n JS_GetProperty, JS_GetPropertyInternal, JS_GetPropertyValue, JS_SetPropertyInternal, JS_SetPropertyValue,\n JS_HasProperty, JS_DefineProperty, JS_DefinePropertyValue, JS_DefinePropertyValueValue,\n JS_DefinePropertyValueUint32, JS_DeleteProperty, JS_GetPrototype,\n JS_SetPrototypeInternal, JS_SetConstructorBit, JS_IsFunction, JS_IsConstructor,\n JS_CheckGlobalVar, JS_GetGlobalVar, JS_SetGlobalVar, JS_GetGlobalVarRef, JS_DefineGlobalVar,\n JS_CheckDefineGlobalVar, JS_DefineGlobalFunction, JS_CopyDataProperties,\n JS_Call, JS_CallFree, JS_CallConstructorInternal, JS_CallConstructor2, js_create_from_ctor,\n JS_GetOpaque, JS_SetOpaque,\n JS_ToBoolFree, JS_ToObject, JS_ToPropertyKey, JS_ToNumericFree,\n js_add_slow, js_binary_arith_slow, js_unary_arith_slow, JSArithOp, JSUnaryOp, js_relational_op, JSRelOp,\n js_loose_eq, js_strict_eq2, JSStrictEqMode, JS_IsInstanceOf, js_operator_typeof, js_operator_in,\n JS_GetIterator, JS_IteratorNext, JS_IteratorClose, JS_IteratorGetCompleteValue, build_arg_list,\n build_for_in_iterator, js_for_in_next, js_create_iterator_result, js_get_fast_array, js_get_length64,\n async_hooks, JSCFunctionListEntry, JS_ITERATOR_NEXT_DEF, JS_CFUNC_MAGIC_DEF, JS_PROP_STRING_DEF,\n js_same_value, JS_GetFunctionRealm, JS_NewArrayFrom,\n} from './quickjs.ts';\nimport {\n OP, OPSpecialObject, OP_DEFINE_METHOD_METHOD, OP_DEFINE_METHOD_GETTER, OP_DEFINE_METHOD_SETTER,\n OP_DEFINE_METHOD_ENUMERABLE, JS_DEFINE_CLASS_HAS_HERITAGE, JS_THROW_VAR_RO, JS_THROW_VAR_REDECL,\n JS_THROW_VAR_UNINITIALIZED, JS_THROW_ERROR_DELETE_SUPER, JS_THROW_ERROR_ITERATOR_THROW,\n FUNC_RET_AWAIT, FUNC_RET_YIELD, FUNC_RET_YIELD_STAR, FUNC_RET_INITIAL_YIELD,\n get_u8, get_i8, get_u16, get_i16, get_u32, get_i32,\n} from './opcodes.ts';\nimport { JS_NewPromiseCapability, js_promise_resolve, perform_promise_then } from './builtins/promise.ts';\n\nexport const ARG_SCOPE_END = -2;\n\nexport const GEN_MAGIC_NEXT = 0;\nexport const GEN_MAGIC_RETURN = 1;\nexport const GEN_MAGIC_THROW = 2;\n\n/* ---------------------------------------------------------------------\n Variable references\n --------------------------------------------------------------------- */\n\nexport function js_class_has_bytecode(class_id: JSClassID): boolean {\n return class_id === JSClassID.BYTECODE_FUNCTION || class_id === JSClassID.GENERATOR_FUNCTION ||\n class_id === JSClassID.ASYNC_FUNCTION || class_id === JSClassID.ASYNC_GENERATOR_FUNCTION;\n}\n\nexport function get_var_ref(ctx: JSContext, sf: JSStackFrame, var_idx: number, is_arg: boolean): JSVarRef {\n for (const vr of sf.var_refs) {\n if (!vr.is_detached && vr.is_arg === is_arg && vr.var_idx === var_idx) return vr;\n }\n const vr = new JSVarRef(sf, is_arg, var_idx);\n if (sf.var_refs === EMPTY_VAR_REFS) sf.var_refs = [];\n sf.var_refs.push(vr);\n return vr;\n}\n\nexport function close_var_refs(rt: JSRuntime, sf: JSStackFrame): void {\n if (sf.var_refs === EMPTY_VAR_REFS) return;\n for (const vr of sf.var_refs) vr.detach();\n sf.var_refs.length = 0;\n}\n\nexport function close_lexical_var(ctx: JSContext, sf: JSStackFrame, var_idx: number): void {\n const refs = sf.var_refs;\n for (let i = refs.length - 1; i >= 0; i--) {\n const vr = refs[i];\n if (!vr.is_arg && vr.var_idx === var_idx) {\n vr.detach();\n refs.splice(i, 1);\n }\n }\n}\n\n/* ---------------------------------------------------------------------\n Closures\n --------------------------------------------------------------------- */\n\nfunction func_kind_to_class_id(kind: JSFunctionKind): JSClassID {\n switch (kind) {\n case JSFunctionKind.GENERATOR: return JSClassID.GENERATOR_FUNCTION;\n case JSFunctionKind.ASYNC: return JSClassID.ASYNC_FUNCTION;\n case JSFunctionKind.ASYNC_GENERATOR: return JSClassID.ASYNC_GENERATOR_FUNCTION;\n default: return JSClassID.BYTECODE_FUNCTION;\n }\n}\n\n/* collect the variable references of a closure from the current frame */\nfunction js_build_var_refs(ctx: JSContext, b: JSFunctionBytecode, cur_var_refs: JSVarRef[] | null,\n sf: JSStackFrame | null): JSVarRef[] | null {\n const var_refs: JSVarRef[] = [];\n for (let i = 0; i < b.closure_var.length; i++) {\n const cv = b.closure_var[i];\n if (cv.is_local) {\n /* reuse the existing variable reference if it already exists */\n if (!sf) { JS_ThrowInternalError(ctx, 'closure without stack frame'); return null; }\n var_refs.push(get_var_ref(ctx, sf, cv.var_idx, cv.is_arg));\n } else {\n if (!cur_var_refs) { JS_ThrowInternalError(ctx, 'closure without parent var refs'); return null; }\n var_refs.push(cur_var_refs[cv.var_idx]);\n }\n }\n return var_refs;\n}\n\n/* Create the guest function object of a bytecode function with the given\n variable references. The object is a strict host wrapper whose\n implementation runs the interpreter (or the compiled code). */\nexport function js_closure_from_refs(ctx: JSContext, b: JSFunctionBytecode, var_refs: JSVarRef[],\n proto: JSValue | null, is_ctor: boolean): JSValue {\n /* compiled tier: a retargetable wrapper that switches to the compiled body once it exists */\n if (jit_hooks.make_wrapper !== null && b.func_kind === JSFunctionKind.NORMAL && !b.no_jit) {\n const w = jit_hooks.make_wrapper(ctx, b, var_refs, proto, is_ctor);\n if (w !== null) return w;\n }\n let fobj: object;\n const impl: JSHostImpl = (this_val, new_target, args) => {\n let ret: JSValue;\n if (new_target !== undefined) ret = JS_CallInternal(ctx, fobj, new_target, new_target, args, JS_CALL_FLAG_CONSTRUCTOR);\n else ret = JS_CallInternal(ctx, fobj, this_val, undefined, args, 0);\n if (ret === JS_EXCEPTION) throw js_take_exception(ctx);\n return ret;\n };\n fobj = js_new_host_function(ctx, impl, is_ctor, '', b.defined_arg_count, proto, func_kind_to_class_id(b.func_kind));\n const m = js_meta.get(fobj)!;\n m.func = new JSFunctionData(b, var_refs);\n m.realm = b.realm ?? ctx;\n return fobj;\n}\n\nexport function js_closure2(ctx: JSContext, b: JSFunctionBytecode, cur_var_refs: JSVarRef[] | null,\n sf: JSStackFrame | null, proto: JSValue | null, is_ctor: boolean): JSValue {\n const var_refs = js_build_var_refs(ctx, b, cur_var_refs, sf);\n if (!var_refs) return JS_EXCEPTION;\n return js_closure_from_refs(ctx, b, var_refs, proto, is_ctor);\n}\n\nfunction js_instantiate_prototype(ctx: JSContext, p: JSObject): JSValue {\n const obj = JS_NewObject(ctx);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n if (JS_DefinePropertyValue(ctx, obj, JS_ATOM_constructor, p, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE) < 0)\n return JS_EXCEPTION;\n return obj;\n}\n\nexport function js_function_set_properties(ctx: JSContext, func_obj: JSValue, name: JSAtom, len: number): void {\n JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_length, len, JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_name, JS_AtomToString(ctx, name), JS_PROP_CONFIGURABLE);\n}\n\nexport function js_closure(ctx: JSContext, b: JSFunctionBytecode, cur_var_refs: JSVarRef[] | null,\n sf: JSStackFrame | null): JSValue {\n const class_id = func_kind_to_class_id(b.func_kind);\n const proto = ctx.class_proto[class_id] ?? ctx.function_proto;\n const func_obj = js_closure2(ctx, b, cur_var_refs, sf, proto, b.has_prototype);\n if (JS_IsException(func_obj)) return JS_EXCEPTION;\n let name_atom = b.func_name;\n if (name_atom === JS_ATOM_NULL) name_atom = JS_ATOM_empty_string;\n js_function_set_properties(ctx, func_obj, name_atom, b.defined_arg_count);\n if (b.func_kind & JSFunctionKind.GENERATOR) {\n /* generators have a prototype field which is used as prototype for the generator object */\n const proto_class_id = (b.func_kind === JSFunctionKind.ASYNC_GENERATOR) ? JSClassID.ASYNC_GENERATOR : JSClassID.GENERATOR;\n const gproto = JS_NewObjectProto(ctx, ctx.class_proto[proto_class_id]);\n if (JS_IsException(gproto)) return JS_EXCEPTION;\n JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_prototype, gproto, JS_PROP_WRITABLE);\n } else if (b.has_prototype) {\n const proto_obj = js_instantiate_prototype(ctx, func_obj as object);\n if (JS_IsException(proto_obj)) return JS_EXCEPTION;\n JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_prototype, proto_obj, JS_PROP_WRITABLE);\n }\n return func_obj;\n}\n\n/* ---------------------------------------------------------------------\n Arguments objects\n --------------------------------------------------------------------- */\n\nexport function js_build_arguments(ctx: JSContext, argc: number, argv: JSValue[]): JSValue {\n const val = JS_NewObjectProtoClass(ctx, ctx.class_proto[JSClassID.OBJECT], JSClassID.ARGUMENTS);\n if (JS_IsException(val)) return val;\n for (let i = 0; i < argc; i++) {\n Reflect.defineProperty(val as object, i, { value: argv[i], writable: true, enumerable: true, configurable: true });\n }\n JS_DefinePropertyValue(ctx, val, JS_ATOM_length, argc, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValue(ctx, val, JS_ATOM_Symbol_iterator, ctx.array_proto_values, JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE);\n /* add callee property to throw a TypeError in strict mode */\n JS_DefineProperty(ctx, val, JS_ATOM_callee, undefined, ctx.throw_type_error ?? undefined,\n ctx.throw_type_error ?? undefined, JS_PROP_HAS_GET | JS_PROP_HAS_SET);\n return val;\n}\n\n/* legacy arguments object: add references to the function arguments */\nexport function js_build_mapped_arguments(ctx: JSContext, argc: number, argv: JSValue[],\n sf: JSStackFrame, arg_count: number): JSValue {\n const val = JS_NewObjectProtoClass(ctx, ctx.class_proto[JSClassID.OBJECT], JSClassID.MAPPED_ARGUMENTS);\n if (JS_IsException(val)) return val;\n JS_DefinePropertyValue(ctx, val, JS_ATOM_length, argc, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n /* the mapped arguments alias the variables through accessor properties */\n for (let i = 0; i < arg_count; i++) {\n const var_ref = get_var_ref(ctx, sf, i, true);\n const getter = js_new_host_function(ctx, () => var_ref.get(), false, '', 0, ctx.function_proto, JSClassID.C_FUNCTION);\n const setter = js_new_host_function(ctx, (_t, _nt, args) => { var_ref.set(args[0]); return undefined; }, false, '', 1,\n ctx.function_proto, JSClassID.C_FUNCTION);\n Reflect.defineProperty(val as object, i, { get: getter as any, set: setter as any, enumerable: true, configurable: true });\n }\n /* the arguments not mapped to the arguments of the function can be normal properties */\n for (let i = arg_count; i < argc; i++) {\n if (JS_DefinePropertyValueUint32(ctx, val, i, argv[i], JS_PROP_C_W_E) < 0) return JS_EXCEPTION;\n }\n JS_DefinePropertyValue(ctx, val, JS_ATOM_Symbol_iterator, ctx.array_proto_values, JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE);\n /* callee returns this function in non strict mode */\n JS_DefinePropertyValue(ctx, val, JS_ATOM_callee, sf.cur_func, JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE);\n return val;\n}\n\nfunction __atom_from_idx(i: number): JSAtom { return i + 0x80000000; }\n\nexport function js_build_rest(ctx: JSContext, first: number, argc: number, argv: JSValue[]): JSValue {\n return JS_NewArrayFrom(ctx, first < argc ? argv.slice(first, argc) : []);\n}\n\n/* ---------------------------------------------------------------------\n Private fields and brands\n --------------------------------------------------------------------- */\n\nfunction JS_ThrowTypeErrorPrivateNotFound(ctx: JSContext, atom: JSAtom): JSValue {\n return JS_ThrowTypeErrorAtom(ctx, \"private class field '%s' does not exist\", atom);\n}\n\n/* private fields and brands live in a side table keyed by the object, so\n they are invisible to Reflect.ownKeys and proxy traps */\nfunction js_private_map(obj: object, create: boolean): Map<symbol, JSValue> | undefined {\n let m = js_privates.get(obj);\n if (!m && create) {\n m = new Map();\n js_privates.set(obj, m);\n }\n return m;\n}\n\nfunction js_private_atom(ctx: JSContext, name: symbol): JSAtom {\n return ctx.rt.atoms.symbolToAtom(name);\n}\n\nexport function JS_DefinePrivateField(ctx: JSContext, obj: JSValue, name: JSValue, val: JSValue): number {\n if (!JS_IsObject(obj)) { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n if (typeof name !== 'symbol') { JS_ThrowTypeErrorNotASymbol(ctx); return -1; }\n const m = js_private_map(obj, true)!;\n if (m.has(name)) {\n JS_ThrowTypeErrorAtom(ctx, \"private class field '%s' already exists\", js_private_atom(ctx, name));\n return -1;\n }\n m.set(name, val);\n return 0;\n}\n\nexport function JS_GetPrivateField(ctx: JSContext, obj: JSValue, name: JSValue): JSValue {\n if (!JS_IsObject(obj)) return JS_ThrowTypeErrorNotAnObject(ctx);\n if (typeof name !== 'symbol') return JS_ThrowTypeErrorNotASymbol(ctx);\n const m = js_private_map(obj, false);\n if (!m || !m.has(name)) return JS_ThrowTypeErrorPrivateNotFound(ctx, js_private_atom(ctx, name));\n return m.get(name);\n}\n\nexport function JS_SetPrivateField(ctx: JSContext, obj: JSValue, name: JSValue, val: JSValue): number {\n if (!JS_IsObject(obj)) { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n if (typeof name !== 'symbol') { JS_ThrowTypeErrorNotASymbol(ctx); return -1; }\n const m = js_private_map(obj, false);\n if (!m || !m.has(name)) { JS_ThrowTypeErrorPrivateNotFound(ctx, js_private_atom(ctx, name)); return -1; }\n m.set(name, val);\n return 0;\n}\n\n/* add a private brand field to 'home_obj' if not already present and\n if obj is != null add a private brand to it */\nexport function JS_AddBrand(ctx: JSContext, obj: JSValue, home_obj: JSValue): number {\n if (!JS_IsObject(home_obj)) { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n const brand_key = ctx.rt.atoms.getSymbol(JS_ATOM_Private_brand);\n const hm = js_private_map(home_obj, true)!;\n let brand = hm.get(brand_key);\n if (brand === undefined) {\n /* if the brand is not present, add it */\n brand = JS_NewSymbolFromAtom(ctx, JS_ATOM_brand, JS_ATOM_TYPE_PRIVATE);\n hm.set(brand_key, brand);\n }\n if (JS_IsObject(obj)) {\n const m = js_private_map(obj, true)!;\n if (m.has(brand as symbol)) {\n JS_ThrowTypeError(ctx, 'private method is already present');\n return -1;\n }\n m.set(brand as symbol, undefined);\n }\n return 0;\n}\n\n/* return a boolean telling if the brand of the home object of 'func'\n is present on 'obj' or -1 in case of exception */\nexport function JS_CheckBrand(ctx: JSContext, obj: JSValue, func: JSValue): number {\n const fd = JS_GetFunctionData(func);\n if (!fd || !fd.home_object) {\n JS_ThrowTypeErrorNotAnObject(ctx); return -1;\n }\n const brand_key = ctx.rt.atoms.getSymbol(JS_ATOM_Private_brand);\n const brand = js_private_map(fd.home_object, false)?.get(brand_key);\n if (brand === undefined) { JS_ThrowTypeError(ctx, 'expecting <brand> private field'); return -1; }\n if (typeof brand !== 'symbol') { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n if (!JS_IsObject(obj)) { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n return js_private_map(obj, false)?.has(brand) ? 1 : 0;\n}\n\n/* op1 = object, op2 = field name or method function; returns -1/0/1 */\nexport function js_operator_private_in(ctx: JSContext, op1: JSValue, op2: JSValue): number {\n if (!JS_IsObject(op1)) { JS_ThrowTypeError(ctx, \"invalid 'in' operand\"); return -1; }\n if (JS_IsObject(op2)) {\n /* method: use the brand */\n return JS_CheckBrand(ctx, op1, op2);\n }\n if (typeof op2 !== 'symbol') { JS_ThrowTypeErrorNotASymbol(ctx); return -1; }\n return js_private_map(op1, false)?.has(op2) ? 1 : 0;\n}\n\n/* ---------------------------------------------------------------------\n Methods, names and classes\n --------------------------------------------------------------------- */\n\nexport function js_method_set_home_object(ctx: JSContext, func_obj: JSValue, home_obj: JSValue): void {\n const fd = JS_GetFunctionData(func_obj);\n if (!fd) return;\n if (fd.function_bytecode.need_home_object) {\n fd.home_object = JS_IsObject(home_obj) ? home_obj : null;\n }\n}\n\nexport function js_get_function_name(ctx: JSContext, name: JSAtom): string {\n const name_str = JS_AtomToString(ctx, name);\n if (ctx.rt.atoms.isSymbol(name)) {\n const sym = ctx.rt.atoms.getSymbol(name);\n if (sym.description !== undefined) return '[' + name_str + ']';\n return '';\n }\n return name_str;\n}\n\n/* Modify the name of a method according to the atom and 'flags'\n (bitmask of JS_PROP_HAS_GET and JS_PROP_HAS_SET). Also set the home\n object of the method. Return < 0 if exception. */\nexport function js_method_set_properties(ctx: JSContext, func_obj: JSValue, name: JSAtom, flags: number, home_obj: JSValue): number {\n let name_str = js_get_function_name(ctx, name);\n if (flags & JS_PROP_HAS_GET) name_str = 'get ' + name_str;\n else if (flags & JS_PROP_HAS_SET) name_str = 'set ' + name_str;\n if (JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_name, name_str, JS_PROP_CONFIGURABLE) < 0) return -1;\n js_method_set_home_object(ctx, func_obj, home_obj);\n return 0;\n}\n\n/* return TRUE if 'obj' has a non empty 'name' string */\nfunction js_object_has_name(ctx: JSContext, obj: JSObject): boolean {\n let d: PropertyDescriptor | undefined;\n try {\n d = Reflect.getOwnPropertyDescriptor(obj, 'name');\n } catch {\n return true;\n }\n if (!d) return false;\n if ('get' in d || 'set' in d) return true;\n if (typeof d.value !== 'string') return true;\n return d.value.length !== 0;\n}\n\nexport function JS_DefineObjectName(ctx: JSContext, obj: JSValue, name: JSAtom, flags: number): number {\n if (name !== JS_ATOM_NULL && JS_IsObject(obj) && !js_object_has_name(ctx, obj) &&\n JS_DefinePropertyValue(ctx, obj, JS_ATOM_name, JS_AtomToString(ctx, name), flags) < 0) {\n return -1;\n }\n return 0;\n}\n\nexport function JS_DefineObjectNameComputed(ctx: JSContext, obj: JSValue, str: JSValue, flags: number): number {\n if (JS_IsObject(obj) && !js_object_has_name(ctx, obj)) {\n const prop = JS_ValueToAtom(ctx, str);\n if (prop === JS_ATOM_NULL) return -1;\n const name_str = js_get_function_name(ctx, prop);\n if (JS_DefinePropertyValue(ctx, obj, JS_ATOM_name, name_str, flags) < 0) return -1;\n }\n return 0;\n}\n\n/* Define a class: returns [ctor, proto] or null on exception. 'var_refs'\n are the variable references of the constructor closure (already built;\n see js_build_var_refs). 'computed_name' is the class name value when\n the name is computed (class_name is then ignored). */\nexport function js_define_class(ctx: JSContext, class_name: JSAtom, class_flags: number, parent_class: JSValue,\n b: JSFunctionBytecode, var_refs: JSVarRef[], is_computed_name: boolean,\n computed_name: JSValue): [JSValue, JSValue] | null {\n let parent_proto: JSValue;\n if (class_flags & JS_DEFINE_CLASS_HAS_HERITAGE) {\n if (parent_class === null) {\n parent_proto = null;\n parent_class = ctx.function_proto;\n } else {\n if (!JS_IsConstructor(ctx, parent_class)) {\n JS_ThrowTypeError(ctx, 'parent class must be constructor');\n return null;\n }\n parent_proto = JS_GetProperty(ctx, parent_class, JS_ATOM_prototype);\n if (JS_IsException(parent_proto)) return null;\n if (parent_proto !== null && !JS_IsObject(parent_proto)) {\n JS_ThrowTypeError(ctx, 'parent prototype must be an object or null');\n return null;\n }\n }\n } else {\n /* parent_class is JS_UNDEFINED in this case */\n parent_proto = ctx.class_proto[JSClassID.OBJECT];\n parent_class = ctx.function_proto;\n }\n const proto = JS_NewObjectProto(ctx, parent_proto as JSObject | null);\n if (JS_IsException(proto)) return null;\n\n const ctor = js_closure_from_refs(ctx, b, var_refs, parent_class, true);\n if (JS_IsException(ctor)) return null;\n js_method_set_home_object(ctx, ctor, proto);\n const m = js_meta.get(ctor as object)!;\n m.is_constructor = true;\n m.is_class = true;\n\n JS_DefinePropertyValue(ctx, ctor, JS_ATOM_length, b.defined_arg_count, JS_PROP_CONFIGURABLE);\n\n if (is_computed_name) {\n if (JS_DefineObjectNameComputed(ctx, ctor, computed_name, JS_PROP_CONFIGURABLE) < 0) return null;\n } else {\n if (JS_DefineObjectName(ctx, ctor, class_name, JS_PROP_CONFIGURABLE) < 0) return null;\n }\n\n /* the constructor property must be first. It can be overriden by computed property names */\n if (JS_DefinePropertyValue(ctx, proto, JS_ATOM_constructor, ctor, JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE | JS_PROP_THROW) < 0)\n return null;\n /* set the prototype property */\n if (JS_DefinePropertyValue(ctx, ctor, JS_ATOM_prototype, proto, JS_PROP_THROW) < 0) return null;\n return [ctor, proto];\n}\n\n/* stack: [name] parent ctor_bytecode -> [name] ctor proto */\nfunction js_op_define_class(ctx: JSContext, stack: JSValue[], sp: number, class_name: JSAtom, class_flags: number,\n cur_var_refs: JSVarRef[], sf: JSStackFrame, is_computed_name: boolean): number {\n const parent_class = stack[sp - 2];\n const bfunc = stack[sp - 1] as unknown as JSFunctionBytecode;\n const fail = (): number => { stack[sp - 2] = undefined; stack[sp - 1] = undefined; return -1; };\n const var_refs = js_build_var_refs(ctx, bfunc, cur_var_refs, sf);\n if (!var_refs) return fail();\n const r = js_define_class(ctx, class_name, class_flags, parent_class, bfunc, var_refs, is_computed_name,\n is_computed_name ? stack[sp - 3] : undefined);\n if (!r) return fail();\n stack[sp - 2] = r[0];\n stack[sp - 1] = r[1];\n return 0;\n}\n\n/* ---------------------------------------------------------------------\n Iteration helpers\n --------------------------------------------------------------------- */\n\n/* stack: obj -> iter next (returns -1 on exception) */\nfunction js_for_of_start(ctx: JSContext, stack: JSValue[], sp: number, is_async: boolean): number {\n const op1 = stack[sp - 1];\n const obj = JS_GetIterator(ctx, op1, is_async);\n if (JS_IsException(obj)) return -1;\n stack[sp - 1] = obj;\n const method = JS_GetProperty(ctx, obj, JS_ATOM_next);\n if (JS_IsException(method)) return -1;\n stack[sp] = method;\n return 0;\n}\n\n/* enum_rec [objs] -> enum_rec [objs] value done. There are 'offset'\n objs. If 'done' is true or in case of exception, 'enum_rec' is set\n to undefined. If 'done' is true, 'value' is always set to undefined. */\nfunction js_for_of_next(ctx: JSContext, stack: JSValue[], sp: number, offset: number): number {\n let value: JSValue = undefined;\n let done = 1;\n const iter = stack[sp + offset];\n if (!JS_IsUndefined(iter)) {\n const pdone = { done: 0 };\n value = JS_IteratorNext(ctx, iter, stack[sp + offset + 1], [], pdone);\n if (JS_IsException(value)) done = -1;\n else done = pdone.done;\n if (done) {\n /* replace the iteration object with undefined */\n stack[sp + offset] = undefined;\n if (done < 0) return -1;\n value = undefined;\n }\n }\n stack[sp] = value;\n stack[sp + 1] = done !== 0;\n return 0;\n}\n\n/* stack: iter next catch_offset -> iter next catch_offset obj */\nfunction js_for_await_of_next(ctx: JSContext, stack: JSValue[], sp: number): number {\n stack[sp - 1] = undefined; /* disable the catch offset so that exceptions do not close the iterator */\n const iter = stack[sp - 3];\n const next = stack[sp - 2];\n const obj = JS_Call(ctx, next, iter, []);\n if (JS_IsException(obj)) return -1;\n stack[sp] = obj;\n return 0;\n}\n\n/* stack: catch_offset obj -> catch_offset value done */\nfunction js_iterator_get_value_done(ctx: JSContext, stack: JSValue[], sp: number): number {\n const obj = stack[sp - 1];\n if (!JS_IsObject(obj)) {\n JS_ThrowTypeError(ctx, 'iterator must return an object');\n return -1;\n }\n const pdone = { done: 0 };\n const value = JS_IteratorGetCompleteValue(ctx, obj, pdone);\n if (JS_IsException(value)) return -1;\n /* put again the catch offset so that exceptions close the iterator */\n stack[sp - 2] = JS_NewCatchOffset(0);\n stack[sp - 1] = value;\n stack[sp] = pdone.done !== 0;\n return 0;\n}\n\n/* stack: array pos enumobj -> array pos enumobj (pos updated) */\nfunction js_append_enumerate(ctx: JSContext, stack: JSValue[], sp: number): number {\n if (typeof stack[sp - 2] !== 'number') {\n JS_ThrowInternalError(ctx, 'invalid index for append');\n return -1;\n }\n let pos = stack[sp - 2] as number;\n const src = stack[sp - 1];\n const target = stack[sp - 3];\n const iterator = JS_GetProperty(ctx, src, JS_ATOM_Symbol_iterator);\n if (JS_IsException(iterator)) return -1;\n const is_array_iterator = iterator !== undefined && iterator === ctx.array_proto_values;\n\n const enumobj = JS_GetIterator(ctx, src, false);\n if (JS_IsException(enumobj)) return -1;\n const method = JS_GetProperty(ctx, enumobj, JS_ATOM_next);\n if (JS_IsException(method)) return -1;\n const fast = js_get_fast_array(ctx, src);\n let fast_ok = false;\n if (is_array_iterator && fast && ctx.array_iterator_proto && Reflect.getPrototypeOf(enumobj as object) === ctx.array_iterator_proto) {\n const next_d = Reflect.getOwnPropertyDescriptor(ctx.array_iterator_proto, 'next');\n if (next_d && 'value' in next_d && next_d.value === method) {\n const len = js_get_length64(ctx, src);\n if (len < 0) { JS_IteratorClose(ctx, enumobj, true); return -1; }\n /* if len > count, the elements >= count might be read in the prototypes */\n if (len === fast.length) fast_ok = true;\n }\n }\n if (fast_ok) {\n const count = fast!.length;\n for (let i = 0; i < count; i++) {\n if (JS_DefinePropertyValueUint32(ctx, target, pos++, fast![i], JS_PROP_C_W_E) < 0) {\n JS_IteratorClose(ctx, enumobj, true);\n return -1;\n }\n }\n } else {\n const pdone = { done: 0 };\n for (;;) {\n const value = JS_IteratorNext(ctx, enumobj, method, [], pdone);\n if (JS_IsException(value)) { JS_IteratorClose(ctx, enumobj, true); return -1; }\n if (pdone.done) break;\n if (JS_DefinePropertyValueUint32(ctx, target, pos++, value, JS_PROP_C_W_E) < 0) {\n JS_IteratorClose(ctx, enumobj, true);\n return -1;\n }\n }\n }\n stack[sp - 2] = pos;\n return 0;\n}\n\nfunction js_has_unscopable(ctx: JSContext, obj: JSValue, atom: JSAtom): number {\n const arr = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_unscopables);\n if (JS_IsException(arr)) return -1;\n let ret = 0;\n if (JS_IsObject(arr)) {\n const val = JS_GetProperty(ctx, arr, atom);\n if (JS_IsException(val)) return -1;\n ret = JS_ToBoolFree(ctx, val) ? 1 : 0;\n }\n return ret;\n}\n\n/* Function.prototype.apply / Reflect.apply / Reflect.construct helper\n magic: 0 = apply, 1 = construct (this_arg is new_target), 2 = Reflect.apply (array required) */\nexport function js_function_apply(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n if (!JS_IsFunction(ctx, this_val)) return JS_ThrowTypeError(ctx, 'not a function');\n const this_arg = argv[0];\n const array_arg = argv[1];\n if ((array_arg === undefined || array_arg === null) && magic !== 2) {\n return JS_Call(ctx, this_val, this_arg, []);\n }\n const tab = build_arg_list(ctx, array_arg);\n if (!tab) return JS_EXCEPTION;\n if (magic & 1) return JS_CallConstructor2(ctx, this_val, this_arg, tab);\n return JS_Call(ctx, this_val, this_arg, tab);\n}\n\nfunction JS_EvalObject(ctx: JSContext, this_obj: JSValue, val: JSValue, flags: number, scope_idx: number): JSValue {\n if (typeof val !== 'string') return val;\n return hooks.JS_EvalInternal(ctx, this_obj, val, '<input>', flags, scope_idx);\n}\n\n/* interrupt polling: return -1 if an interrupt was requested */\nfunction js_poll_interrupts(ctx: JSContext): number {\n if (--ctx.interrupt_counter <= 0) {\n ctx.interrupt_counter = 10000;\n const rt = ctx.rt;\n if (rt.interrupt_handler) {\n if (rt.interrupt_handler(rt, rt.interrupt_opaque)) {\n /* XXX: should set a specific flag to avoid catching */\n JS_ThrowInternalError(ctx, 'interrupted');\n JS_SetUncatchableError(ctx, rt.current_exception, true);\n return -1;\n }\n }\n }\n return 0;\n}\n\nfunction is_backtrace_needed(ctx: JSContext, obj: JSValue): boolean {\n const m = js_get_meta(obj);\n return m !== undefined && m.class_id === JSClassID.ERROR && !m.has_backtrace;\n}\n\n/* ---------------------------------------------------------------------\n JS_CallInternal\n --------------------------------------------------------------------- */\n\nexport function JS_CallInternal(ctx: JSContext, func_obj: JSValue, this_obj: JSValue, new_target: JSValue,\n argv: JSValue[], flags: number): JSValue {\n if (typeof func_obj !== 'function') return JS_ThrowTypeError(ctx, 'not a function');\n const m = js_meta.get(func_obj);\n if (m !== undefined) {\n const fd = m.func;\n if (fd !== null) {\n const b = fd.function_bytecode;\n /* compiled tier (src/jit.ts): compiles hot functions and calls the direct entry */\n if (jit_hooks.try_call !== null && b.func_kind === JSFunctionKind.NORMAL) {\n const r = jit_hooks.try_call(ctx, func_obj, fd, b, this_obj, new_target, argv, flags);\n if (r !== JIT_NOT_COMPILED) return r;\n }\n if (b.compiled === null) {\n switch (b.func_kind) {\n case JSFunctionKind.NORMAL:\n return js_call_internal(ctx, func_obj, this_obj, new_target, argv, flags, null, true);\n case JSFunctionKind.GENERATOR:\n return js_generator_function_call(ctx, func_obj, this_obj, argv, flags);\n case JSFunctionKind.ASYNC:\n return js_async_function_call(ctx, func_obj, this_obj, argv, flags);\n case JSFunctionKind.ASYNC_GENERATOR:\n return js_async_generator_function_call(ctx, func_obj, this_obj, argv, flags);\n }\n }\n } else if (m.cfunc !== null) {\n return js_call_c_function(ctx, func_obj, this_obj, argv, flags);\n } else if (m.class_id === JSClassID.C_FUNCTION_DATA) {\n return js_c_function_data_call(ctx, func_obj, this_obj, argv, flags);\n }\n }\n return js_call_host_function(ctx, func_obj, this_obj, new_target, argv, flags);\n}\n\nconst enum Flow { NORMAL, EXCEPTION, DONE, DONE_GENERATOR }\n\n/* backward jumps taken in a function's interpreter frames (cumulated over its calls) before the\n compiled tier is asked to replace the running frame (jit_hooks.osr) */\nexport let jit_osr_threshold = 500;\nexport function jit_set_osr_threshold(n: number): void { jit_osr_threshold = n; }\n\nfunction js_call_internal(caller_ctx: JSContext, func_obj: JSValue, this_obj: JSValue, new_target: JSValue,\n argv: JSValue[], flags: number, gen_state: JSAsyncFunctionState | null,\n jit_checked = false): JSValue {\n if (gen_state === null) {\n /* only interpreted normal bytecode functions are executed here */\n const m = typeof func_obj === 'function' ? js_meta.get(func_obj) : undefined;\n if (m === undefined || m.func === null || m.func.function_bytecode.compiled !== null ||\n m.func.function_bytecode.func_kind !== JSFunctionKind.NORMAL) {\n return JS_CallInternal(caller_ctx, func_obj, this_obj, new_target, argv, flags);\n }\n /* compiled tier: counts the call and compiles the function once it is hot (JS_CallInternal\n has asked already when it calls here) */\n if (!jit_checked && jit_hooks.try_call !== null) {\n const r = jit_hooks.try_call(caller_ctx, func_obj, m.func, m.func.function_bytecode, this_obj, new_target, argv, flags);\n if (r !== JIT_NOT_COMPILED) return r;\n }\n if (flags & JS_CALL_FLAG_CONSTRUCTOR) {\n /* legacy constructor behavior: create 'this' from new_target */\n if (m.func.function_bytecode.is_derived_class_constructor) {\n this_obj = undefined;\n } else {\n const obj = js_create_from_ctor(caller_ctx, new_target, JSClassID.OBJECT);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n const ret = js_interpret(caller_ctx, func_obj, obj, new_target, argv, flags & ~JS_CALL_FLAG_CONSTRUCTOR, null);\n if (JS_IsObject(ret) || JS_IsException(ret)) return ret;\n return obj;\n }\n }\n }\n return js_interpret(caller_ctx, func_obj, this_obj, new_target, argv, flags, gen_state);\n}\n\n/* Runs the bytecode of a function in a new interpreter frame, or resumes the frame of a\n generator. Exactly one host frame of this function exists per interpreter frame: its name\n identifies interpreter frames on the host stack (src/jit_stack.ts). */\nfunction js_interpret(caller_ctx: JSContext, func_obj: JSValue, this_obj: JSValue, new_target: JSValue,\n argv: JSValue[], flags: number, gen_state: JSAsyncFunctionState | null): JSValue {\n const rt = caller_ctx.rt;\n let ctx: JSContext;\n let p: JSObject;\n let fd: JSFunctionData;\n let b: JSFunctionBytecode;\n let sf: JSStackFrame;\n let pc: number;\n let sp: number;\n let argc: number;\n let var_refs: JSVarRef[];\n let arg_buf: JSValue[];\n let var_buf: JSValue[];\n let stack: JSValue[];\n let ret_val: JSValue = undefined;\n let flow: Flow = Flow.NORMAL;\n\n if (js_poll_interrupts(caller_ctx)) return JS_EXCEPTION;\n\n if (gen_state !== null) {\n /* the stack frame is already allocated (generator / async function resume) */\n const s = gen_state;\n sf = s.frame;\n p = sf.cur_func as JSObject;\n fd = JS_GetFunctionData(p)!;\n b = fd.function_bytecode;\n ctx = b.realm ?? caller_ctx;\n var_refs = fd.var_refs;\n arg_buf = sf.arg_buf;\n var_buf = sf.var_buf;\n stack = sf.stack_buf;\n argc = s.argc;\n argv = arg_buf;\n this_obj = s.this_val;\n new_target = sf.new_target;\n sp = sf.cur_sp;\n sf.cur_sp = -1; /* cur_sp is -1 if the function is running */\n pc = sf.cur_pc;\n sf.prev_frame = rt.current_stack_frame;\n rt.current_stack_frame = sf;\n rt.stack_depth++;\n if (s.throw_flag) flow = Flow.EXCEPTION;\n } else {\n p = func_obj as JSObject;\n fd = js_meta.get(p)!.func!;\n b = fd.function_bytecode;\n\n if (rt.stack_depth >= rt.max_stack_depth) return JS_ThrowStackOverflow(caller_ctx);\n\n argc = argv.length;\n sf = new JSStackFrame();\n sf.js_mode = b.js_mode;\n sf.arg_count = argc;\n sf.cur_func = func_obj;\n var_refs = fd.var_refs;\n if (argc < b.arg_count || (flags & JS_CALL_FLAG_COPY_ARGV)) {\n const n = Math.min(argc, b.arg_count);\n arg_buf = new Array(Math.max(argc, b.arg_count));\n for (let i = 0; i < argc; i++) arg_buf[i] = argv[i];\n for (let i = n; i < b.arg_count; i++) arg_buf[i] = undefined;\n /* keep the extra arguments (for 'arguments' and rest) */\n } else {\n arg_buf = argv;\n }\n var_buf = new Array(b.var_count);\n for (let i = 0; i < b.var_count; i++) var_buf[i] = undefined;\n stack = new Array(b.stack_size);\n sf.arg_buf = arg_buf;\n sf.var_buf = var_buf;\n sf.stack_buf = stack;\n sf.this_obj = this_obj;\n sf.new_target = new_target;\n sp = 0;\n pc = 0;\n sf.prev_frame = rt.current_stack_frame;\n rt.current_stack_frame = sf;\n rt.stack_depth++;\n ctx = b.realm ?? caller_ctx; /* set the current realm */\n argv = arg_buf;\n }\n\n const buf = b.byte_code_buf;\n const cpool = b.cpool;\n\n /* Host exceptions escaping from the engine helpers (host stack overflow\n while handling an exception, host natives, bugs) are converted to\n guest exceptions here so that they never leave the interpreter. */\n outer: for (;;) {\n try {\n main: for (;;) {\n if (flow === Flow.EXCEPTION) {\n /* exception handling */\n if (is_backtrace_needed(ctx, rt.current_exception)) {\n sf.cur_pc = pc;\n build_backtrace(ctx, rt.current_exception, null, 0, 0, 0);\n }\n flow = Flow.NORMAL;\n let handled = false;\n if (!JS_IsUncatchableError(ctx, rt.current_exception)) {\n while (sp > 0) {\n const val = stack[--sp];\n if (JS_IsCatchOffset(val)) {\n const pos = val.v;\n if (pos === 0) {\n /* enumerator: close it with a throw */\n sp--; /* drop the next method */\n JS_IteratorClose(ctx, stack[sp - 1], true);\n } else {\n stack[sp++] = rt.current_exception;\n rt.current_exception = JS_UNINITIALIZED;\n rt.exception_pending = false;\n pc = pos;\n handled = true;\n break;\n }\n }\n }\n }\n if (!handled) {\n ret_val = JS_EXCEPTION;\n flow = b.func_kind !== JSFunctionKind.NORMAL ? Flow.DONE_GENERATOR : Flow.DONE;\n break main;\n }\n }\n\n const opcode = buf[pc++];\n sw: switch (opcode) {\n case OP.push_i32:\n stack[sp++] = get_i32(buf, pc);\n pc += 4;\n break;\n case OP.push_bigint_i32:\n stack[sp++] = BigInt(get_i32(buf, pc));\n pc += 4;\n break;\n case OP.push_const:\n stack[sp++] = cpool[get_u32(buf, pc)] as JSValue;\n pc += 4;\n break;\n case OP.push_minus1: case OP.push_0: case OP.push_1: case OP.push_2: case OP.push_3:\n case OP.push_4: case OP.push_5: case OP.push_6: case OP.push_7:\n stack[sp++] = opcode - OP.push_0;\n break;\n case OP.push_i8:\n stack[sp++] = get_i8(buf, pc);\n pc += 1;\n break;\n case OP.push_i16:\n stack[sp++] = get_i16(buf, pc);\n pc += 2;\n break;\n case OP.push_const8:\n stack[sp++] = cpool[buf[pc++]] as JSValue;\n break;\n case OP.fclosure8: {\n const v = js_closure(ctx, cpool[buf[pc++]] as JSFunctionBytecode, var_refs, sf);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n case OP.push_empty_string:\n stack[sp++] = '';\n break;\n case OP.get_length: {\n sf.cur_pc = pc;\n const val = JS_GetProperty(ctx, stack[sp - 1], JS_ATOM_length);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = val;\n break;\n }\n case OP.push_atom_value:\n stack[sp++] = JS_AtomToValue(ctx, get_u32(buf, pc));\n pc += 4;\n break;\n case OP.undefined:\n stack[sp++] = undefined;\n break;\n case OP.null:\n stack[sp++] = null;\n break;\n case OP.push_this: {\n /* OP_push_this is only called at the start of a function */\n let val: JSValue;\n if (!(b.js_mode & JS_MODE_STRICT)) {\n if (JS_IsObject(this_obj)) {\n val = this_obj;\n } else if (this_obj === null || this_obj === undefined) {\n val = ctx.global_obj;\n } else {\n val = JS_ToObject(ctx, this_obj);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n }\n } else {\n val = this_obj;\n }\n stack[sp++] = val;\n break;\n }\n case OP.push_false:\n stack[sp++] = false;\n break;\n case OP.push_true:\n stack[sp++] = true;\n break;\n case OP.object: {\n const v = JS_NewObject(ctx);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n case OP.special_object: {\n const arg = buf[pc++];\n let v: JSValue;\n switch (arg) {\n case OPSpecialObject.ARGUMENTS:\n v = js_build_arguments(ctx, argc, argv);\n break;\n case OPSpecialObject.MAPPED_ARGUMENTS:\n v = js_build_mapped_arguments(ctx, argc, argv, sf, Math.min(argc, b.arg_count));\n break;\n case OPSpecialObject.THIS_FUNC:\n v = sf.cur_func;\n break;\n case OPSpecialObject.NEW_TARGET:\n v = new_target;\n break;\n case OPSpecialObject.HOME_OBJECT:\n v = fd.home_object ?? undefined;\n break;\n case OPSpecialObject.VAR_OBJECT:\n v = JS_NewObjectProto(ctx, null);\n break;\n case OPSpecialObject.IMPORT_META:\n v = JS_ThrowTypeError(ctx, 'import.meta is not supported');\n break;\n default:\n v = JS_ThrowInternalError(ctx, 'invalid special object ' + arg);\n break;\n }\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n case OP.rest: {\n const first = get_u16(buf, pc);\n pc += 2;\n const v = js_build_rest(ctx, first, argc, argv);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n\n case OP.drop:\n sp--;\n break;\n case OP.nip: /* a b -> b */\n stack[sp - 2] = stack[sp - 1];\n sp--;\n break;\n case OP.nip1: /* a b c -> b c */\n stack[sp - 3] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n sp--;\n break;\n case OP.dup:\n stack[sp] = stack[sp - 1];\n sp++;\n break;\n case OP.dup2: /* a b -> a b a b */\n stack[sp] = stack[sp - 2];\n stack[sp + 1] = stack[sp - 1];\n sp += 2;\n break;\n case OP.dup3: /* a b c -> a b c a b c */\n stack[sp] = stack[sp - 3];\n stack[sp + 1] = stack[sp - 2];\n stack[sp + 2] = stack[sp - 1];\n sp += 3;\n break;\n case OP.dup1: /* a b -> a a b */\n stack[sp] = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n sp++;\n break;\n case OP.insert2: /* obj a -> a obj a (dup_x1) */\n stack[sp] = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n stack[sp - 2] = stack[sp];\n sp++;\n break;\n case OP.insert3: /* obj prop a -> a obj prop a (dup_x2) */\n stack[sp] = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = stack[sp];\n sp++;\n break;\n case OP.insert4: /* this obj prop a -> a this obj prop a */\n stack[sp] = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 4];\n stack[sp - 4] = stack[sp];\n sp++;\n break;\n case OP.perm3: { /* obj a b -> a obj b (213) */\n const tmp = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = tmp;\n break;\n }\n case OP.rot3l: { /* x a b -> a b x (231) */\n const tmp = stack[sp - 3];\n stack[sp - 3] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n stack[sp - 1] = tmp;\n break;\n }\n case OP.rot4l: { /* x a b c -> a b c x */\n const tmp = stack[sp - 4];\n stack[sp - 4] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n stack[sp - 1] = tmp;\n break;\n }\n case OP.rot5l: { /* x a b c d -> a b c d x */\n const tmp = stack[sp - 5];\n stack[sp - 5] = stack[sp - 4];\n stack[sp - 4] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n stack[sp - 1] = tmp;\n break;\n }\n case OP.rot3r: { /* a b x -> x a b (312) */\n const tmp = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = tmp;\n break;\n }\n case OP.perm4: { /* obj prop a b -> a obj prop b */\n const tmp = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 4];\n stack[sp - 4] = tmp;\n break;\n }\n case OP.perm5: { /* this obj prop a b -> a this obj prop b */\n const tmp = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 4];\n stack[sp - 4] = stack[sp - 5];\n stack[sp - 5] = tmp;\n break;\n }\n case OP.swap: { /* a b -> b a */\n const tmp = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n stack[sp - 1] = tmp;\n break;\n }\n case OP.swap2: { /* a b c d -> c d a b */\n const tmp1 = stack[sp - 4];\n const tmp2 = stack[sp - 3];\n stack[sp - 4] = stack[sp - 2];\n stack[sp - 3] = stack[sp - 1];\n stack[sp - 2] = tmp1;\n stack[sp - 1] = tmp2;\n break;\n }\n\n case OP.fclosure: {\n const bfunc = cpool[get_u32(buf, pc)] as JSFunctionBytecode;\n pc += 4;\n const v = js_closure(ctx, bfunc, var_refs, sf);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n case OP.call0: case OP.call1: case OP.call2: case OP.call3:\n case OP.call: case OP.tail_call: {\n let call_argc: number;\n if (opcode === OP.call || opcode === OP.tail_call) {\n call_argc = get_u16(buf, pc);\n pc += 2;\n } else {\n call_argc = opcode - OP.call0;\n }\n const call_argv = stack.slice(sp - call_argc, sp);\n sf.cur_pc = pc;\n ret_val = js_call_internal(ctx, stack[sp - call_argc - 1], undefined, undefined, call_argv, 0, null);\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n if (opcode === OP.tail_call) { flow = Flow.DONE; break main; }\n sp -= call_argc + 1;\n stack[sp++] = ret_val;\n break;\n }\n case OP.call_constructor: {\n const call_argc = get_u16(buf, pc);\n pc += 2;\n const call_argv = stack.slice(sp - call_argc, sp);\n sf.cur_pc = pc;\n ret_val = JS_CallConstructorInternal(ctx, stack[sp - call_argc - 2], stack[sp - call_argc - 1], call_argv, 0);\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n sp -= call_argc + 2;\n stack[sp++] = ret_val;\n break;\n }\n case OP.call_method: case OP.tail_call_method: {\n const call_argc = get_u16(buf, pc);\n pc += 2;\n const call_argv = stack.slice(sp - call_argc, sp);\n sf.cur_pc = pc;\n ret_val = js_call_internal(ctx, stack[sp - call_argc - 1], stack[sp - call_argc - 2], undefined, call_argv, 0, null);\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n if (opcode === OP.tail_call_method) { flow = Flow.DONE; break main; }\n sp -= call_argc + 2;\n stack[sp++] = ret_val;\n break;\n }\n case OP.array_from: {\n const call_argc = get_u16(buf, pc);\n pc += 2;\n const arr = JS_NewArray(ctx);\n if (JS_IsException(arr)) { flow = Flow.EXCEPTION; break; }\n const base = sp - call_argc;\n let err = false;\n for (let i = 0; i < call_argc; i++) {\n if (JS_DefinePropertyValue(ctx, arr, __atom_from_idx(i), stack[base + i], JS_PROP_C_W_E | JS_PROP_THROW) < 0) { err = true; break; }\n }\n if (err) { flow = Flow.EXCEPTION; break; }\n sp -= call_argc;\n stack[sp++] = arr;\n break;\n }\n case OP.apply: {\n const magic = get_u16(buf, pc);\n pc += 2;\n sf.cur_pc = pc;\n ret_val = js_function_apply(ctx, stack[sp - 3], [stack[sp - 2], stack[sp - 1]], magic);\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n sp -= 3;\n stack[sp++] = ret_val;\n break;\n }\n case OP.return:\n ret_val = stack[--sp];\n flow = Flow.DONE;\n break main;\n case OP.return_undef:\n ret_val = undefined;\n flow = Flow.DONE;\n break main;\n\n case OP.check_ctor_return:\n /* return TRUE if 'this' should be returned */\n if (!JS_IsObject(stack[sp - 1])) {\n if (!JS_IsUndefined(stack[sp - 1])) {\n JS_ThrowTypeError(caller_ctx, 'derived class constructor must return an object or undefined');\n flow = Flow.EXCEPTION; break;\n }\n stack[sp] = true;\n } else {\n stack[sp] = false;\n }\n sp++;\n break;\n case OP.check_ctor:\n if (JS_IsUndefined(new_target)) {\n JS_ThrowTypeError(ctx, \"class constructors must be invoked with 'new'\");\n flow = Flow.EXCEPTION; break;\n }\n break;\n case OP.init_ctor: {\n sf.cur_pc = pc;\n if (JS_IsUndefined(new_target)) {\n JS_ThrowTypeError(ctx, \"class constructors must be invoked with 'new'\");\n flow = Flow.EXCEPTION; break;\n }\n const sup = JS_GetPrototype(ctx, sf.cur_func);\n if (JS_IsException(sup)) { flow = Flow.EXCEPTION; break; }\n const ret = JS_CallConstructor2(ctx, sup, new_target, argv.slice(0, argc));\n if (JS_IsException(ret)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = ret;\n break;\n }\n case OP.check_brand: {\n const ret = JS_CheckBrand(ctx, stack[sp - 2], stack[sp - 1]);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n if (!ret) {\n JS_ThrowTypeError(ctx, 'invalid brand on object');\n flow = Flow.EXCEPTION; break;\n }\n break;\n }\n case OP.add_brand:\n if (JS_AddBrand(ctx, stack[sp - 2], stack[sp - 1]) < 0) { flow = Flow.EXCEPTION; break; }\n sp -= 2;\n break;\n\n case OP.throw:\n JS_Throw(ctx, stack[--sp]);\n flow = Flow.EXCEPTION;\n break;\n\n case OP.throw_error: {\n const atom = get_u32(buf, pc);\n const type = buf[pc + 4];\n pc += 5;\n if (type === JS_THROW_VAR_RO) JS_ThrowTypeErrorReadOnly(ctx, JS_PROP_THROW, atom);\n else if (type === JS_THROW_VAR_REDECL) JS_ThrowSyntaxErrorAtom(ctx, \"redeclaration of '%s'\", atom);\n else if (type === JS_THROW_VAR_UNINITIALIZED) JS_ThrowReferenceErrorUninitialized(ctx, atom);\n else if (type === JS_THROW_ERROR_DELETE_SUPER) JS_ThrowReferenceError(ctx, \"unsupported reference to 'super'\");\n else if (type === JS_THROW_ERROR_ITERATOR_THROW) JS_ThrowTypeError(ctx, 'iterator does not have a throw method');\n else JS_ThrowInternalError(ctx, 'invalid throw var type ' + type);\n flow = Flow.EXCEPTION;\n break;\n }\n\n case OP.eval: {\n const call_argc = get_u16(buf, pc);\n const scope_idx = get_u16(buf, pc + 2) + ARG_SCOPE_END;\n pc += 4;\n const call_argv = stack.slice(sp - call_argc, sp);\n sf.cur_pc = pc;\n const fn = stack[sp - call_argc - 1];\n if (fn !== undefined && fn === ctx.eval_obj) {\n const obj = call_argc >= 1 ? call_argv[0] : undefined;\n ret_val = JS_EvalObject(ctx, this_obj, obj,\n JS_EVAL_TYPE_DIRECT | ((sf.js_mode & JS_MODE_STRICT) ? JS_EVAL_FLAG_STRICT : 0), scope_idx);\n } else {\n ret_val = js_call_internal(ctx, fn, undefined, undefined, call_argv, 0, null);\n }\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n sp -= call_argc + 1;\n stack[sp++] = ret_val;\n break;\n }\n case OP.apply_eval: {\n const scope_idx = get_u16(buf, pc) + ARG_SCOPE_END;\n pc += 2;\n sf.cur_pc = pc;\n const tab = build_arg_list(ctx, stack[sp - 1]);\n if (!tab) { flow = Flow.EXCEPTION; break; }\n const fn = stack[sp - 2];\n if (fn !== undefined && fn === ctx.eval_obj) {\n const obj = tab.length >= 1 ? tab[0] : undefined;\n ret_val = JS_EvalObject(ctx, this_obj, obj,\n JS_EVAL_TYPE_DIRECT | ((sf.js_mode & JS_MODE_STRICT) ? JS_EVAL_FLAG_STRICT : 0), scope_idx);\n } else {\n ret_val = JS_Call(ctx, fn, undefined, tab);\n }\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n sp -= 2;\n stack[sp++] = ret_val;\n break;\n }\n\n case OP.regexp: {\n sf.cur_pc = pc;\n if (!hooks.js_regexp_constructor_internal) {\n JS_ThrowInternalError(ctx, 'RegExp is not available');\n flow = Flow.EXCEPTION; break;\n }\n const v = hooks.js_regexp_constructor_internal(ctx, undefined, stack[sp - 2] as string, stack[sp - 1] as string);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = v;\n sp--;\n break;\n }\n\n case OP.get_super: {\n sf.cur_pc = pc;\n const proto = JS_GetPrototype(ctx, stack[sp - 1]);\n if (JS_IsException(proto)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = proto;\n break;\n }\n\n case OP.import:\n sf.cur_pc = pc;\n JS_ThrowTypeError(ctx, 'dynamic import is not supported');\n flow = Flow.EXCEPTION;\n break;\n\n case OP.check_var: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const ret = JS_CheckGlobalVar(ctx, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = ret !== 0;\n break;\n }\n case OP.get_var_undef:\n case OP.get_var: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const val = JS_GetGlobalVar(ctx, atom, opcode - OP.get_var_undef);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = val;\n break;\n }\n case OP.put_var:\n case OP.put_var_init: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const ret = JS_SetGlobalVar(ctx, atom, stack[sp - 1], opcode - OP.put_var);\n sp--;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.put_var_strict: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n /* stack[sp-2] is JS_TRUE or JS_FALSE */\n if (!stack[sp - 2]) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n const ret = JS_SetGlobalVar(ctx, atom, stack[sp - 1], 2);\n sp -= 2;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.check_define_var: {\n const atom = get_u32(buf, pc);\n const fl = buf[pc + 4];\n pc += 5;\n sf.cur_pc = pc;\n if (JS_CheckDefineGlobalVar(ctx, atom, fl)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_var: {\n const atom = get_u32(buf, pc);\n const fl = buf[pc + 4];\n pc += 5;\n sf.cur_pc = pc;\n if (JS_DefineGlobalVar(ctx, atom, fl) < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_func: {\n const atom = get_u32(buf, pc);\n const fl = buf[pc + 4];\n pc += 5;\n sf.cur_pc = pc;\n if (JS_DefineGlobalFunction(ctx, atom, stack[sp - 1], fl) < 0) { flow = Flow.EXCEPTION; break; }\n sp--;\n break;\n }\n\n case OP.get_loc: {\n const idx = get_u16(buf, pc);\n pc += 2;\n stack[sp++] = var_buf[idx];\n break;\n }\n case OP.put_loc: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_buf[idx] = stack[--sp];\n break;\n }\n case OP.set_loc: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_buf[idx] = stack[sp - 1];\n break;\n }\n case OP.get_arg: {\n const idx = get_u16(buf, pc);\n pc += 2;\n stack[sp++] = arg_buf[idx];\n break;\n }\n case OP.put_arg: {\n const idx = get_u16(buf, pc);\n pc += 2;\n arg_buf[idx] = stack[--sp];\n break;\n }\n case OP.set_arg: {\n const idx = get_u16(buf, pc);\n pc += 2;\n arg_buf[idx] = stack[sp - 1];\n break;\n }\n\n case OP.get_loc8: stack[sp++] = var_buf[buf[pc++]]; break;\n case OP.put_loc8: var_buf[buf[pc++]] = stack[--sp]; break;\n case OP.set_loc8: var_buf[buf[pc++]] = stack[sp - 1]; break;\n\n case OP.get_loc0: stack[sp++] = var_buf[0]; break;\n case OP.get_loc1: stack[sp++] = var_buf[1]; break;\n case OP.get_loc2: stack[sp++] = var_buf[2]; break;\n case OP.get_loc3: stack[sp++] = var_buf[3]; break;\n case OP.put_loc0: var_buf[0] = stack[--sp]; break;\n case OP.put_loc1: var_buf[1] = stack[--sp]; break;\n case OP.put_loc2: var_buf[2] = stack[--sp]; break;\n case OP.put_loc3: var_buf[3] = stack[--sp]; break;\n case OP.set_loc0: var_buf[0] = stack[sp - 1]; break;\n case OP.set_loc1: var_buf[1] = stack[sp - 1]; break;\n case OP.set_loc2: var_buf[2] = stack[sp - 1]; break;\n case OP.set_loc3: var_buf[3] = stack[sp - 1]; break;\n case OP.get_arg0: stack[sp++] = arg_buf[0]; break;\n case OP.get_arg1: stack[sp++] = arg_buf[1]; break;\n case OP.get_arg2: stack[sp++] = arg_buf[2]; break;\n case OP.get_arg3: stack[sp++] = arg_buf[3]; break;\n case OP.put_arg0: arg_buf[0] = stack[--sp]; break;\n case OP.put_arg1: arg_buf[1] = stack[--sp]; break;\n case OP.put_arg2: arg_buf[2] = stack[--sp]; break;\n case OP.put_arg3: arg_buf[3] = stack[--sp]; break;\n case OP.set_arg0: arg_buf[0] = stack[sp - 1]; break;\n case OP.set_arg1: arg_buf[1] = stack[sp - 1]; break;\n case OP.set_arg2: arg_buf[2] = stack[sp - 1]; break;\n case OP.set_arg3: arg_buf[3] = stack[sp - 1]; break;\n case OP.get_var_ref0: stack[sp++] = var_refs[0].get(); break;\n case OP.get_var_ref1: stack[sp++] = var_refs[1].get(); break;\n case OP.get_var_ref2: stack[sp++] = var_refs[2].get(); break;\n case OP.get_var_ref3: stack[sp++] = var_refs[3].get(); break;\n case OP.put_var_ref0: var_refs[0].set(stack[--sp]); break;\n case OP.put_var_ref1: var_refs[1].set(stack[--sp]); break;\n case OP.put_var_ref2: var_refs[2].set(stack[--sp]); break;\n case OP.put_var_ref3: var_refs[3].set(stack[--sp]); break;\n case OP.set_var_ref0: var_refs[0].set(stack[sp - 1]); break;\n case OP.set_var_ref1: var_refs[1].set(stack[sp - 1]); break;\n case OP.set_var_ref2: var_refs[2].set(stack[sp - 1]); break;\n case OP.set_var_ref3: var_refs[3].set(stack[sp - 1]); break;\n\n case OP.get_var_ref: {\n const idx = get_u16(buf, pc);\n pc += 2;\n stack[sp++] = var_refs[idx].get();\n break;\n }\n case OP.put_var_ref: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_refs[idx].set(stack[--sp]);\n break;\n }\n case OP.set_var_ref: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_refs[idx].set(stack[sp - 1]);\n break;\n }\n case OP.get_var_ref_check: {\n const idx = get_u16(buf, pc);\n pc += 2;\n const val = var_refs[idx].get();\n if (JS_IsUninitialized(val)) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, true);\n flow = Flow.EXCEPTION; break;\n }\n stack[sp++] = val;\n break;\n }\n case OP.put_var_ref_check: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (JS_IsUninitialized(var_refs[idx].get())) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, true);\n flow = Flow.EXCEPTION; break;\n }\n var_refs[idx].set(stack[--sp]);\n break;\n }\n case OP.put_var_ref_check_init: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (!JS_IsUninitialized(var_refs[idx].get())) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, true);\n flow = Flow.EXCEPTION; break;\n }\n var_refs[idx].set(stack[--sp]);\n break;\n }\n case OP.set_loc_uninitialized: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_buf[idx] = JS_UNINITIALIZED;\n break;\n }\n case OP.get_loc_check: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (JS_IsUninitialized(var_buf[idx])) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, false);\n flow = Flow.EXCEPTION; break;\n }\n stack[sp++] = var_buf[idx];\n break;\n }\n case OP.get_loc_checkthis: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (JS_IsUninitialized(var_buf[idx])) {\n JS_ThrowReferenceErrorUninitialized2(caller_ctx, b, idx, false);\n flow = Flow.EXCEPTION; break;\n }\n stack[sp++] = var_buf[idx];\n break;\n }\n case OP.put_loc_check: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (JS_IsUninitialized(var_buf[idx])) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, false);\n flow = Flow.EXCEPTION; break;\n }\n var_buf[idx] = stack[--sp];\n break;\n }\n case OP.put_loc_check_init: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (!JS_IsUninitialized(var_buf[idx])) {\n JS_ThrowReferenceError(ctx, \"'this' can be initialized only once\");\n flow = Flow.EXCEPTION; break;\n }\n var_buf[idx] = stack[--sp];\n break;\n }\n case OP.close_loc: {\n const idx = get_u16(buf, pc);\n pc += 2;\n close_lexical_var(ctx, sf, idx);\n break;\n }\n\n case OP.make_loc_ref:\n case OP.make_arg_ref:\n case OP.make_var_ref_ref: {\n const atom = get_u32(buf, pc);\n const idx = get_u16(buf, pc + 4);\n pc += 6;\n /* internal reference object (never visible to guest code): an\n accessor property aliasing the variable */\n const obj: object = Object.create(null);\n let var_ref: JSVarRef;\n if (opcode === OP.make_var_ref_ref) var_ref = var_refs[idx];\n else var_ref = get_var_ref(ctx, sf, idx, opcode === OP.make_arg_ref);\n Reflect.defineProperty(obj, JS_AtomToKey(ctx, atom), {\n get: () => var_ref.get(), set: (v: JSValue) => { var_ref.set(v); }, enumerable: true, configurable: true,\n });\n stack[sp++] = obj;\n stack[sp++] = JS_AtomToValue(ctx, atom);\n break;\n }\n case OP.make_var_ref: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const r = JS_GetGlobalVarRef(ctx, atom);\n if (!r) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = r[0];\n stack[sp++] = r[1];\n break;\n }\n\n case OP.goto: {\n const diff = get_i32(buf, pc);\n pc += diff;\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n break;\n }\n case OP.goto16: {\n const diff = get_i16(buf, pc);\n pc += diff;\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n break;\n }\n case OP.goto8: {\n const diff = get_i8(buf, pc);\n pc += diff;\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n break;\n }\n case OP.if_true: {\n const op1 = stack[--sp];\n pc += 4;\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n if (res) {\n const diff = get_i32(buf, pc - 4) - 4;\n pc += diff;\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n }\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.if_false: {\n const op1 = stack[--sp];\n pc += 4;\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n if (!res) {\n const diff = get_i32(buf, pc - 4) - 4;\n pc += diff;\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n }\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.if_true8: {\n const op1 = stack[--sp];\n pc += 1;\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n if (res) {\n const diff = get_i8(buf, pc - 1) - 1;\n pc += diff;\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n }\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.if_false8: {\n const op1 = stack[--sp];\n pc += 1;\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n if (!res) {\n const diff = get_i8(buf, pc - 1) - 1;\n pc += diff;\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n }\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.catch: {\n const diff = get_i32(buf, pc);\n stack[sp++] = JS_NewCatchOffset(pc + diff);\n pc += 4;\n break;\n }\n case OP.gosub: {\n const diff = get_i32(buf, pc);\n stack[sp++] = pc + 4;\n pc += diff;\n break;\n }\n case OP.ret: {\n const op1 = stack[sp - 1];\n if (typeof op1 !== 'number' || !Number.isInteger(op1) || op1 < 0 || op1 >= b.byte_code_len) {\n JS_ThrowInternalError(ctx, 'invalid ret value');\n flow = Flow.EXCEPTION; break;\n }\n sp--;\n pc = op1;\n break;\n }\n\n case OP.for_in_start: {\n sf.cur_pc = pc;\n const v = build_for_in_iterator(ctx, stack[sp - 1]);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = v;\n break;\n }\n case OP.for_in_next: {\n sf.cur_pc = pc;\n const pdone = { done: 0 };\n const v = js_for_in_next(ctx, stack[sp - 1], pdone);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n stack[sp++] = pdone.done !== 0;\n break;\n }\n case OP.for_of_start:\n sf.cur_pc = pc;\n if (js_for_of_start(ctx, stack, sp, false)) { flow = Flow.EXCEPTION; break; }\n sp += 1;\n stack[sp++] = JS_NewCatchOffset(0);\n break;\n case OP.for_of_next: {\n const offset = -3 - buf[pc];\n pc += 1;\n sf.cur_pc = pc;\n if (js_for_of_next(ctx, stack, sp, offset)) { flow = Flow.EXCEPTION; break; }\n sp += 2;\n break;\n }\n case OP.for_await_of_next:\n sf.cur_pc = pc;\n if (js_for_await_of_next(ctx, stack, sp)) { flow = Flow.EXCEPTION; break; }\n sp++;\n break;\n case OP.for_await_of_start:\n sf.cur_pc = pc;\n if (js_for_of_start(ctx, stack, sp, true)) { flow = Flow.EXCEPTION; break; }\n sp += 1;\n stack[sp++] = JS_NewCatchOffset(0);\n break;\n case OP.iterator_get_value_done:\n sf.cur_pc = pc;\n if (js_iterator_get_value_done(ctx, stack, sp)) { flow = Flow.EXCEPTION; break; }\n sp += 1;\n break;\n case OP.iterator_check_object:\n if (!JS_IsObject(stack[sp - 1])) {\n JS_ThrowTypeError(ctx, 'iterator must return an object');\n flow = Flow.EXCEPTION; break;\n }\n break;\n case OP.iterator_close:\n /* iter_obj next catch_offset -> */\n sp--; /* drop the catch offset to avoid getting caught by exception */\n sp--; /* drop the next method */\n if (!JS_IsUndefined(stack[sp - 1])) {\n sf.cur_pc = pc;\n if (JS_IteratorClose(ctx, stack[sp - 1], false)) { flow = Flow.EXCEPTION; break; }\n }\n sp--;\n break;\n case OP.nip_catch: {\n /* catch_offset ... ret_val -> ret_eval */\n const rv = stack[--sp];\n while (sp > 0 && !JS_IsCatchOffset(stack[sp - 1])) sp--;\n if (sp === 0) {\n JS_ThrowInternalError(ctx, 'nip_catch');\n flow = Flow.EXCEPTION; break;\n }\n stack[sp - 1] = rv;\n break;\n }\n case OP.iterator_next: {\n /* stack: iter_obj next catch_offset val */\n sf.cur_pc = pc;\n const ret = JS_Call(ctx, stack[sp - 3], stack[sp - 4], [stack[sp - 1]]);\n if (JS_IsException(ret)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = ret;\n break;\n }\n case OP.iterator_call: {\n /* stack: iter_obj next catch_offset val */\n const fl = buf[pc++];\n sf.cur_pc = pc;\n const method = JS_GetProperty(ctx, stack[sp - 4], (fl & 1) ? JS_ATOM_throw : JS_ATOM_return);\n if (JS_IsException(method)) { flow = Flow.EXCEPTION; break; }\n let ret_flag: boolean;\n if (method === undefined || method === null) {\n ret_flag = true;\n } else {\n let ret: JSValue;\n if (fl & 2) ret = JS_CallFree(ctx, method, stack[sp - 4], []);\n else ret = JS_CallFree(ctx, method, stack[sp - 4], [stack[sp - 1]]);\n if (JS_IsException(ret)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = ret;\n ret_flag = false;\n }\n stack[sp++] = ret_flag;\n break;\n }\n\n case OP.lnot: {\n const op1 = stack[sp - 1];\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n stack[sp - 1] = !res;\n break;\n }\n\n case OP.get_field: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const val = JS_GetProperty(ctx, stack[sp - 1], atom);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = val;\n break;\n }\n case OP.get_field2: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const val = JS_GetProperty(ctx, stack[sp - 1], atom);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = val;\n break;\n }\n case OP.put_field: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const ret = JS_SetPropertyInternal(ctx, stack[sp - 2], atom, stack[sp - 1], stack[sp - 2], JS_PROP_THROW_STRICT);\n sp -= 2;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n\n case OP.private_symbol: {\n const atom = get_u32(buf, pc);\n pc += 4;\n stack[sp++] = JS_NewSymbolFromAtom(ctx, atom, JS_ATOM_TYPE_PRIVATE);\n break;\n }\n case OP.get_private_field: {\n const val = JS_GetPrivateField(ctx, stack[sp - 2], stack[sp - 1]);\n stack[sp - 2] = val;\n sp--;\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.put_private_field: {\n /* obj value prop -> */\n const ret = JS_SetPrivateField(ctx, stack[sp - 3], stack[sp - 1], stack[sp - 2]);\n sp -= 3;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_private_field: {\n /* obj prop value -> obj */\n const ret = JS_DefinePrivateField(ctx, stack[sp - 3], stack[sp - 2], stack[sp - 1]);\n sp -= 2;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_field: {\n const atom = get_u32(buf, pc);\n pc += 4;\n const ret = JS_DefinePropertyValue(ctx, stack[sp - 2], atom, stack[sp - 1], JS_PROP_C_W_E | JS_PROP_THROW);\n sp--;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.set_name: {\n const atom = get_u32(buf, pc);\n pc += 4;\n if (JS_DefineObjectName(ctx, stack[sp - 1], atom, JS_PROP_CONFIGURABLE) < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.set_name_computed:\n if (JS_DefineObjectNameComputed(ctx, stack[sp - 1], stack[sp - 2], JS_PROP_CONFIGURABLE) < 0) { flow = Flow.EXCEPTION; break; }\n break;\n case OP.set_proto: {\n sf.cur_pc = pc;\n const proto = stack[sp - 1];\n if (JS_IsObject(proto) || proto === null) {\n if (JS_SetPrototypeInternal(ctx, stack[sp - 2], proto, true) < 0) { flow = Flow.EXCEPTION; break; }\n }\n sp--;\n break;\n }\n case OP.set_home_object:\n js_method_set_home_object(ctx, stack[sp - 1], stack[sp - 2]);\n break;\n case OP.define_method:\n case OP.define_method_computed: {\n const is_computed = (opcode === OP.define_method_computed);\n let atom: JSAtom;\n if (is_computed) {\n atom = JS_ValueToAtom(ctx, stack[sp - 2]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n } else {\n atom = get_u32(buf, pc);\n pc += 4;\n }\n let op_flags = buf[pc++];\n const obj = stack[sp - 2 - (is_computed ? 1 : 0)];\n let fl = JS_PROP_HAS_CONFIGURABLE | JS_PROP_CONFIGURABLE | JS_PROP_HAS_ENUMERABLE | JS_PROP_THROW;\n if (op_flags & OP_DEFINE_METHOD_ENUMERABLE) fl |= JS_PROP_ENUMERABLE;\n op_flags &= 3;\n let value: JSValue = undefined, getter: JSValue = undefined, setter: JSValue = undefined;\n if (op_flags === OP_DEFINE_METHOD_METHOD) {\n value = stack[sp - 1];\n fl |= JS_PROP_HAS_VALUE | JS_PROP_HAS_WRITABLE | JS_PROP_WRITABLE;\n } else if (op_flags === OP_DEFINE_METHOD_GETTER) {\n getter = stack[sp - 1];\n fl |= JS_PROP_HAS_GET;\n } else {\n setter = stack[sp - 1];\n fl |= JS_PROP_HAS_SET;\n }\n let ret = js_method_set_properties(ctx, stack[sp - 1], atom, fl, obj);\n if (ret >= 0) ret = JS_DefineProperty(ctx, obj, atom, value, getter, setter, fl);\n sp -= 1 + (is_computed ? 1 : 0);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_class:\n case OP.define_class_computed: {\n const atom = get_u32(buf, pc);\n const class_flags = buf[pc + 4];\n pc += 5;\n sf.cur_pc = pc;\n if (js_op_define_class(ctx, stack, sp, atom, class_flags, var_refs, sf, opcode === OP.define_class_computed) < 0) {\n flow = Flow.EXCEPTION; break;\n }\n break;\n }\n\n case OP.get_array_el: {\n sf.cur_pc = pc;\n const val = JS_GetPropertyValue(ctx, stack[sp - 2], stack[sp - 1]);\n stack[sp - 2] = val;\n sp--;\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.get_array_el2: {\n sf.cur_pc = pc;\n const val = JS_GetPropertyValue(ctx, stack[sp - 2], stack[sp - 1]);\n stack[sp - 1] = val;\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.get_ref_value: {\n sf.cur_pc = pc;\n const atom = JS_ValueToAtom(ctx, stack[sp - 1]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n if (JS_IsUndefined(stack[sp - 2])) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n const ret = JS_HasProperty(ctx, stack[sp - 2], atom);\n let val: JSValue;\n if (ret <= 0) {\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n if (is_strict_mode(ctx)) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n val = undefined;\n } else {\n val = JS_GetProperty(ctx, stack[sp - 2], atom);\n }\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = val;\n break;\n }\n case OP.get_super_value: {\n /* this obj prop -> value */\n sf.cur_pc = pc;\n const atom = JS_ValueToAtom(ctx, stack[sp - 1]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n const val = JS_GetPropertyInternal(ctx, stack[sp - 2], atom, stack[sp - 3], false);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 3] = val;\n sp -= 2;\n break;\n }\n case OP.put_array_el: {\n sf.cur_pc = pc;\n const ret = JS_SetPropertyValue(ctx, stack[sp - 3], stack[sp - 2], stack[sp - 1], JS_PROP_THROW_STRICT);\n sp -= 3;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.put_ref_value: {\n sf.cur_pc = pc;\n const atom = JS_ValueToAtom(ctx, stack[sp - 2]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n if (JS_IsUndefined(stack[sp - 3])) {\n if (is_strict_mode(ctx)) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n stack[sp - 3] = ctx.global_obj;\n }\n const ret = JS_HasProperty(ctx, stack[sp - 3], atom);\n if (ret <= 0) {\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n if (is_strict_mode(ctx)) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n }\n const r2 = JS_SetPropertyInternal(ctx, stack[sp - 3], atom, stack[sp - 1], stack[sp - 3], JS_PROP_THROW_STRICT);\n sp -= 3;\n if (r2 < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.put_super_value: {\n /* this obj prop value -> */\n sf.cur_pc = pc;\n if (!JS_IsObject(stack[sp - 3])) {\n JS_ThrowTypeErrorNotAnObject(ctx);\n flow = Flow.EXCEPTION; break;\n }\n const atom = JS_ValueToAtom(ctx, stack[sp - 2]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n const ret = JS_SetPropertyInternal(ctx, stack[sp - 3], atom, stack[sp - 1], stack[sp - 4], JS_PROP_THROW_STRICT);\n sp -= 4;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_array_el: {\n const ret = JS_DefinePropertyValueValue(ctx, stack[sp - 3], stack[sp - 2], stack[sp - 1], JS_PROP_C_W_E | JS_PROP_THROW);\n sp -= 1;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.append: /* array pos enumobj -- array pos */\n sf.cur_pc = pc;\n if (js_append_enumerate(ctx, stack, sp)) { flow = Flow.EXCEPTION; break; }\n sp--;\n break;\n case OP.copy_data_properties: { /* target source excludeList */\n /* stack offsets (-1 based): 2 bits for target, 3 bits for source, 2 bits for exclusionList */\n const mask = buf[pc++];\n sf.cur_pc = pc;\n if (JS_CopyDataProperties(ctx, stack[sp - 1 - (mask & 3)], stack[sp - 1 - ((mask >> 2) & 7)],\n stack[sp - 1 - ((mask >> 5) & 7)], false)) {\n flow = Flow.EXCEPTION; break;\n }\n break;\n }\n\n case OP.add: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n if (typeof op1 === 'number' && typeof op2 === 'number') {\n stack[sp - 2] = op1 + op2;\n sp--;\n } else if (typeof op1 === 'string' && typeof op2 === 'string') {\n stack[sp - 2] = op1 + op2;\n sp--;\n } else {\n sf.cur_pc = pc;\n const r = js_add_slow(ctx, op1, op2);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r;\n sp--;\n }\n break;\n }\n case OP.add_loc: {\n const idx = buf[pc++];\n const op2 = stack[sp - 1];\n const pv = var_buf[idx];\n if (typeof pv === 'number' && typeof op2 === 'number') {\n var_buf[idx] = pv + op2;\n sp--;\n } else if (typeof pv === 'string' && typeof op2 === 'string') {\n var_buf[idx] = pv + op2;\n sp--;\n } else {\n sf.cur_pc = pc;\n sp--;\n const r = js_add_slow(ctx, pv, op2);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n var_buf[idx] = r;\n }\n break;\n }\n case OP.sub: case OP.mul: case OP.div: case OP.mod: case OP.pow: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n if (typeof op1 === 'number' && typeof op2 === 'number') {\n let r: number;\n switch (opcode) {\n case OP.sub: r = op1 - op2; break;\n case OP.mul: r = op1 * op2; break;\n case OP.div: r = op1 / op2; break;\n case OP.mod: r = op1 % op2; break;\n default: r = Math.pow(op1, op2); break;\n }\n stack[sp - 2] = r;\n sp--;\n } else {\n sf.cur_pc = pc;\n let aop: JSArithOp;\n switch (opcode) {\n case OP.sub: aop = JSArithOp.SUB; break;\n case OP.mul: aop = JSArithOp.MUL; break;\n case OP.div: aop = JSArithOp.DIV; break;\n case OP.mod: aop = JSArithOp.MOD; break;\n default: aop = JSArithOp.POW; break;\n }\n const r = js_binary_arith_slow(ctx, aop, op1, op2);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r;\n sp--;\n }\n break;\n }\n case OP.plus: {\n const op1 = stack[sp - 1];\n if (typeof op1 !== 'number') {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.PLUS, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.neg: {\n const op1 = stack[sp - 1];\n if (typeof op1 === 'number') {\n stack[sp - 1] = -op1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.NEG, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.inc: {\n const op1 = stack[sp - 1];\n if (typeof op1 === 'number') {\n stack[sp - 1] = op1 + 1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.INC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.dec: {\n const op1 = stack[sp - 1];\n if (typeof op1 === 'number') {\n stack[sp - 1] = op1 - 1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.DEC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.post_inc:\n case OP.post_dec: {\n sf.cur_pc = pc;\n const op1 = JS_ToNumericFree(ctx, stack[sp - 1]);\n if (JS_IsException(op1)) { stack[sp - 1] = undefined; flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = op1;\n const r = js_unary_arith_slow(ctx, opcode === OP.post_inc ? JSUnaryOp.INC : JSUnaryOp.DEC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = r;\n break;\n }\n case OP.inc_loc: {\n const idx = buf[pc++];\n const op1 = var_buf[idx];\n if (typeof op1 === 'number') {\n var_buf[idx] = op1 + 1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.INC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n var_buf[idx] = r;\n }\n break;\n }\n case OP.dec_loc: {\n const idx = buf[pc++];\n const op1 = var_buf[idx];\n if (typeof op1 === 'number') {\n var_buf[idx] = op1 - 1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.DEC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n var_buf[idx] = r;\n }\n break;\n }\n case OP.not: {\n const op1 = stack[sp - 1];\n if (typeof op1 === 'number') {\n stack[sp - 1] = ~op1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.NOT, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.shl: case OP.sar: case OP.shr: case OP.and: case OP.or: case OP.xor: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n if (typeof op1 === 'number' && typeof op2 === 'number') {\n let r: number;\n switch (opcode) {\n case OP.shl: r = op1 << op2; break;\n case OP.sar: r = op1 >> op2; break;\n case OP.shr: r = op1 >>> op2; break;\n case OP.and: r = op1 & op2; break;\n case OP.or: r = op1 | op2; break;\n default: r = op1 ^ op2; break;\n }\n stack[sp - 2] = r;\n sp--;\n } else {\n sf.cur_pc = pc;\n let aop: JSArithOp;\n switch (opcode) {\n case OP.shl: aop = JSArithOp.SHL; break;\n case OP.sar: aop = JSArithOp.SAR; break;\n case OP.shr: aop = JSArithOp.SHR; break;\n case OP.and: aop = JSArithOp.AND; break;\n case OP.or: aop = JSArithOp.OR; break;\n default: aop = JSArithOp.XOR; break;\n }\n const r = js_binary_arith_slow(ctx, aop, op1, op2);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r;\n sp--;\n }\n break;\n }\n\n case OP.lt: case OP.lte: case OP.gt: case OP.gte: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n if (typeof op1 === 'number' && typeof op2 === 'number') {\n let r: boolean;\n switch (opcode) {\n case OP.lt: r = op1 < op2; break;\n case OP.lte: r = op1 <= op2; break;\n case OP.gt: r = op1 > op2; break;\n default: r = op1 >= op2; break;\n }\n stack[sp - 2] = r;\n sp--;\n } else {\n sf.cur_pc = pc;\n let rop: JSRelOp;\n switch (opcode) {\n case OP.lt: rop = JSRelOp.LT; break;\n case OP.lte: rop = JSRelOp.LTE; break;\n case OP.gt: rop = JSRelOp.GT; break;\n default: rop = JSRelOp.GTE; break;\n }\n const r = js_relational_op(ctx, rop, op1, op2);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n }\n break;\n }\n case OP.eq: case OP.neq: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n let r: number;\n if (typeof op1 === typeof op2 && typeof op1 !== 'object') {\n r = op1 === op2 ? 1 : 0;\n } else {\n sf.cur_pc = pc;\n r = js_loose_eq(ctx, op1, op2);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n }\n stack[sp - 2] = opcode === OP.eq ? r !== 0 : r === 0;\n sp--;\n break;\n }\n case OP.strict_eq: case OP.strict_neq: {\n const r = js_strict_eq2(ctx, stack[sp - 2], stack[sp - 1], JSStrictEqMode.STRICT);\n stack[sp - 2] = opcode === OP.strict_eq ? r : !r;\n sp--;\n break;\n }\n case OP.in: {\n sf.cur_pc = pc;\n const r = js_operator_in(ctx, stack[sp - 2], stack[sp - 1]);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n break;\n }\n case OP.private_in: {\n sf.cur_pc = pc;\n const r = js_operator_private_in(ctx, stack[sp - 2], stack[sp - 1]);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n break;\n }\n case OP.instanceof: {\n sf.cur_pc = pc;\n const r = JS_IsInstanceOf(ctx, stack[sp - 2], stack[sp - 1]);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n break;\n }\n case OP.typeof:\n stack[sp - 1] = JS_AtomToString(ctx, js_operator_typeof(ctx, stack[sp - 1]));\n break;\n case OP.delete: {\n sf.cur_pc = pc;\n const atom = JS_ValueToAtom(ctx, stack[sp - 1]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n const r = JS_DeleteProperty(ctx, stack[sp - 2], atom, JS_PROP_THROW_STRICT);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n break;\n }\n case OP.delete_var: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const r = JS_DeleteProperty(ctx, ctx.global_obj, atom, 0);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = r !== 0;\n break;\n }\n\n case OP.to_object:\n if (!JS_IsObject(stack[sp - 1])) {\n sf.cur_pc = pc;\n const v = JS_ToObject(ctx, stack[sp - 1]);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = v;\n }\n break;\n case OP.to_propkey: {\n const v = stack[sp - 1];\n if (!(typeof v === 'number' && Number.isInteger(v)) && typeof v !== 'string' && typeof v !== 'symbol') {\n sf.cur_pc = pc;\n const r = JS_ToPropertyKey(ctx, v);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.to_propkey2: {\n /* must be tested first */\n if (stack[sp - 2] === undefined || stack[sp - 2] === null) {\n JS_ThrowTypeError(ctx, 'value has no property');\n flow = Flow.EXCEPTION; break;\n }\n const v = stack[sp - 1];\n if (!(typeof v === 'number' && Number.isInteger(v)) && typeof v !== 'string' && typeof v !== 'symbol') {\n sf.cur_pc = pc;\n const r = JS_ToPropertyKey(ctx, v);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n\n case OP.with_get_var:\n case OP.with_put_var:\n case OP.with_delete_var:\n case OP.with_make_ref:\n case OP.with_get_ref: {\n const atom = get_u32(buf, pc);\n const diff = get_i32(buf, pc + 4);\n const is_with = buf[pc + 8];\n pc += 9;\n sf.cur_pc = pc;\n const obj = stack[sp - 1];\n let ret = JS_HasProperty(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n let no_with = !ret;\n if (ret && is_with) {\n ret = js_has_unscopable(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n if (ret) no_with = true;\n }\n if (!no_with) {\n switch (opcode) {\n case OP.with_get_var: {\n /* in Object Environment Records, GetBindingValue() calls HasProperty() */\n ret = JS_HasProperty(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n let val: JSValue;\n if (!ret) {\n if (is_strict_mode(ctx)) { JS_ThrowReferenceErrorNotDefined(ctx, atom); flow = Flow.EXCEPTION; break sw; }\n val = undefined;\n } else {\n val = JS_GetProperty(ctx, obj, atom);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break sw; }\n }\n stack[sp - 1] = val;\n break;\n }\n case OP.with_put_var: {\n ret = JS_HasProperty(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n if (!ret && is_strict_mode(ctx)) { JS_ThrowReferenceErrorNotDefined(ctx, atom); flow = Flow.EXCEPTION; break sw; }\n ret = JS_SetPropertyInternal(ctx, obj, atom, stack[sp - 2], obj, JS_PROP_THROW_STRICT);\n sp -= 2;\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n break;\n }\n case OP.with_delete_var: {\n ret = JS_DeleteProperty(ctx, obj, atom, 0);\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n stack[sp - 1] = ret !== 0;\n break;\n }\n case OP.with_make_ref:\n /* produce a pair object/propname on the stack */\n stack[sp++] = JS_AtomToValue(ctx, atom);\n break;\n case OP.with_get_ref: {\n /* produce a pair object/method on the stack */\n ret = JS_HasProperty(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n let val: JSValue;\n if (!ret) {\n val = undefined;\n } else {\n val = JS_GetProperty(ctx, obj, atom);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break sw; }\n }\n stack[sp++] = val;\n break;\n }\n }\n pc += diff - 5;\n } else {\n /* if not jumping, drop the object argument */\n sp--;\n }\n break;\n }\n\n case OP.await:\n ret_val = FUNC_RET_AWAIT;\n flow = Flow.DONE_GENERATOR;\n break main;\n case OP.yield:\n ret_val = FUNC_RET_YIELD;\n flow = Flow.DONE_GENERATOR;\n break main;\n case OP.yield_star:\n case OP.async_yield_star:\n ret_val = FUNC_RET_YIELD_STAR;\n flow = Flow.DONE_GENERATOR;\n break main;\n case OP.return_async:\n ret_val = undefined;\n flow = Flow.DONE_GENERATOR;\n break main;\n case OP.initial_yield:\n ret_val = FUNC_RET_INITIAL_YIELD;\n flow = Flow.DONE_GENERATOR;\n break main;\n\n case OP.nop:\n break;\n case OP.is_undefined_or_null:\n stack[sp - 1] = (stack[sp - 1] === undefined || stack[sp - 1] === null);\n break;\n case OP.is_undefined:\n stack[sp - 1] = (stack[sp - 1] === undefined);\n break;\n case OP.is_null:\n stack[sp - 1] = (stack[sp - 1] === null);\n break;\n case OP.typeof_is_undefined:\n /* different from OP_is_undefined because of isHTMLDDA */\n stack[sp - 1] = (js_operator_typeof(ctx, stack[sp - 1]) === JS_ATOM_undefined);\n break;\n case OP.typeof_is_function:\n stack[sp - 1] = (js_operator_typeof(ctx, stack[sp - 1]) === JS_ATOM_function);\n break;\n\n case OP.invalid:\n default:\n JS_ThrowInternalError(ctx, `invalid opcode: pc=${pc - 1} opcode=0x${opcode.toString(16).padStart(2, '0')}`);\n flow = Flow.EXCEPTION;\n break;\n }\n }\n break outer;\n } catch (e) {\n js_host_exception_to_guest(ctx, e);\n flow = Flow.EXCEPTION;\n }\n }\n\n /* done / done_generator */\n if (flow === Flow.DONE_GENERATOR || (flow === Flow.DONE && b.func_kind !== JSFunctionKind.NORMAL)) {\n /* the local variables are kept by the generator state */\n sf.cur_pc = pc;\n sf.cur_sp = sp;\n } else {\n if (sf.var_refs.length !== 0) {\n /* variable references reference the stack: must close them */\n close_var_refs(rt, sf);\n }\n }\n rt.current_stack_frame = sf.prev_frame;\n rt.stack_depth--;\n return ret_val;\n}\n\n/* ---------------------------------------------------------------------\n JSAsyncFunctionState (used by generator and async functions)\n --------------------------------------------------------------------- */\n\nexport function async_func_init(ctx: JSContext, func_obj: JSValue, this_obj: JSValue, argv: JSValue[]): JSAsyncFunctionState {\n const s = new JSAsyncFunctionState();\n const sf = s.frame;\n const b = JS_GetFunctionData(func_obj)!.function_bytecode;\n const argc = argv.length;\n sf.js_mode = b.js_mode | JS_MODE_ASYNC;\n sf.cur_pc = 0;\n const arg_buf_len = Math.max(b.arg_count, argc);\n sf.arg_buf = new Array(arg_buf_len);\n for (let i = 0; i < argc; i++) sf.arg_buf[i] = argv[i];\n for (let i = argc; i < arg_buf_len; i++) sf.arg_buf[i] = undefined;\n sf.var_buf = new Array(b.var_count);\n for (let i = 0; i < b.var_count; i++) sf.var_buf[i] = undefined;\n sf.stack_buf = new Array(b.stack_size);\n sf.cur_func = func_obj;\n sf.this_obj = this_obj;\n sf.new_target = undefined;\n sf.arg_count = arg_buf_len;\n sf.cur_sp = 0;\n s.func_obj = func_obj;\n s.this_val = this_obj;\n s.argc = argc;\n s.resolving_funcs = [undefined, undefined];\n s.is_completed = false;\n return s;\n}\n\n/* resume the execution; returns FUNC_RET_xxx (number) when suspended,\n the return value when the function completed normally, or JS_EXCEPTION */\nexport function async_func_resume(ctx: JSContext, s: JSAsyncFunctionState): JSValue {\n const rt = ctx.rt;\n const sf = s.frame;\n let ret: JSValue;\n if (s.is_completed) return JS_ThrowInternalError(ctx, 'async function already completed');\n if (rt.stack_depth >= rt.max_stack_depth) {\n ret = JS_ThrowStackOverflow(ctx);\n } else {\n ret = js_call_internal(ctx, s.func_obj, s.this_val, undefined, [], JS_CALL_FLAG_GENERATOR, s);\n }\n if (JS_IsException(ret) || JS_IsUndefined(ret)) {\n if (JS_IsUndefined(ret)) {\n /* OP_return_async: the return value is at the top of the stack */\n ret = sf.stack_buf[sf.cur_sp - 1];\n sf.stack_buf[sf.cur_sp - 1] = undefined;\n }\n /* end of execution */\n s.is_completed = true;\n /* close the closure variables. */\n close_var_refs(rt, sf);\n sf.stack_buf = [];\n }\n return ret;\n}\n\n/* ---------------------------------------------------------------------\n Generators\n --------------------------------------------------------------------- */\n\nfunction free_generator_stack(ctx: JSContext, s: JSGeneratorData): void {\n if (s.state === JSGeneratorState.COMPLETED) return;\n s.func_state = null;\n s.state = JSGeneratorState.COMPLETED;\n}\n\nexport function js_generator_next(ctx: JSContext, this_val: JSValue, argv: JSValue[], pdone: { done: number },\n magic: number): JSValue {\n const s = JS_GetOpaque(this_val, JSClassID.GENERATOR) as JSGeneratorData | null;\n pdone.done = 1;\n if (!s) return JS_ThrowTypeError(ctx, 'not a generator');\n let ret: JSValue;\n switch (s.state) {\n default:\n case JSGeneratorState.SUSPENDED_START:\n if (magic !== GEN_MAGIC_NEXT) {\n free_generator_stack(ctx, s);\n return generator_done(ctx, argv, magic);\n }\n s.func_state!.throw_flag = false;\n return generator_exec(ctx, s, pdone);\n case JSGeneratorState.SUSPENDED_YIELD_STAR:\n case JSGeneratorState.SUSPENDED_YIELD: {\n const sf = s.func_state!.frame;\n /* cur_sp[-1] was set to JS_UNDEFINED in the previous call */\n ret = argv[0];\n if (magic === GEN_MAGIC_THROW && s.state === JSGeneratorState.SUSPENDED_YIELD) {\n JS_Throw(ctx, ret);\n s.func_state!.throw_flag = true;\n } else {\n sf.stack_buf[sf.cur_sp - 1] = ret;\n sf.stack_buf[sf.cur_sp] = magic;\n sf.cur_sp++;\n s.func_state!.throw_flag = false;\n }\n return generator_exec(ctx, s, pdone);\n }\n case JSGeneratorState.COMPLETED:\n return generator_done(ctx, argv, magic);\n case JSGeneratorState.EXECUTING:\n return JS_ThrowTypeError(ctx, 'cannot invoke a running generator');\n }\n}\n\nfunction generator_done(ctx: JSContext, argv: JSValue[], magic: number): JSValue {\n /* execution is finished */\n switch (magic) {\n default:\n case GEN_MAGIC_NEXT: return undefined;\n case GEN_MAGIC_RETURN: return argv[0];\n case GEN_MAGIC_THROW: return JS_Throw(ctx, argv[0]);\n }\n}\n\nfunction generator_exec(ctx: JSContext, s: JSGeneratorData, pdone: { done: number }): JSValue {\n const fs = s.func_state!;\n const sf = fs.frame;\n s.state = JSGeneratorState.EXECUTING;\n const func_ret = async_func_resume(ctx, fs);\n s.state = JSGeneratorState.SUSPENDED_YIELD;\n if (fs.is_completed) {\n /* finalize the execution in case of exception or normal return */\n free_generator_stack(ctx, s);\n return func_ret;\n }\n /* get the returned yield value at the top of the stack */\n const ret = sf.stack_buf[sf.cur_sp - 1];\n sf.stack_buf[sf.cur_sp - 1] = undefined;\n if (func_ret === FUNC_RET_YIELD_STAR) {\n s.state = JSGeneratorState.SUSPENDED_YIELD_STAR;\n /* return (value, done) object */\n pdone.done = 2;\n } else {\n pdone.done = 0;\n }\n return ret;\n}\n\nexport function js_generator_function_call(ctx: JSContext, func_obj: JSValue, this_obj: JSValue,\n argv: JSValue[], flags: number): JSValue {\n const s = new JSGeneratorData();\n s.state = JSGeneratorState.SUSPENDED_START;\n s.func_state = async_func_init(ctx, func_obj, this_obj, argv);\n /* execute the function up to 'OP_initial_yield' */\n const func_ret = async_func_resume(ctx, s.func_state);\n if (JS_IsException(func_ret)) {\n free_generator_stack(ctx, s);\n return JS_EXCEPTION;\n }\n const obj = js_create_from_ctor(ctx, func_obj, JSClassID.GENERATOR);\n if (JS_IsException(obj)) {\n free_generator_stack(ctx, s);\n return JS_EXCEPTION;\n }\n JS_SetOpaque(obj, s);\n return obj;\n}\n\nexport const js_generator_proto_funcs: JSCFunctionListEntry[] = [\n JS_ITERATOR_NEXT_DEF('next', 1, js_generator_next, GEN_MAGIC_NEXT),\n JS_ITERATOR_NEXT_DEF('return', 1, js_generator_next, GEN_MAGIC_RETURN),\n JS_ITERATOR_NEXT_DEF('throw', 1, js_generator_next, GEN_MAGIC_THROW),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'Generator', JS_PROP_CONFIGURABLE),\n];\n\nexport const js_generator_function_proto_funcs: JSCFunctionListEntry[] = [\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'GeneratorFunction', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n Async functions\n --------------------------------------------------------------------- */\n\nfunction js_async_function_resolve_create(ctx: JSContext, s: JSAsyncFunctionState): [JSValue, JSValue] | null {\n const funcs: [JSValue, JSValue] = [undefined, undefined];\n for (let i = 0; i < 2; i++) {\n const is_reject = i === 1;\n const impl: JSHostImpl = (_this_val, _new_target, args) => {\n js_async_function_resolve_call(ctx, s, is_reject, args.length > 0 ? args[0] : undefined);\n return undefined;\n };\n const f = js_new_host_function(ctx, impl, false, '', 1, ctx.function_proto,\n (JSClassID.ASYNC_FUNCTION_RESOLVE + i) as JSClassID);\n js_meta.get(f)!.u = s;\n funcs[i] = f;\n }\n return funcs;\n}\n\nfunction js_async_function_resume(ctx: JSContext, s: JSAsyncFunctionState): void {\n const func_ret = async_func_resume(ctx, s);\n if (s.is_completed) {\n if (JS_IsException(func_ret)) {\n const error = JS_GetException(ctx);\n JS_Call(ctx, s.resolving_funcs[1], undefined, [error]); /* XXX: what to do if exception ? */\n } else {\n /* normal return */\n JS_Call(ctx, s.resolving_funcs[0], undefined, [func_ret]);\n }\n return;\n }\n /* await */\n const sf = s.frame;\n const value = sf.stack_buf[sf.cur_sp - 1];\n sf.stack_buf[sf.cur_sp - 1] = undefined;\n const fail = (): void => {\n const error = JS_GetException(ctx);\n JS_Call(ctx, s.resolving_funcs[1], undefined, [error]);\n };\n const promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [value], 0);\n if (JS_IsException(promise)) { fail(); return; }\n const resolving_funcs = js_async_function_resolve_create(ctx, s);\n if (!resolving_funcs) { fail(); return; }\n /* Note: no need to create 'thrownawayCapability' as in the spec */\n const res = perform_promise_then(ctx, promise, resolving_funcs, [undefined, undefined]);\n if (res) fail();\n}\n\nfunction js_async_function_resolve_call(ctx: JSContext, s: JSAsyncFunctionState, is_reject: boolean, arg: JSValue): JSValue {\n s.throw_flag = is_reject;\n if (is_reject) {\n JS_Throw(ctx, arg);\n } else {\n /* return value of await */\n s.frame.stack_buf[s.frame.cur_sp - 1] = arg;\n }\n js_async_function_resume(ctx, s);\n return undefined;\n}\n\nexport function js_async_function_call(ctx: JSContext, func_obj: JSValue, this_obj: JSValue,\n argv: JSValue[], flags: number): JSValue {\n const s = async_func_init(ctx, func_obj, this_obj, argv);\n const promise = JS_NewPromiseCapability(ctx, s.resolving_funcs);\n if (JS_IsException(promise)) return JS_EXCEPTION;\n s.promise = promise;\n js_async_function_resume(ctx, s);\n return promise;\n}\n\nexport const js_async_function_proto_funcs: JSCFunctionListEntry[] = [\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'AsyncFunction', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n Async generators\n --------------------------------------------------------------------- */\n\nexport const enum JSAsyncGeneratorState {\n SUSPENDED_START,\n SUSPENDED_YIELD,\n SUSPENDED_YIELD_STAR,\n EXECUTING,\n AWAITING_RETURN,\n COMPLETED,\n}\n\nexport class JSAsyncGeneratorRequest {\n completion_type: number; /* GEN_MAGIC_x */\n result: JSValue;\n promise: JSValue;\n resolving_funcs: [JSValue, JSValue];\n constructor(completion_type: number, result: JSValue, promise: JSValue, resolving_funcs: [JSValue, JSValue]) {\n this.completion_type = completion_type; this.result = result; this.promise = promise; this.resolving_funcs = resolving_funcs;\n }\n}\n\nexport class JSAsyncGeneratorData {\n generator: JSObject | null = null; /* back pointer to the object */\n state: JSAsyncGeneratorState = JSAsyncGeneratorState.SUSPENDED_START;\n /* func_state is null in state AWAITING_RETURN and COMPLETED */\n func_state: JSAsyncFunctionState | null = null;\n queue: JSAsyncGeneratorRequest[] = [];\n}\n\nfunction js_async_generator_resolve_function_create(ctx: JSContext, generator: JSValue, is_resume_next: boolean): [JSValue, JSValue] | null {\n const funcs: [JSValue, JSValue] = [undefined, undefined];\n for (let i = 0; i < 2; i++) {\n const func = JS_NewCFunctionData(ctx, js_async_generator_resolve_function, 1, i + (is_resume_next ? 2 : 0), [generator]);\n if (JS_IsException(func)) return null;\n funcs[i] = func;\n }\n return funcs;\n}\n\nfunction js_async_generator_await(ctx: JSContext, s: JSAsyncGeneratorData, value: JSValue): number {\n const promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [value], 0);\n if (JS_IsException(promise)) return -1;\n const resolving_funcs = js_async_generator_resolve_function_create(ctx, s.generator!, false);\n if (!resolving_funcs) return -1;\n /* Note: no need to create 'thrownawayCapability' as in the spec */\n const res = perform_promise_then(ctx, promise, resolving_funcs, [undefined, undefined]);\n if (res) return -1;\n return 0;\n}\n\nfunction js_async_generator_resolve_or_reject(ctx: JSContext, s: JSAsyncGeneratorData, result: JSValue, is_reject: number): void {\n const next = s.queue.shift()!;\n JS_Call(ctx, next.resolving_funcs[is_reject], undefined, [result]);\n}\n\nfunction js_async_generator_resolve(ctx: JSContext, s: JSAsyncGeneratorData, value: JSValue, done: boolean): void {\n const result = js_create_iterator_result(ctx, value, done);\n /* XXX: better exception handling ? */\n js_async_generator_resolve_or_reject(ctx, s, result, 0);\n}\n\nfunction js_async_generator_reject(ctx: JSContext, s: JSAsyncGeneratorData, exception: JSValue): void {\n js_async_generator_resolve_or_reject(ctx, s, exception, 1);\n}\n\nfunction js_async_generator_complete(ctx: JSContext, s: JSAsyncGeneratorData): void {\n if (s.state !== JSAsyncGeneratorState.COMPLETED) {\n s.state = JSAsyncGeneratorState.COMPLETED;\n s.func_state = null;\n }\n}\n\nfunction js_async_generator_completed_return(ctx: JSContext, s: JSAsyncGeneratorData, value: JSValue): number {\n // Can fail looking up JS_ATOM_constructor when is_reject==0.\n let promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [value], 0);\n // A poisoned .constructor property is observable and the resulting\n // exception should be delivered to the catch handler.\n if (JS_IsException(promise)) {\n const err = JS_GetException(ctx);\n promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [err], 1);\n if (JS_IsException(promise)) return -1;\n }\n const resolving_funcs1 = js_async_generator_resolve_function_create(ctx, s.generator!, true);\n if (!resolving_funcs1) return -1;\n return perform_promise_then(ctx, promise, resolving_funcs1, [undefined, undefined]);\n}\n\nfunction js_async_generator_resume_next(ctx: JSContext, s: JSAsyncGeneratorData): void {\n for (;;) {\n if (s.queue.length === 0) break;\n const next = s.queue[0];\n let resume_exec = false;\n switch (s.state) {\n case JSAsyncGeneratorState.EXECUTING:\n /* only happens when restarting execution after await() */\n resume_exec = true;\n break;\n case JSAsyncGeneratorState.AWAITING_RETURN:\n return;\n case JSAsyncGeneratorState.SUSPENDED_START:\n if (next.completion_type === GEN_MAGIC_NEXT) {\n s.func_state!.throw_flag = false;\n s.state = JSAsyncGeneratorState.EXECUTING;\n resume_exec = true;\n } else {\n js_async_generator_complete(ctx, s);\n }\n break;\n case JSAsyncGeneratorState.COMPLETED:\n if (next.completion_type === GEN_MAGIC_NEXT) {\n js_async_generator_resolve(ctx, s, undefined, true);\n } else if (next.completion_type === GEN_MAGIC_RETURN) {\n s.state = JSAsyncGeneratorState.AWAITING_RETURN;\n js_async_generator_completed_return(ctx, s, next.result);\n } else {\n js_async_generator_reject(ctx, s, next.result);\n }\n return;\n case JSAsyncGeneratorState.SUSPENDED_YIELD:\n case JSAsyncGeneratorState.SUSPENDED_YIELD_STAR: {\n const value = next.result;\n const sf = s.func_state!.frame;\n if (next.completion_type === GEN_MAGIC_THROW && s.state === JSAsyncGeneratorState.SUSPENDED_YIELD) {\n JS_Throw(ctx, value);\n s.func_state!.throw_flag = true;\n } else {\n /* 'yield' returns a value. 'yield *' also returns a value in case the 'throw' method is called */\n sf.stack_buf[sf.cur_sp - 1] = value;\n sf.stack_buf[sf.cur_sp] = next.completion_type;\n sf.cur_sp++;\n s.func_state!.throw_flag = false;\n }\n s.state = JSAsyncGeneratorState.EXECUTING;\n resume_exec = true;\n break;\n }\n default:\n throw new Error('invalid async generator state');\n }\n if (!resume_exec) continue;\n for (;;) {\n const fs = s.func_state!;\n const func_ret = async_func_resume(ctx, fs);\n if (fs.is_completed) {\n if (JS_IsException(func_ret)) {\n const value = JS_GetException(ctx);\n js_async_generator_complete(ctx, s);\n js_async_generator_reject(ctx, s, value);\n } else {\n /* end of function */\n js_async_generator_complete(ctx, s);\n js_async_generator_resolve(ctx, s, func_ret, true);\n }\n break;\n }\n const func_ret_code = func_ret as number;\n const sf = fs.frame;\n const value = sf.stack_buf[sf.cur_sp - 1];\n sf.stack_buf[sf.cur_sp - 1] = undefined;\n if (func_ret_code === FUNC_RET_YIELD || func_ret_code === FUNC_RET_YIELD_STAR) {\n s.state = (func_ret_code === FUNC_RET_YIELD_STAR) ? JSAsyncGeneratorState.SUSPENDED_YIELD_STAR : JSAsyncGeneratorState.SUSPENDED_YIELD;\n js_async_generator_resolve(ctx, s, value, false);\n break;\n } else if (func_ret_code === FUNC_RET_AWAIT) {\n const ret = js_async_generator_await(ctx, s, value);\n if (ret < 0) {\n /* exception: throw it */\n fs.throw_flag = true;\n continue; /* resume_exec */\n }\n return;\n } else {\n throw new Error('invalid async generator return code');\n }\n }\n }\n}\n\nfunction js_async_generator_resolve_function(ctx: JSContext, this_obj: JSValue, argv: JSValue[], magic: number,\n func_data: JSValue[]): JSValue {\n const is_reject = (magic & 1) !== 0;\n const s = JS_GetOpaque(func_data[0], JSClassID.ASYNC_GENERATOR) as JSAsyncGeneratorData | null;\n const arg = argv[0];\n if (!s) return undefined;\n if (magic >= 2) {\n /* resume next case in AWAITING_RETURN state */\n s.state = JSAsyncGeneratorState.COMPLETED;\n if (is_reject) js_async_generator_reject(ctx, s, arg);\n else js_async_generator_resolve(ctx, s, arg, true);\n } else {\n /* restart function execution after await() */\n const fs = s.func_state!;\n fs.throw_flag = is_reject;\n if (is_reject) {\n JS_Throw(ctx, arg);\n } else {\n /* return value of await */\n fs.frame.stack_buf[fs.frame.cur_sp - 1] = arg;\n }\n js_async_generator_resume_next(ctx, s);\n }\n return undefined;\n}\n\n/* magic = GEN_MAGIC_x */\nexport function js_async_generator_next(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n const s = JS_GetOpaque(this_val, JSClassID.ASYNC_GENERATOR) as JSAsyncGeneratorData | null;\n const resolving_funcs: [JSValue, JSValue] = [undefined, undefined];\n const promise = JS_NewPromiseCapability(ctx, resolving_funcs);\n if (JS_IsException(promise)) return JS_EXCEPTION;\n if (!s) {\n JS_ThrowTypeError(ctx, 'not an AsyncGenerator object');\n const err = JS_GetException(ctx);\n JS_Call(ctx, resolving_funcs[1], undefined, [err]);\n return promise;\n }\n s.queue.push(new JSAsyncGeneratorRequest(magic, argv[0], promise, resolving_funcs));\n if (s.state !== JSAsyncGeneratorState.EXECUTING) {\n js_async_generator_resume_next(ctx, s);\n }\n return promise;\n}\n\nexport function js_async_generator_function_call(ctx: JSContext, func_obj: JSValue, this_obj: JSValue,\n argv: JSValue[], flags: number): JSValue {\n const s = new JSAsyncGeneratorData();\n s.state = JSAsyncGeneratorState.SUSPENDED_START;\n s.func_state = async_func_init(ctx, func_obj, this_obj, argv);\n /* execute the function up to 'OP_initial_yield' (no yield nor await are possible) */\n const func_ret = async_func_resume(ctx, s.func_state);\n if (JS_IsException(func_ret)) return JS_EXCEPTION;\n const obj = js_create_from_ctor(ctx, func_obj, JSClassID.ASYNC_GENERATOR);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n s.generator = obj as JSObject;\n JS_SetOpaque(obj, s);\n return obj;\n}\n\nexport const js_async_generator_proto_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_MAGIC_DEF('next', 1, js_async_generator_next, GEN_MAGIC_NEXT),\n JS_CFUNC_MAGIC_DEF('return', 1, js_async_generator_next, GEN_MAGIC_RETURN),\n JS_CFUNC_MAGIC_DEF('throw', 1, js_async_generator_next, GEN_MAGIC_THROW),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'AsyncGenerator', JS_PROP_CONFIGURABLE),\n];\n\nexport const js_async_generator_function_proto_funcs: JSCFunctionListEntry[] = [\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'AsyncGeneratorFunction', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n AsyncFromSyncIterator\n --------------------------------------------------------------------- */\n\nexport class JSAsyncFromSyncIteratorData {\n sync_iter: JSValue;\n next_method: JSValue;\n constructor(sync_iter: JSValue, next_method: JSValue) { this.sync_iter = sync_iter; this.next_method = next_method; }\n}\n\nexport function JS_CreateAsyncFromSyncIterator(ctx: JSContext, sync_iter: JSValue): JSValue {\n const next_method = JS_GetProperty(ctx, sync_iter, JS_ATOM_next);\n if (JS_IsException(next_method)) return JS_EXCEPTION;\n const async_iter = JS_NewObjectClass(ctx, JSClassID.ASYNC_FROM_SYNC_ITERATOR);\n if (JS_IsException(async_iter)) return async_iter;\n JS_SetOpaque(async_iter, new JSAsyncFromSyncIteratorData(sync_iter, next_method));\n return async_iter;\n}\nasync_hooks.JS_CreateAsyncFromSyncIterator = JS_CreateAsyncFromSyncIterator;\n\nfunction js_async_from_sync_iterator_unwrap(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number,\n func_data: JSValue[]): JSValue {\n return js_create_iterator_result(ctx, argv[0], JS_ToBoolFree(ctx, func_data[0]));\n}\n\nfunction js_async_from_sync_iterator_unwrap_func_create(ctx: JSContext, done: boolean): JSValue {\n return JS_NewCFunctionData(ctx, js_async_from_sync_iterator_unwrap, 1, 0, [done]);\n}\n\nfunction js_async_from_sync_iterator_close_wrap(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number,\n func_data: JSValue[]): JSValue {\n JS_Throw(ctx, argv[0]);\n JS_IteratorClose(ctx, func_data[0], true);\n return JS_EXCEPTION;\n}\n\nfunction js_async_from_sync_iterator_close_wrap_func_create(ctx: JSContext, sync_iter: JSValue): JSValue {\n return JS_NewCFunctionData(ctx, js_async_from_sync_iterator_close_wrap, 1, 0, [sync_iter]);\n}\n\nfunction js_async_from_sync_iterator_next(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n const resolving_funcs: [JSValue, JSValue] = [undefined, undefined];\n const promise = JS_NewPromiseCapability(ctx, resolving_funcs);\n if (JS_IsException(promise)) return JS_EXCEPTION;\n const reject = (): JSValue => {\n const err = JS_GetException(ctx);\n JS_Call(ctx, resolving_funcs[1], undefined, [err]);\n return promise;\n };\n const s = JS_GetOpaque(this_val, JSClassID.ASYNC_FROM_SYNC_ITERATOR) as JSAsyncFromSyncIteratorData | null;\n if (!s) {\n JS_ThrowTypeError(ctx, 'not an Async-from-Sync Iterator');\n return reject();\n }\n let method: JSValue;\n if (magic === GEN_MAGIC_NEXT) {\n method = s.next_method;\n } else {\n method = JS_GetProperty(ctx, s.sync_iter, magic === GEN_MAGIC_RETURN ? JS_ATOM_return : JS_ATOM_throw);\n if (JS_IsException(method)) return reject();\n if (method === undefined || method === null) {\n if (magic === GEN_MAGIC_RETURN) {\n const res = js_create_iterator_result(ctx, argv[0], true);\n JS_Call(ctx, resolving_funcs[0], undefined, [res]);\n return promise;\n } else {\n if (JS_IteratorClose(ctx, s.sync_iter, false)) return reject();\n JS_ThrowTypeError(ctx, 'throw is not a method');\n return reject();\n }\n }\n }\n const obj = JS_Call(ctx, method, s.sync_iter, argv.length >= 1 ? [argv[0]] : []);\n if (JS_IsException(obj)) return reject();\n if (!JS_IsObject(obj)) {\n JS_ThrowTypeError(ctx, 'iterator must return an object');\n return reject();\n }\n const pdone = { done: 0 };\n const value = JS_IteratorGetCompleteValue(ctx, obj, pdone);\n if (JS_IsException(value)) return reject();\n const done = pdone.done !== 0;\n\n const value_wrapper_promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [value], 0);\n if (JS_IsException(value_wrapper_promise)) {\n if (magic !== GEN_MAGIC_RETURN && !done) JS_IteratorClose(ctx, s.sync_iter, true);\n return reject();\n }\n const resolve_reject: [JSValue, JSValue] = [undefined, undefined];\n resolve_reject[0] = js_async_from_sync_iterator_unwrap_func_create(ctx, done);\n if (JS_IsException(resolve_reject[0])) return JS_EXCEPTION;\n if (done || magic === GEN_MAGIC_RETURN) {\n resolve_reject[1] = undefined;\n } else {\n resolve_reject[1] = js_async_from_sync_iterator_close_wrap_func_create(ctx, s.sync_iter);\n if (JS_IsException(resolve_reject[1])) return JS_EXCEPTION;\n }\n const res = perform_promise_then(ctx, value_wrapper_promise, resolve_reject, resolving_funcs);\n if (res) return JS_EXCEPTION;\n return promise;\n}\n\nexport const js_async_from_sync_iterator_proto_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_MAGIC_DEF('next', 1, js_async_from_sync_iterator_next, GEN_MAGIC_NEXT),\n JS_CFUNC_MAGIC_DEF('return', 1, js_async_from_sync_iterator_next, GEN_MAGIC_RETURN),\n JS_CFUNC_MAGIC_DEF('throw', 1, js_async_from_sync_iterator_next, GEN_MAGIC_THROW),\n];\n\n/* ---------------------------------------------------------------------\n Runtime / hooks installation\n --------------------------------------------------------------------- */\n\nhooks.JS_CallInternal = JS_CallInternal;\nhooks.js_closure = js_closure;\n\n/* ---------------------------------------------------------------------\n Value based helpers for the compiled tier (no operand stack)\n --------------------------------------------------------------------- */\n\n/* GetIterator + next method: returns [iterator, next] or null on exception */\nexport function js_for_of_start_value(ctx: JSContext, obj: JSValue, is_async: boolean): [JSValue, JSValue] | null {\n const iter = JS_GetIterator(ctx, obj, is_async);\n if (JS_IsException(iter)) return null;\n const method = JS_GetProperty(ctx, iter, JS_ATOM_next);\n if (JS_IsException(method)) return null;\n return [iter, method];\n}\n\n/* IteratorStep: returns {value, done} or null on exception */\nexport function js_for_of_next_value(ctx: JSContext, iter: JSValue, next: JSValue): { value: JSValue; done: boolean } | null {\n const pdone = { done: 0 };\n const value = JS_IteratorNext(ctx, iter, next, [], pdone);\n if (JS_IsException(value)) return null;\n return { value: pdone.done ? undefined : value, done: pdone.done !== 0 };\n}\n\n/* spread: append the elements of the iterable 'src' to 'target' starting\n at index 'pos'; returns the next position or -1 on exception */\nexport function js_append_enumerate_value(ctx: JSContext, target: JSValue, pos: number, src: JSValue): number {\n const stack: JSValue[] = [target, pos, src];\n if (js_append_enumerate(ctx, stack, 3)) return -1;\n return stack[1] as number;\n}\n\n/* unmapped arguments object from an argument list (compiled functions) */\nexport function js_build_arguments_value(ctx: JSContext, argv: JSValue[]): JSValue {\n return js_build_arguments(ctx, argv.length, argv);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * jseption: TypeScript port of QuickJS\n *\n * Port of the bytecode interpreter of quickjs.c: JS_CallInternal, closures,\n * variable references, the arguments objects, private fields/brands,\n * class definition, generators, async functions and async generators.\n */\nimport { jit_hooks, JIT_NOT_COMPILED } from './jit_hook.ts';\nimport {\n JSContext, JSRuntime, JSValue, JSObject, JSAtom, JSClassID, JSSpecial,\n JS_EXCEPTION, JS_UNINITIALIZED, JS_IsException, JS_IsUndefined, JS_IsNull, JS_IsObject,\n JS_IsUninitialized, JS_IsCatchOffset, JS_NewCatchOffset, JSFunctionBytecode, JSFunctionData,\n JSVarRef, JSStackFrame, EMPTY_VAR_REFS, JSAsyncFunctionState, JSGeneratorData, JSGeneratorState, JSFunctionKind,\n JS_CALL_FLAG_CONSTRUCTOR, JS_CALL_FLAG_COPY_ARGV, JS_CALL_FLAG_GENERATOR, JS_MODE_STRICT, JS_MODE_ASYNC,\n JS_PROP_CONFIGURABLE, JS_PROP_WRITABLE, JS_PROP_ENUMERABLE, JS_PROP_C_W_E, JS_PROP_THROW,\n JS_PROP_THROW_STRICT, JS_PROP_HAS_GET, JS_PROP_HAS_SET, JS_PROP_HAS_VALUE,\n JS_PROP_HAS_WRITABLE, JS_PROP_HAS_CONFIGURABLE, JS_PROP_HAS_ENUMERABLE,\n JS_EVAL_TYPE_DIRECT, JS_EVAL_FLAG_STRICT,\n js_meta, js_get_meta, js_new_host_function, js_take_exception, js_call_host_function, js_call_c_function,\n js_c_function_data_call, JS_GetFunctionData, js_privates, JSObjectMeta, JS_GetClassID, JS_AtomToKey, JSHostImpl,\n js_host_exception_to_guest,\n JS_ATOM_NULL, JS_ATOM_length, JS_ATOM_name, JS_ATOM_prototype, JS_ATOM_constructor, JS_ATOM_callee,\n JS_ATOM_Symbol_iterator, JS_ATOM_Symbol_unscopables, JS_ATOM_Private_brand, JS_ATOM_brand,\n JS_ATOM_empty_string, JS_ATOM_next, JS_ATOM_return, JS_ATOM_throw, JS_ATOM_undefined, JS_ATOM_function,\n JS_ATOM_stack, JS_ATOM_TYPE_PRIVATE, JS_ATOM_Symbol_toStringTag,\n hooks, JS_Throw, JS_GetException, JS_ThrowTypeError, JS_ThrowTypeErrorAtom, JS_ThrowTypeErrorNotAnObject,\n JS_ThrowTypeErrorNotASymbol, JS_ThrowReferenceError, JS_ThrowReferenceErrorNotDefined,\n JS_ThrowReferenceErrorUninitialized, JS_ThrowReferenceErrorUninitialized2, JS_ThrowSyntaxErrorAtom,\n JS_ThrowInternalError, JS_ThrowStackOverflow, JS_ThrowTypeErrorReadOnly, JS_IsUncatchableError,\n JS_SetUncatchableError, build_backtrace, is_strict_mode,\n JS_NewObject, JS_NewObjectProto, JS_NewObjectProtoClass, JS_NewObjectClass, JS_NewArray,\n JS_NewSymbolFromAtom, JS_AtomToValue, JS_AtomToString, JS_ValueToAtom, JS_NewCFunctionData,\n JS_GetProperty, JS_GetPropertyInternal, JS_GetPropertyValue, JS_SetPropertyInternal, JS_SetPropertyValue,\n JS_HasProperty, JS_DefineProperty, JS_DefinePropertyValue, JS_DefinePropertyValueValue,\n JS_DefinePropertyValueUint32, JS_DeleteProperty, JS_GetPrototype,\n JS_SetPrototypeInternal, JS_SetConstructorBit, JS_IsFunction, JS_IsConstructor,\n JS_CheckGlobalVar, JS_GetGlobalVar, JS_SetGlobalVar, JS_GetGlobalVarRef, JS_DefineGlobalVar,\n JS_CheckDefineGlobalVar, JS_DefineGlobalFunction, JS_CopyDataProperties,\n JS_Call, JS_CallFree, JS_CallConstructorInternal, JS_CallConstructor2, js_create_from_ctor,\n JS_GetOpaque, JS_SetOpaque,\n JS_ToBoolFree, JS_ToObject, JS_ToPropertyKey, JS_ToNumericFree,\n js_add_slow, js_binary_arith_slow, js_unary_arith_slow, JSArithOp, JSUnaryOp, js_relational_op, JSRelOp,\n js_loose_eq, js_strict_eq2, JSStrictEqMode, JS_IsInstanceOf, js_operator_typeof, js_operator_in,\n JS_GetIterator, JS_IteratorNext, JS_IteratorClose, JS_IteratorGetCompleteValue, build_arg_list,\n build_for_in_iterator, js_for_in_next, js_create_iterator_result, js_get_fast_array, js_get_length64,\n async_hooks, JSCFunctionListEntry, JS_ITERATOR_NEXT_DEF, JS_CFUNC_MAGIC_DEF, JS_PROP_STRING_DEF,\n js_same_value, JS_GetFunctionRealm, JS_NewArrayFrom,\n} from './quickjs.ts';\nimport {\n OP, OPSpecialObject, OP_DEFINE_METHOD_METHOD, OP_DEFINE_METHOD_GETTER, OP_DEFINE_METHOD_SETTER,\n OP_DEFINE_METHOD_ENUMERABLE, JS_DEFINE_CLASS_HAS_HERITAGE, JS_THROW_VAR_RO, JS_THROW_VAR_REDECL,\n JS_THROW_VAR_UNINITIALIZED, JS_THROW_ERROR_DELETE_SUPER, JS_THROW_ERROR_ITERATOR_THROW,\n FUNC_RET_AWAIT, FUNC_RET_YIELD, FUNC_RET_YIELD_STAR, FUNC_RET_INITIAL_YIELD,\n get_u8, get_i8, get_u16, get_i16, get_u32, get_i32,\n} from './opcodes.ts';\nimport { JS_NewPromiseCapability, js_promise_resolve, perform_promise_then } from './builtins/promise.ts';\n\nexport const ARG_SCOPE_END = -2;\n\nexport const GEN_MAGIC_NEXT = 0;\nexport const GEN_MAGIC_RETURN = 1;\nexport const GEN_MAGIC_THROW = 2;\n\n/* ---------------------------------------------------------------------\n Variable references\n --------------------------------------------------------------------- */\n\nexport function js_class_has_bytecode(class_id: JSClassID): boolean {\n return class_id === JSClassID.BYTECODE_FUNCTION || class_id === JSClassID.GENERATOR_FUNCTION ||\n class_id === JSClassID.ASYNC_FUNCTION || class_id === JSClassID.ASYNC_GENERATOR_FUNCTION;\n}\n\nexport function get_var_ref(ctx: JSContext, sf: JSStackFrame, var_idx: number, is_arg: boolean): JSVarRef {\n for (const vr of sf.var_refs) {\n if (!vr.is_detached && vr.is_arg === is_arg && vr.var_idx === var_idx) return vr;\n }\n const vr = new JSVarRef(sf, is_arg, var_idx);\n if (sf.var_refs === EMPTY_VAR_REFS) sf.var_refs = [];\n sf.var_refs.push(vr);\n return vr;\n}\n\nexport function close_var_refs(rt: JSRuntime, sf: JSStackFrame): void {\n if (sf.var_refs === EMPTY_VAR_REFS) return;\n for (const vr of sf.var_refs) vr.detach();\n sf.var_refs.length = 0;\n}\n\nexport function close_lexical_var(ctx: JSContext, sf: JSStackFrame, var_idx: number): void {\n const refs = sf.var_refs;\n for (let i = refs.length - 1; i >= 0; i--) {\n const vr = refs[i];\n if (!vr.is_arg && vr.var_idx === var_idx) {\n vr.detach();\n refs.splice(i, 1);\n }\n }\n}\n\n/* ---------------------------------------------------------------------\n Closures\n --------------------------------------------------------------------- */\n\nfunction func_kind_to_class_id(kind: JSFunctionKind): JSClassID {\n switch (kind) {\n case JSFunctionKind.GENERATOR: return JSClassID.GENERATOR_FUNCTION;\n case JSFunctionKind.ASYNC: return JSClassID.ASYNC_FUNCTION;\n case JSFunctionKind.ASYNC_GENERATOR: return JSClassID.ASYNC_GENERATOR_FUNCTION;\n default: return JSClassID.BYTECODE_FUNCTION;\n }\n}\n\n/* collect the variable references of a closure from the current frame */\nfunction js_build_var_refs(ctx: JSContext, b: JSFunctionBytecode, cur_var_refs: JSVarRef[] | null,\n sf: JSStackFrame | null): JSVarRef[] | null {\n const var_refs: JSVarRef[] = [];\n for (let i = 0; i < b.closure_var.length; i++) {\n const cv = b.closure_var[i];\n if (cv.is_local) {\n /* reuse the existing variable reference if it already exists */\n if (!sf) { JS_ThrowInternalError(ctx, 'closure without stack frame'); return null; }\n var_refs.push(get_var_ref(ctx, sf, cv.var_idx, cv.is_arg));\n } else {\n if (!cur_var_refs) { JS_ThrowInternalError(ctx, 'closure without parent var refs'); return null; }\n var_refs.push(cur_var_refs[cv.var_idx]);\n }\n }\n return var_refs;\n}\n\n/* Create the guest function object of a bytecode function with the given\n variable references. The object is a strict host wrapper whose\n implementation runs the interpreter (or the compiled code). */\nexport function js_closure_from_refs(ctx: JSContext, b: JSFunctionBytecode, var_refs: JSVarRef[],\n proto: JSValue | null, is_ctor: boolean): JSValue {\n /* compiled tier: a retargetable wrapper that switches to the compiled body once it exists */\n if (jit_hooks.make_wrapper !== null && b.func_kind === JSFunctionKind.NORMAL && !b.no_jit) {\n const w = jit_hooks.make_wrapper(ctx, b, var_refs, proto, is_ctor);\n if (w !== null) return w;\n }\n let fobj: object;\n const impl: JSHostImpl = (this_val, new_target, args) => {\n let ret: JSValue;\n if (new_target !== undefined) ret = JS_CallInternal(ctx, fobj, new_target, new_target, args, JS_CALL_FLAG_CONSTRUCTOR);\n else ret = JS_CallInternal(ctx, fobj, this_val, undefined, args, 0);\n if (ret === JS_EXCEPTION) throw js_take_exception(ctx);\n return ret;\n };\n fobj = js_new_host_function(ctx, impl, is_ctor, '', b.defined_arg_count, proto, func_kind_to_class_id(b.func_kind));\n const m = js_meta.get(fobj)!;\n m.func = new JSFunctionData(b, var_refs);\n m.realm = b.realm ?? ctx;\n return fobj;\n}\n\nexport function js_closure2(ctx: JSContext, b: JSFunctionBytecode, cur_var_refs: JSVarRef[] | null,\n sf: JSStackFrame | null, proto: JSValue | null, is_ctor: boolean): JSValue {\n const var_refs = js_build_var_refs(ctx, b, cur_var_refs, sf);\n if (!var_refs) return JS_EXCEPTION;\n return js_closure_from_refs(ctx, b, var_refs, proto, is_ctor);\n}\n\nfunction js_instantiate_prototype(ctx: JSContext, p: JSObject): JSValue {\n const obj = JS_NewObject(ctx);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n if (JS_DefinePropertyValue(ctx, obj, JS_ATOM_constructor, p, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE) < 0)\n return JS_EXCEPTION;\n return obj;\n}\n\nexport function js_function_set_properties(ctx: JSContext, func_obj: JSValue, name: JSAtom, len: number): void {\n JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_length, len, JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_name, JS_AtomToString(ctx, name), JS_PROP_CONFIGURABLE);\n}\n\nexport function js_closure(ctx: JSContext, b: JSFunctionBytecode, cur_var_refs: JSVarRef[] | null,\n sf: JSStackFrame | null): JSValue {\n const class_id = func_kind_to_class_id(b.func_kind);\n const proto = ctx.class_proto[class_id] ?? ctx.function_proto;\n const func_obj = js_closure2(ctx, b, cur_var_refs, sf, proto, b.has_prototype);\n if (JS_IsException(func_obj)) return JS_EXCEPTION;\n let name_atom = b.func_name;\n if (name_atom === JS_ATOM_NULL) name_atom = JS_ATOM_empty_string;\n js_function_set_properties(ctx, func_obj, name_atom, b.defined_arg_count);\n if (b.func_kind & JSFunctionKind.GENERATOR) {\n /* generators have a prototype field which is used as prototype for the generator object */\n const proto_class_id = (b.func_kind === JSFunctionKind.ASYNC_GENERATOR) ? JSClassID.ASYNC_GENERATOR : JSClassID.GENERATOR;\n const gproto = JS_NewObjectProto(ctx, ctx.class_proto[proto_class_id]);\n if (JS_IsException(gproto)) return JS_EXCEPTION;\n JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_prototype, gproto, JS_PROP_WRITABLE);\n } else if (b.has_prototype) {\n const proto_obj = js_instantiate_prototype(ctx, func_obj as object);\n if (JS_IsException(proto_obj)) return JS_EXCEPTION;\n JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_prototype, proto_obj, JS_PROP_WRITABLE);\n }\n return func_obj;\n}\n\n/* ---------------------------------------------------------------------\n Arguments objects\n --------------------------------------------------------------------- */\n\nexport function js_build_arguments(ctx: JSContext, argc: number, argv: JSValue[]): JSValue {\n const val = JS_NewObjectProtoClass(ctx, ctx.class_proto[JSClassID.OBJECT], JSClassID.ARGUMENTS);\n if (JS_IsException(val)) return val;\n for (let i = 0; i < argc; i++) {\n Reflect.defineProperty(val as object, i, { value: argv[i], writable: true, enumerable: true, configurable: true });\n }\n JS_DefinePropertyValue(ctx, val, JS_ATOM_length, argc, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValue(ctx, val, JS_ATOM_Symbol_iterator, ctx.array_proto_values, JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE);\n /* add callee property to throw a TypeError in strict mode */\n JS_DefineProperty(ctx, val, JS_ATOM_callee, undefined, ctx.throw_type_error ?? undefined,\n ctx.throw_type_error ?? undefined, JS_PROP_HAS_GET | JS_PROP_HAS_SET);\n return val;\n}\n\n/* legacy arguments object: add references to the function arguments */\nexport function js_build_mapped_arguments(ctx: JSContext, argc: number, argv: JSValue[],\n sf: JSStackFrame, arg_count: number): JSValue {\n const val = JS_NewObjectProtoClass(ctx, ctx.class_proto[JSClassID.OBJECT], JSClassID.MAPPED_ARGUMENTS);\n if (JS_IsException(val)) return val;\n JS_DefinePropertyValue(ctx, val, JS_ATOM_length, argc, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n /* the mapped arguments alias the variables through accessor properties */\n for (let i = 0; i < arg_count; i++) {\n const var_ref = get_var_ref(ctx, sf, i, true);\n const getter = js_new_host_function(ctx, () => var_ref.get(), false, '', 0, ctx.function_proto, JSClassID.C_FUNCTION);\n const setter = js_new_host_function(ctx, (_t, _nt, args) => { var_ref.set(args[0]); return undefined; }, false, '', 1,\n ctx.function_proto, JSClassID.C_FUNCTION);\n Reflect.defineProperty(val as object, i, { get: getter as any, set: setter as any, enumerable: true, configurable: true });\n }\n /* the arguments not mapped to the arguments of the function can be normal properties */\n for (let i = arg_count; i < argc; i++) {\n if (JS_DefinePropertyValueUint32(ctx, val, i, argv[i], JS_PROP_C_W_E) < 0) return JS_EXCEPTION;\n }\n JS_DefinePropertyValue(ctx, val, JS_ATOM_Symbol_iterator, ctx.array_proto_values, JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE);\n /* callee returns this function in non strict mode */\n JS_DefinePropertyValue(ctx, val, JS_ATOM_callee, sf.cur_func, JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE);\n return val;\n}\n\nfunction __atom_from_idx(i: number): JSAtom { return i + 0x80000000; }\n\nexport function js_build_rest(ctx: JSContext, first: number, argc: number, argv: JSValue[]): JSValue {\n return JS_NewArrayFrom(ctx, first < argc ? argv.slice(first, argc) : []);\n}\n\n/* ---------------------------------------------------------------------\n Private fields and brands\n --------------------------------------------------------------------- */\n\nfunction JS_ThrowTypeErrorPrivateNotFound(ctx: JSContext, atom: JSAtom): JSValue {\n return JS_ThrowTypeErrorAtom(ctx, \"private class field '%s' does not exist\", atom);\n}\n\n/* private fields and brands live in a side table keyed by the object, so\n they are invisible to Reflect.ownKeys and proxy traps */\nfunction js_private_map(obj: object, create: boolean): Map<symbol, JSValue> | undefined {\n let m = js_privates.get(obj);\n if (!m && create) {\n m = new Map();\n js_privates.set(obj, m);\n }\n return m;\n}\n\nfunction js_private_atom(ctx: JSContext, name: symbol): JSAtom {\n return ctx.rt.atoms.symbolToAtom(name);\n}\n\nexport function JS_DefinePrivateField(ctx: JSContext, obj: JSValue, name: JSValue, val: JSValue): number {\n if (!JS_IsObject(obj)) { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n if (typeof name !== 'symbol') { JS_ThrowTypeErrorNotASymbol(ctx); return -1; }\n const m = js_private_map(obj, true)!;\n if (m.has(name)) {\n JS_ThrowTypeErrorAtom(ctx, \"private class field '%s' already exists\", js_private_atom(ctx, name));\n return -1;\n }\n m.set(name, val);\n return 0;\n}\n\nexport function JS_GetPrivateField(ctx: JSContext, obj: JSValue, name: JSValue): JSValue {\n if (!JS_IsObject(obj)) return JS_ThrowTypeErrorNotAnObject(ctx);\n if (typeof name !== 'symbol') return JS_ThrowTypeErrorNotASymbol(ctx);\n const m = js_private_map(obj, false);\n if (!m || !m.has(name)) return JS_ThrowTypeErrorPrivateNotFound(ctx, js_private_atom(ctx, name));\n return m.get(name);\n}\n\nexport function JS_SetPrivateField(ctx: JSContext, obj: JSValue, name: JSValue, val: JSValue): number {\n if (!JS_IsObject(obj)) { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n if (typeof name !== 'symbol') { JS_ThrowTypeErrorNotASymbol(ctx); return -1; }\n const m = js_private_map(obj, false);\n if (!m || !m.has(name)) { JS_ThrowTypeErrorPrivateNotFound(ctx, js_private_atom(ctx, name)); return -1; }\n m.set(name, val);\n return 0;\n}\n\n/* add a private brand field to 'home_obj' if not already present and\n if obj is != null add a private brand to it */\nexport function JS_AddBrand(ctx: JSContext, obj: JSValue, home_obj: JSValue): number {\n if (!JS_IsObject(home_obj)) { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n const brand_key = ctx.rt.atoms.getSymbol(JS_ATOM_Private_brand);\n const hm = js_private_map(home_obj, true)!;\n let brand = hm.get(brand_key);\n if (brand === undefined) {\n /* if the brand is not present, add it */\n brand = JS_NewSymbolFromAtom(ctx, JS_ATOM_brand, JS_ATOM_TYPE_PRIVATE);\n hm.set(brand_key, brand);\n }\n if (JS_IsObject(obj)) {\n const m = js_private_map(obj, true)!;\n if (m.has(brand as symbol)) {\n JS_ThrowTypeError(ctx, 'private method is already present');\n return -1;\n }\n m.set(brand as symbol, undefined);\n }\n return 0;\n}\n\n/* return a boolean telling if the brand of the home object of 'func'\n is present on 'obj' or -1 in case of exception */\nexport function JS_CheckBrand(ctx: JSContext, obj: JSValue, func: JSValue): number {\n const fd = JS_GetFunctionData(func);\n if (!fd || !fd.home_object) {\n JS_ThrowTypeErrorNotAnObject(ctx); return -1;\n }\n const brand_key = ctx.rt.atoms.getSymbol(JS_ATOM_Private_brand);\n const brand = js_private_map(fd.home_object, false)?.get(brand_key);\n if (brand === undefined) { JS_ThrowTypeError(ctx, 'expecting <brand> private field'); return -1; }\n if (typeof brand !== 'symbol') { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n if (!JS_IsObject(obj)) { JS_ThrowTypeErrorNotAnObject(ctx); return -1; }\n return js_private_map(obj, false)?.has(brand) ? 1 : 0;\n}\n\n/* op1 = object, op2 = field name or method function; returns -1/0/1 */\nexport function js_operator_private_in(ctx: JSContext, op1: JSValue, op2: JSValue): number {\n if (!JS_IsObject(op1)) { JS_ThrowTypeError(ctx, \"invalid 'in' operand\"); return -1; }\n if (JS_IsObject(op2)) {\n /* method: use the brand */\n return JS_CheckBrand(ctx, op1, op2);\n }\n if (typeof op2 !== 'symbol') { JS_ThrowTypeErrorNotASymbol(ctx); return -1; }\n return js_private_map(op1, false)?.has(op2) ? 1 : 0;\n}\n\n/* ---------------------------------------------------------------------\n Methods, names and classes\n --------------------------------------------------------------------- */\n\nexport function js_method_set_home_object(ctx: JSContext, func_obj: JSValue, home_obj: JSValue): void {\n const fd = JS_GetFunctionData(func_obj);\n if (!fd) return;\n if (fd.function_bytecode.need_home_object) {\n fd.home_object = JS_IsObject(home_obj) ? home_obj : null;\n }\n}\n\nexport function js_get_function_name(ctx: JSContext, name: JSAtom): string {\n const name_str = JS_AtomToString(ctx, name);\n if (ctx.rt.atoms.isSymbol(name)) {\n const sym = ctx.rt.atoms.getSymbol(name);\n if (sym.description !== undefined) return '[' + name_str + ']';\n return '';\n }\n return name_str;\n}\n\n/* Modify the name of a method according to the atom and 'flags'\n (bitmask of JS_PROP_HAS_GET and JS_PROP_HAS_SET). Also set the home\n object of the method. Return < 0 if exception. */\nexport function js_method_set_properties(ctx: JSContext, func_obj: JSValue, name: JSAtom, flags: number, home_obj: JSValue): number {\n let name_str = js_get_function_name(ctx, name);\n if (flags & JS_PROP_HAS_GET) name_str = 'get ' + name_str;\n else if (flags & JS_PROP_HAS_SET) name_str = 'set ' + name_str;\n if (JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_name, name_str, JS_PROP_CONFIGURABLE) < 0) return -1;\n js_method_set_home_object(ctx, func_obj, home_obj);\n return 0;\n}\n\n/* return TRUE if 'obj' has a non empty 'name' string */\nfunction js_object_has_name(ctx: JSContext, obj: JSObject): boolean {\n let d: PropertyDescriptor | undefined;\n try {\n d = Reflect.getOwnPropertyDescriptor(obj, 'name');\n } catch {\n return true;\n }\n if (!d) return false;\n if ('get' in d || 'set' in d) return true;\n if (typeof d.value !== 'string') return true;\n return d.value.length !== 0;\n}\n\nexport function JS_DefineObjectName(ctx: JSContext, obj: JSValue, name: JSAtom, flags: number): number {\n if (name !== JS_ATOM_NULL && JS_IsObject(obj) && !js_object_has_name(ctx, obj) &&\n JS_DefinePropertyValue(ctx, obj, JS_ATOM_name, JS_AtomToString(ctx, name), flags) < 0) {\n return -1;\n }\n return 0;\n}\n\nexport function JS_DefineObjectNameComputed(ctx: JSContext, obj: JSValue, str: JSValue, flags: number): number {\n if (JS_IsObject(obj) && !js_object_has_name(ctx, obj)) {\n const prop = JS_ValueToAtom(ctx, str);\n if (prop === JS_ATOM_NULL) return -1;\n const name_str = js_get_function_name(ctx, prop);\n if (JS_DefinePropertyValue(ctx, obj, JS_ATOM_name, name_str, flags) < 0) return -1;\n }\n return 0;\n}\n\n/* Define a class: returns [ctor, proto] or null on exception. 'var_refs'\n are the variable references of the constructor closure (already built;\n see js_build_var_refs). 'computed_name' is the class name value when\n the name is computed (class_name is then ignored). */\nexport function js_define_class(ctx: JSContext, class_name: JSAtom, class_flags: number, parent_class: JSValue,\n b: JSFunctionBytecode, var_refs: JSVarRef[], is_computed_name: boolean,\n computed_name: JSValue): [JSValue, JSValue] | null {\n let parent_proto: JSValue;\n if (class_flags & JS_DEFINE_CLASS_HAS_HERITAGE) {\n if (parent_class === null) {\n parent_proto = null;\n parent_class = ctx.function_proto;\n } else {\n if (!JS_IsConstructor(ctx, parent_class)) {\n JS_ThrowTypeError(ctx, 'parent class must be constructor');\n return null;\n }\n parent_proto = JS_GetProperty(ctx, parent_class, JS_ATOM_prototype);\n if (JS_IsException(parent_proto)) return null;\n if (parent_proto !== null && !JS_IsObject(parent_proto)) {\n JS_ThrowTypeError(ctx, 'parent prototype must be an object or null');\n return null;\n }\n }\n } else {\n /* parent_class is JS_UNDEFINED in this case */\n parent_proto = ctx.class_proto[JSClassID.OBJECT];\n parent_class = ctx.function_proto;\n }\n const proto = JS_NewObjectProto(ctx, parent_proto as JSObject | null);\n if (JS_IsException(proto)) return null;\n\n const ctor = js_closure_from_refs(ctx, b, var_refs, parent_class, true);\n if (JS_IsException(ctor)) return null;\n js_method_set_home_object(ctx, ctor, proto);\n const m = js_meta.get(ctor as object)!;\n m.is_constructor = true;\n m.is_class = true;\n\n JS_DefinePropertyValue(ctx, ctor, JS_ATOM_length, b.defined_arg_count, JS_PROP_CONFIGURABLE);\n\n if (is_computed_name) {\n if (JS_DefineObjectNameComputed(ctx, ctor, computed_name, JS_PROP_CONFIGURABLE) < 0) return null;\n } else {\n if (JS_DefineObjectName(ctx, ctor, class_name, JS_PROP_CONFIGURABLE) < 0) return null;\n }\n\n /* the constructor property must be first. It can be overriden by computed property names */\n if (JS_DefinePropertyValue(ctx, proto, JS_ATOM_constructor, ctor, JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE | JS_PROP_THROW) < 0)\n return null;\n /* set the prototype property */\n if (JS_DefinePropertyValue(ctx, ctor, JS_ATOM_prototype, proto, JS_PROP_THROW) < 0) return null;\n return [ctor, proto];\n}\n\n/* stack: [name] parent ctor_bytecode -> [name] ctor proto */\nfunction js_op_define_class(ctx: JSContext, stack: JSValue[], sp: number, class_name: JSAtom, class_flags: number,\n cur_var_refs: JSVarRef[], sf: JSStackFrame, is_computed_name: boolean): number {\n const parent_class = stack[sp - 2];\n const bfunc = stack[sp - 1] as unknown as JSFunctionBytecode;\n const fail = (): number => { stack[sp - 2] = undefined; stack[sp - 1] = undefined; return -1; };\n const var_refs = js_build_var_refs(ctx, bfunc, cur_var_refs, sf);\n if (!var_refs) return fail();\n const r = js_define_class(ctx, class_name, class_flags, parent_class, bfunc, var_refs, is_computed_name,\n is_computed_name ? stack[sp - 3] : undefined);\n if (!r) return fail();\n stack[sp - 2] = r[0];\n stack[sp - 1] = r[1];\n return 0;\n}\n\n/* ---------------------------------------------------------------------\n Iteration helpers\n --------------------------------------------------------------------- */\n\n/* stack: obj -> iter next (returns -1 on exception) */\nfunction js_for_of_start(ctx: JSContext, stack: JSValue[], sp: number, is_async: boolean): number {\n const op1 = stack[sp - 1];\n const obj = JS_GetIterator(ctx, op1, is_async);\n if (JS_IsException(obj)) return -1;\n stack[sp - 1] = obj;\n const method = JS_GetProperty(ctx, obj, JS_ATOM_next);\n if (JS_IsException(method)) return -1;\n stack[sp] = method;\n return 0;\n}\n\n/* enum_rec [objs] -> enum_rec [objs] value done. There are 'offset'\n objs. If 'done' is true or in case of exception, 'enum_rec' is set\n to undefined. If 'done' is true, 'value' is always set to undefined. */\nfunction js_for_of_next(ctx: JSContext, stack: JSValue[], sp: number, offset: number): number {\n let value: JSValue = undefined;\n let done = 1;\n const iter = stack[sp + offset];\n if (!JS_IsUndefined(iter)) {\n const pdone = { done: 0 };\n value = JS_IteratorNext(ctx, iter, stack[sp + offset + 1], [], pdone);\n if (JS_IsException(value)) done = -1;\n else done = pdone.done;\n if (done) {\n /* replace the iteration object with undefined */\n stack[sp + offset] = undefined;\n if (done < 0) return -1;\n value = undefined;\n }\n }\n stack[sp] = value;\n stack[sp + 1] = done !== 0;\n return 0;\n}\n\n/* stack: iter next catch_offset -> iter next catch_offset obj */\nfunction js_for_await_of_next(ctx: JSContext, stack: JSValue[], sp: number): number {\n stack[sp - 1] = undefined; /* disable the catch offset so that exceptions do not close the iterator */\n const iter = stack[sp - 3];\n const next = stack[sp - 2];\n const obj = JS_Call(ctx, next, iter, []);\n if (JS_IsException(obj)) return -1;\n stack[sp] = obj;\n return 0;\n}\n\n/* stack: catch_offset obj -> catch_offset value done */\nfunction js_iterator_get_value_done(ctx: JSContext, stack: JSValue[], sp: number): number {\n const obj = stack[sp - 1];\n if (!JS_IsObject(obj)) {\n JS_ThrowTypeError(ctx, 'iterator must return an object');\n return -1;\n }\n const pdone = { done: 0 };\n const value = JS_IteratorGetCompleteValue(ctx, obj, pdone);\n if (JS_IsException(value)) return -1;\n /* put again the catch offset so that exceptions close the iterator */\n stack[sp - 2] = JS_NewCatchOffset(0);\n stack[sp - 1] = value;\n stack[sp] = pdone.done !== 0;\n return 0;\n}\n\n/* stack: array pos enumobj -> array pos enumobj (pos updated) */\nfunction js_append_enumerate(ctx: JSContext, stack: JSValue[], sp: number): number {\n if (typeof stack[sp - 2] !== 'number') {\n JS_ThrowInternalError(ctx, 'invalid index for append');\n return -1;\n }\n let pos = stack[sp - 2] as number;\n const src = stack[sp - 1];\n const target = stack[sp - 3];\n const iterator = JS_GetProperty(ctx, src, JS_ATOM_Symbol_iterator);\n if (JS_IsException(iterator)) return -1;\n const is_array_iterator = iterator !== undefined && iterator === ctx.array_proto_values;\n\n const enumobj = JS_GetIterator(ctx, src, false);\n if (JS_IsException(enumobj)) return -1;\n const method = JS_GetProperty(ctx, enumobj, JS_ATOM_next);\n if (JS_IsException(method)) return -1;\n const fast = js_get_fast_array(ctx, src);\n let fast_ok = false;\n if (is_array_iterator && fast && ctx.array_iterator_proto && Reflect.getPrototypeOf(enumobj as object) === ctx.array_iterator_proto) {\n const next_d = Reflect.getOwnPropertyDescriptor(ctx.array_iterator_proto, 'next');\n if (next_d && 'value' in next_d && next_d.value === method) {\n const len = js_get_length64(ctx, src);\n if (len < 0) { JS_IteratorClose(ctx, enumobj, true); return -1; }\n /* if len > count, the elements >= count might be read in the prototypes */\n if (len === fast.length) fast_ok = true;\n }\n }\n if (fast_ok) {\n const count = fast!.length;\n for (let i = 0; i < count; i++) {\n if (JS_DefinePropertyValueUint32(ctx, target, pos++, fast![i], JS_PROP_C_W_E) < 0) {\n JS_IteratorClose(ctx, enumobj, true);\n return -1;\n }\n }\n } else {\n const pdone = { done: 0 };\n for (;;) {\n const value = JS_IteratorNext(ctx, enumobj, method, [], pdone);\n if (JS_IsException(value)) { JS_IteratorClose(ctx, enumobj, true); return -1; }\n if (pdone.done) break;\n if (JS_DefinePropertyValueUint32(ctx, target, pos++, value, JS_PROP_C_W_E) < 0) {\n JS_IteratorClose(ctx, enumobj, true);\n return -1;\n }\n }\n }\n stack[sp - 2] = pos;\n return 0;\n}\n\nfunction js_has_unscopable(ctx: JSContext, obj: JSValue, atom: JSAtom): number {\n const arr = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_unscopables);\n if (JS_IsException(arr)) return -1;\n let ret = 0;\n if (JS_IsObject(arr)) {\n const val = JS_GetProperty(ctx, arr, atom);\n if (JS_IsException(val)) return -1;\n ret = JS_ToBoolFree(ctx, val) ? 1 : 0;\n }\n return ret;\n}\n\n/* Function.prototype.apply / Reflect.apply / Reflect.construct helper\n magic: 0 = apply, 1 = construct (this_arg is new_target), 2 = Reflect.apply (array required) */\nexport function js_function_apply(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n if (!JS_IsFunction(ctx, this_val)) return JS_ThrowTypeError(ctx, 'not a function');\n const this_arg = argv[0];\n const array_arg = argv[1];\n if ((array_arg === undefined || array_arg === null) && magic !== 2) {\n return JS_Call(ctx, this_val, this_arg, []);\n }\n const tab = build_arg_list(ctx, array_arg);\n if (!tab) return JS_EXCEPTION;\n if (magic & 1) return JS_CallConstructor2(ctx, this_val, this_arg, tab);\n return JS_Call(ctx, this_val, this_arg, tab);\n}\n\nfunction JS_EvalObject(ctx: JSContext, this_obj: JSValue, val: JSValue, flags: number, scope_idx: number): JSValue {\n if (typeof val !== 'string') return val;\n return hooks.JS_EvalInternal(ctx, this_obj, val, '<input>', flags, scope_idx);\n}\n\n/* interrupt polling: return -1 if an interrupt was requested */\nfunction js_poll_interrupts(ctx: JSContext): number {\n if (--ctx.interrupt_counter <= 0) {\n ctx.interrupt_counter = 10000;\n const rt = ctx.rt;\n if (rt.interrupt_handler) {\n if (rt.interrupt_handler(rt, rt.interrupt_opaque)) {\n /* XXX: should set a specific flag to avoid catching */\n JS_ThrowInternalError(ctx, 'interrupted');\n JS_SetUncatchableError(ctx, rt.current_exception, true);\n return -1;\n }\n }\n }\n return 0;\n}\n\nfunction is_backtrace_needed(ctx: JSContext, obj: JSValue): boolean {\n const m = js_get_meta(obj);\n return m !== undefined && m.class_id === JSClassID.ERROR && !m.has_backtrace;\n}\n\n/* ---------------------------------------------------------------------\n JS_CallInternal\n --------------------------------------------------------------------- */\n\nexport function JS_CallInternal(ctx: JSContext, func_obj: JSValue, this_obj: JSValue, new_target: JSValue,\n argv: JSValue[], flags: number): JSValue {\n if (typeof func_obj !== 'function') return JS_ThrowTypeError(ctx, 'not a function');\n const m = js_meta.get(func_obj);\n if (m !== undefined) {\n const fd = m.func;\n if (fd !== null) {\n const b = fd.function_bytecode;\n /* compiled tier (src/jit.ts): compiles hot functions and calls the direct entry */\n if (jit_hooks.try_call !== null && b.func_kind === JSFunctionKind.NORMAL) {\n const r = jit_hooks.try_call(ctx, func_obj, fd, b, this_obj, new_target, argv, flags);\n if (r !== JIT_NOT_COMPILED) return r;\n }\n if (b.compiled === null) {\n switch (b.func_kind) {\n case JSFunctionKind.NORMAL:\n return js_call_internal(ctx, func_obj, this_obj, new_target, argv, flags, null, true);\n case JSFunctionKind.GENERATOR:\n return js_generator_function_call(ctx, func_obj, this_obj, argv, flags);\n case JSFunctionKind.ASYNC:\n return js_async_function_call(ctx, func_obj, this_obj, argv, flags);\n case JSFunctionKind.ASYNC_GENERATOR:\n return js_async_generator_function_call(ctx, func_obj, this_obj, argv, flags);\n }\n }\n } else if (m.cfunc !== null) {\n return js_call_c_function(ctx, func_obj, this_obj, argv, flags);\n } else if (m.class_id === JSClassID.C_FUNCTION_DATA) {\n return js_c_function_data_call(ctx, func_obj, this_obj, argv, flags);\n }\n }\n return js_call_host_function(ctx, func_obj, this_obj, new_target, argv, flags);\n}\n\nconst enum Flow { NORMAL, EXCEPTION, DONE, DONE_GENERATOR }\n\n/* backward jumps taken in a function's interpreter frames (cumulated over its calls) before the\n compiled tier is asked to replace the running frame (jit_hooks.osr) */\nexport let jit_osr_threshold = 500;\nexport function jit_set_osr_threshold(n: number): void { jit_osr_threshold = n; }\n\nfunction js_call_internal(caller_ctx: JSContext, func_obj: JSValue, this_obj: JSValue, new_target: JSValue,\n argv: JSValue[], flags: number, gen_state: JSAsyncFunctionState | null,\n jit_checked = false): JSValue {\n if (gen_state === null) {\n /* only interpreted normal bytecode functions are executed here */\n const m = typeof func_obj === 'function' ? js_meta.get(func_obj) : undefined;\n if (m === undefined || m.func === null || m.func.function_bytecode.compiled !== null ||\n m.func.function_bytecode.func_kind !== JSFunctionKind.NORMAL) {\n return JS_CallInternal(caller_ctx, func_obj, this_obj, new_target, argv, flags);\n }\n /* compiled tier: counts the call and compiles the function once it is hot (JS_CallInternal\n has asked already when it calls here) */\n if (!jit_checked && jit_hooks.try_call !== null) {\n const r = jit_hooks.try_call(caller_ctx, func_obj, m.func, m.func.function_bytecode, this_obj, new_target, argv, flags);\n if (r !== JIT_NOT_COMPILED) return r;\n }\n if (flags & JS_CALL_FLAG_CONSTRUCTOR) {\n /* legacy constructor behavior: create 'this' from new_target */\n if (m.func.function_bytecode.is_derived_class_constructor) {\n this_obj = undefined;\n } else {\n const obj = js_create_from_ctor(caller_ctx, new_target, JSClassID.OBJECT);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n const ret = js_interpret(caller_ctx, func_obj, obj, new_target, argv, flags & ~JS_CALL_FLAG_CONSTRUCTOR, null);\n if (JS_IsObject(ret) || JS_IsException(ret)) return ret;\n return obj;\n }\n }\n }\n return js_interpret(caller_ctx, func_obj, this_obj, new_target, argv, flags, gen_state);\n}\n\n/* Runs the bytecode of a function in a new interpreter frame, or resumes the frame of a\n generator. Exactly one host frame of this function exists per interpreter frame: its name\n identifies interpreter frames on the host stack (src/jit_stack.ts). */\nfunction js_interpret(caller_ctx: JSContext, func_obj: JSValue, this_obj: JSValue, new_target: JSValue,\n argv: JSValue[], flags: number, gen_state: JSAsyncFunctionState | null): JSValue {\n const rt = caller_ctx.rt;\n let ctx: JSContext;\n let p: JSObject;\n let fd: JSFunctionData;\n let b: JSFunctionBytecode;\n let sf: JSStackFrame;\n let pc: number;\n let sp: number;\n let argc: number;\n let var_refs: JSVarRef[];\n let arg_buf: JSValue[];\n let var_buf: JSValue[];\n let stack: JSValue[];\n let ret_val: JSValue = undefined;\n let flow: Flow = Flow.NORMAL;\n\n if (js_poll_interrupts(caller_ctx)) return JS_EXCEPTION;\n\n if (gen_state !== null) {\n /* the stack frame is already allocated (generator / async function resume) */\n const s = gen_state;\n sf = s.frame;\n p = sf.cur_func as JSObject;\n fd = JS_GetFunctionData(p)!;\n b = fd.function_bytecode;\n ctx = b.realm ?? caller_ctx;\n var_refs = fd.var_refs;\n arg_buf = sf.arg_buf;\n var_buf = sf.var_buf;\n stack = sf.stack_buf;\n argc = s.argc;\n argv = arg_buf;\n this_obj = s.this_val;\n new_target = sf.new_target;\n sp = sf.cur_sp;\n sf.cur_sp = -1; /* cur_sp is -1 if the function is running */\n pc = sf.cur_pc;\n sf.prev_frame = rt.current_stack_frame;\n rt.current_stack_frame = sf;\n rt.stack_depth++;\n if (s.throw_flag) flow = Flow.EXCEPTION;\n } else {\n p = func_obj as JSObject;\n fd = js_meta.get(p)!.func!;\n b = fd.function_bytecode;\n\n if (rt.stack_depth >= rt.max_stack_depth) return JS_ThrowStackOverflow(caller_ctx);\n\n argc = argv.length;\n sf = new JSStackFrame();\n sf.js_mode = b.js_mode;\n sf.arg_count = argc;\n sf.cur_func = func_obj;\n var_refs = fd.var_refs;\n if (argc < b.arg_count || (flags & JS_CALL_FLAG_COPY_ARGV)) {\n const n = Math.min(argc, b.arg_count);\n arg_buf = new Array(Math.max(argc, b.arg_count));\n for (let i = 0; i < argc; i++) arg_buf[i] = argv[i];\n for (let i = n; i < b.arg_count; i++) arg_buf[i] = undefined;\n /* keep the extra arguments (for 'arguments' and rest) */\n } else {\n arg_buf = argv;\n }\n var_buf = new Array(b.var_count);\n for (let i = 0; i < b.var_count; i++) var_buf[i] = undefined;\n stack = new Array(b.stack_size);\n sf.arg_buf = arg_buf;\n sf.var_buf = var_buf;\n sf.stack_buf = stack;\n sf.this_obj = this_obj;\n sf.new_target = new_target;\n sp = 0;\n pc = 0;\n sf.prev_frame = rt.current_stack_frame;\n rt.current_stack_frame = sf;\n rt.stack_depth++;\n ctx = b.realm ?? caller_ctx; /* set the current realm */\n argv = arg_buf;\n }\n\n const buf = b.byte_code_buf;\n const cpool = b.cpool;\n\n /* Host exceptions escaping from the engine helpers (host stack overflow\n while handling an exception, host natives, bugs) are converted to\n guest exceptions here so that they never leave the interpreter. */\n outer: for (;;) {\n try {\n main: for (;;) {\n if (flow === Flow.EXCEPTION) {\n /* exception handling */\n if (is_backtrace_needed(ctx, rt.current_exception)) {\n sf.cur_pc = pc;\n build_backtrace(ctx, rt.current_exception, null, 0, 0, 0);\n }\n flow = Flow.NORMAL;\n let handled = false;\n if (!JS_IsUncatchableError(ctx, rt.current_exception)) {\n while (sp > 0) {\n const val = stack[--sp];\n if (JS_IsCatchOffset(val)) {\n const pos = val.v;\n if (pos === 0) {\n /* enumerator: close it with a throw */\n sp--; /* drop the next method */\n JS_IteratorClose(ctx, stack[sp - 1], true);\n } else {\n stack[sp++] = rt.current_exception;\n rt.current_exception = JS_UNINITIALIZED;\n rt.exception_pending = false;\n pc = pos;\n handled = true;\n break;\n }\n }\n }\n }\n if (!handled) {\n ret_val = JS_EXCEPTION;\n flow = b.func_kind !== JSFunctionKind.NORMAL ? Flow.DONE_GENERATOR : Flow.DONE;\n break main;\n }\n }\n\n const opcode = buf[pc++];\n sw: switch (opcode) {\n case OP.push_i32:\n stack[sp++] = get_i32(buf, pc);\n pc += 4;\n break;\n case OP.push_bigint_i32:\n stack[sp++] = BigInt(get_i32(buf, pc));\n pc += 4;\n break;\n case OP.push_const:\n stack[sp++] = cpool[get_u32(buf, pc)] as JSValue;\n pc += 4;\n break;\n case OP.push_minus1: case OP.push_0: case OP.push_1: case OP.push_2: case OP.push_3:\n case OP.push_4: case OP.push_5: case OP.push_6: case OP.push_7:\n stack[sp++] = opcode - OP.push_0;\n break;\n case OP.push_i8:\n stack[sp++] = get_i8(buf, pc);\n pc += 1;\n break;\n case OP.push_i16:\n stack[sp++] = get_i16(buf, pc);\n pc += 2;\n break;\n case OP.push_const8:\n stack[sp++] = cpool[buf[pc++]] as JSValue;\n break;\n case OP.fclosure8: {\n const v = js_closure(ctx, cpool[buf[pc++]] as JSFunctionBytecode, var_refs, sf);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n case OP.push_empty_string:\n stack[sp++] = '';\n break;\n case OP.get_length: {\n sf.cur_pc = pc;\n const val = JS_GetProperty(ctx, stack[sp - 1], JS_ATOM_length);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = val;\n break;\n }\n case OP.push_atom_value:\n stack[sp++] = JS_AtomToValue(ctx, get_u32(buf, pc));\n pc += 4;\n break;\n case OP.undefined:\n stack[sp++] = undefined;\n break;\n case OP.null:\n stack[sp++] = null;\n break;\n case OP.push_this: {\n /* OP_push_this is only called at the start of a function */\n let val: JSValue;\n if (!(b.js_mode & JS_MODE_STRICT)) {\n if (JS_IsObject(this_obj)) {\n val = this_obj;\n } else if (this_obj === null || this_obj === undefined) {\n val = ctx.global_obj;\n } else {\n val = JS_ToObject(ctx, this_obj);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n }\n } else {\n val = this_obj;\n }\n stack[sp++] = val;\n break;\n }\n case OP.push_false:\n stack[sp++] = false;\n break;\n case OP.push_true:\n stack[sp++] = true;\n break;\n case OP.object: {\n const v = JS_NewObject(ctx);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n case OP.special_object: {\n const arg = buf[pc++];\n let v: JSValue;\n switch (arg) {\n case OPSpecialObject.ARGUMENTS:\n v = js_build_arguments(ctx, argc, argv);\n break;\n case OPSpecialObject.MAPPED_ARGUMENTS:\n v = js_build_mapped_arguments(ctx, argc, argv, sf, Math.min(argc, b.arg_count));\n break;\n case OPSpecialObject.THIS_FUNC:\n v = sf.cur_func;\n break;\n case OPSpecialObject.NEW_TARGET:\n v = new_target;\n break;\n case OPSpecialObject.HOME_OBJECT:\n v = fd.home_object ?? undefined;\n break;\n case OPSpecialObject.VAR_OBJECT:\n v = JS_NewObjectProto(ctx, null);\n break;\n case OPSpecialObject.IMPORT_META:\n v = hooks.js_import_meta !== null ? hooks.js_import_meta(ctx, b) : JS_ThrowTypeError(ctx, 'import.meta is not supported');\n break;\n default:\n v = JS_ThrowInternalError(ctx, 'invalid special object ' + arg);\n break;\n }\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n case OP.rest: {\n const first = get_u16(buf, pc);\n pc += 2;\n const v = js_build_rest(ctx, first, argc, argv);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n\n case OP.drop:\n sp--;\n break;\n case OP.nip: /* a b -> b */\n stack[sp - 2] = stack[sp - 1];\n sp--;\n break;\n case OP.nip1: /* a b c -> b c */\n stack[sp - 3] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n sp--;\n break;\n case OP.dup:\n stack[sp] = stack[sp - 1];\n sp++;\n break;\n case OP.dup2: /* a b -> a b a b */\n stack[sp] = stack[sp - 2];\n stack[sp + 1] = stack[sp - 1];\n sp += 2;\n break;\n case OP.dup3: /* a b c -> a b c a b c */\n stack[sp] = stack[sp - 3];\n stack[sp + 1] = stack[sp - 2];\n stack[sp + 2] = stack[sp - 1];\n sp += 3;\n break;\n case OP.dup1: /* a b -> a a b */\n stack[sp] = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n sp++;\n break;\n case OP.insert2: /* obj a -> a obj a (dup_x1) */\n stack[sp] = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n stack[sp - 2] = stack[sp];\n sp++;\n break;\n case OP.insert3: /* obj prop a -> a obj prop a (dup_x2) */\n stack[sp] = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = stack[sp];\n sp++;\n break;\n case OP.insert4: /* this obj prop a -> a this obj prop a */\n stack[sp] = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 4];\n stack[sp - 4] = stack[sp];\n sp++;\n break;\n case OP.perm3: { /* obj a b -> a obj b (213) */\n const tmp = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = tmp;\n break;\n }\n case OP.rot3l: { /* x a b -> a b x (231) */\n const tmp = stack[sp - 3];\n stack[sp - 3] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n stack[sp - 1] = tmp;\n break;\n }\n case OP.rot4l: { /* x a b c -> a b c x */\n const tmp = stack[sp - 4];\n stack[sp - 4] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n stack[sp - 1] = tmp;\n break;\n }\n case OP.rot5l: { /* x a b c d -> a b c d x */\n const tmp = stack[sp - 5];\n stack[sp - 5] = stack[sp - 4];\n stack[sp - 4] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n stack[sp - 1] = tmp;\n break;\n }\n case OP.rot3r: { /* a b x -> x a b (312) */\n const tmp = stack[sp - 1];\n stack[sp - 1] = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = tmp;\n break;\n }\n case OP.perm4: { /* obj prop a b -> a obj prop b */\n const tmp = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 4];\n stack[sp - 4] = tmp;\n break;\n }\n case OP.perm5: { /* this obj prop a b -> a this obj prop b */\n const tmp = stack[sp - 2];\n stack[sp - 2] = stack[sp - 3];\n stack[sp - 3] = stack[sp - 4];\n stack[sp - 4] = stack[sp - 5];\n stack[sp - 5] = tmp;\n break;\n }\n case OP.swap: { /* a b -> b a */\n const tmp = stack[sp - 2];\n stack[sp - 2] = stack[sp - 1];\n stack[sp - 1] = tmp;\n break;\n }\n case OP.swap2: { /* a b c d -> c d a b */\n const tmp1 = stack[sp - 4];\n const tmp2 = stack[sp - 3];\n stack[sp - 4] = stack[sp - 2];\n stack[sp - 3] = stack[sp - 1];\n stack[sp - 2] = tmp1;\n stack[sp - 1] = tmp2;\n break;\n }\n\n case OP.fclosure: {\n const bfunc = cpool[get_u32(buf, pc)] as JSFunctionBytecode;\n pc += 4;\n const v = js_closure(ctx, bfunc, var_refs, sf);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n break;\n }\n case OP.call0: case OP.call1: case OP.call2: case OP.call3:\n case OP.call: case OP.tail_call: {\n let call_argc: number;\n if (opcode === OP.call || opcode === OP.tail_call) {\n call_argc = get_u16(buf, pc);\n pc += 2;\n } else {\n call_argc = opcode - OP.call0;\n }\n const call_argv = stack.slice(sp - call_argc, sp);\n sf.cur_pc = pc;\n ret_val = js_call_internal(ctx, stack[sp - call_argc - 1], undefined, undefined, call_argv, 0, null);\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n if (opcode === OP.tail_call) { flow = Flow.DONE; break main; }\n sp -= call_argc + 1;\n stack[sp++] = ret_val;\n break;\n }\n case OP.call_constructor: {\n const call_argc = get_u16(buf, pc);\n pc += 2;\n const call_argv = stack.slice(sp - call_argc, sp);\n sf.cur_pc = pc;\n ret_val = JS_CallConstructorInternal(ctx, stack[sp - call_argc - 2], stack[sp - call_argc - 1], call_argv, 0);\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n sp -= call_argc + 2;\n stack[sp++] = ret_val;\n break;\n }\n case OP.call_method: case OP.tail_call_method: {\n const call_argc = get_u16(buf, pc);\n pc += 2;\n const call_argv = stack.slice(sp - call_argc, sp);\n sf.cur_pc = pc;\n ret_val = js_call_internal(ctx, stack[sp - call_argc - 1], stack[sp - call_argc - 2], undefined, call_argv, 0, null);\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n if (opcode === OP.tail_call_method) { flow = Flow.DONE; break main; }\n sp -= call_argc + 2;\n stack[sp++] = ret_val;\n break;\n }\n case OP.array_from: {\n const call_argc = get_u16(buf, pc);\n pc += 2;\n const arr = JS_NewArray(ctx);\n if (JS_IsException(arr)) { flow = Flow.EXCEPTION; break; }\n const base = sp - call_argc;\n let err = false;\n for (let i = 0; i < call_argc; i++) {\n if (JS_DefinePropertyValue(ctx, arr, __atom_from_idx(i), stack[base + i], JS_PROP_C_W_E | JS_PROP_THROW) < 0) { err = true; break; }\n }\n if (err) { flow = Flow.EXCEPTION; break; }\n sp -= call_argc;\n stack[sp++] = arr;\n break;\n }\n case OP.apply: {\n const magic = get_u16(buf, pc);\n pc += 2;\n sf.cur_pc = pc;\n ret_val = js_function_apply(ctx, stack[sp - 3], [stack[sp - 2], stack[sp - 1]], magic);\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n sp -= 3;\n stack[sp++] = ret_val;\n break;\n }\n case OP.return:\n ret_val = stack[--sp];\n flow = Flow.DONE;\n break main;\n case OP.return_undef:\n ret_val = undefined;\n flow = Flow.DONE;\n break main;\n\n case OP.check_ctor_return:\n /* return TRUE if 'this' should be returned */\n if (!JS_IsObject(stack[sp - 1])) {\n if (!JS_IsUndefined(stack[sp - 1])) {\n JS_ThrowTypeError(caller_ctx, 'derived class constructor must return an object or undefined');\n flow = Flow.EXCEPTION; break;\n }\n stack[sp] = true;\n } else {\n stack[sp] = false;\n }\n sp++;\n break;\n case OP.check_ctor:\n if (JS_IsUndefined(new_target)) {\n JS_ThrowTypeError(ctx, \"class constructors must be invoked with 'new'\");\n flow = Flow.EXCEPTION; break;\n }\n break;\n case OP.init_ctor: {\n sf.cur_pc = pc;\n if (JS_IsUndefined(new_target)) {\n JS_ThrowTypeError(ctx, \"class constructors must be invoked with 'new'\");\n flow = Flow.EXCEPTION; break;\n }\n const sup = JS_GetPrototype(ctx, sf.cur_func);\n if (JS_IsException(sup)) { flow = Flow.EXCEPTION; break; }\n const ret = JS_CallConstructor2(ctx, sup, new_target, argv.slice(0, argc));\n if (JS_IsException(ret)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = ret;\n break;\n }\n case OP.check_brand: {\n const ret = JS_CheckBrand(ctx, stack[sp - 2], stack[sp - 1]);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n if (!ret) {\n JS_ThrowTypeError(ctx, 'invalid brand on object');\n flow = Flow.EXCEPTION; break;\n }\n break;\n }\n case OP.add_brand:\n if (JS_AddBrand(ctx, stack[sp - 2], stack[sp - 1]) < 0) { flow = Flow.EXCEPTION; break; }\n sp -= 2;\n break;\n\n case OP.throw:\n JS_Throw(ctx, stack[--sp]);\n flow = Flow.EXCEPTION;\n break;\n\n case OP.throw_error: {\n const atom = get_u32(buf, pc);\n const type = buf[pc + 4];\n pc += 5;\n if (type === JS_THROW_VAR_RO) JS_ThrowTypeErrorReadOnly(ctx, JS_PROP_THROW, atom);\n else if (type === JS_THROW_VAR_REDECL) JS_ThrowSyntaxErrorAtom(ctx, \"redeclaration of '%s'\", atom);\n else if (type === JS_THROW_VAR_UNINITIALIZED) JS_ThrowReferenceErrorUninitialized(ctx, atom);\n else if (type === JS_THROW_ERROR_DELETE_SUPER) JS_ThrowReferenceError(ctx, \"unsupported reference to 'super'\");\n else if (type === JS_THROW_ERROR_ITERATOR_THROW) JS_ThrowTypeError(ctx, 'iterator does not have a throw method');\n else JS_ThrowInternalError(ctx, 'invalid throw var type ' + type);\n flow = Flow.EXCEPTION;\n break;\n }\n\n case OP.eval: {\n const call_argc = get_u16(buf, pc);\n const scope_idx = get_u16(buf, pc + 2) + ARG_SCOPE_END;\n pc += 4;\n const call_argv = stack.slice(sp - call_argc, sp);\n sf.cur_pc = pc;\n const fn = stack[sp - call_argc - 1];\n if (fn !== undefined && fn === ctx.eval_obj) {\n const obj = call_argc >= 1 ? call_argv[0] : undefined;\n ret_val = JS_EvalObject(ctx, this_obj, obj,\n JS_EVAL_TYPE_DIRECT | ((sf.js_mode & JS_MODE_STRICT) ? JS_EVAL_FLAG_STRICT : 0), scope_idx);\n } else {\n ret_val = js_call_internal(ctx, fn, undefined, undefined, call_argv, 0, null);\n }\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n sp -= call_argc + 1;\n stack[sp++] = ret_val;\n break;\n }\n case OP.apply_eval: {\n const scope_idx = get_u16(buf, pc) + ARG_SCOPE_END;\n pc += 2;\n sf.cur_pc = pc;\n const tab = build_arg_list(ctx, stack[sp - 1]);\n if (!tab) { flow = Flow.EXCEPTION; break; }\n const fn = stack[sp - 2];\n if (fn !== undefined && fn === ctx.eval_obj) {\n const obj = tab.length >= 1 ? tab[0] : undefined;\n ret_val = JS_EvalObject(ctx, this_obj, obj,\n JS_EVAL_TYPE_DIRECT | ((sf.js_mode & JS_MODE_STRICT) ? JS_EVAL_FLAG_STRICT : 0), scope_idx);\n } else {\n ret_val = JS_Call(ctx, fn, undefined, tab);\n }\n if (JS_IsException(ret_val)) { flow = Flow.EXCEPTION; break; }\n sp -= 2;\n stack[sp++] = ret_val;\n break;\n }\n\n case OP.regexp: {\n sf.cur_pc = pc;\n if (!hooks.js_regexp_constructor_internal) {\n JS_ThrowInternalError(ctx, 'RegExp is not available');\n flow = Flow.EXCEPTION; break;\n }\n const v = hooks.js_regexp_constructor_internal(ctx, undefined, stack[sp - 2] as string, stack[sp - 1] as string);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = v;\n sp--;\n break;\n }\n\n case OP.get_super: {\n sf.cur_pc = pc;\n const proto = JS_GetPrototype(ctx, stack[sp - 1]);\n if (JS_IsException(proto)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = proto;\n break;\n }\n\n case OP.import: {\n sf.cur_pc = pc;\n if (hooks.js_dynamic_import === null) {\n JS_ThrowTypeError(ctx, 'dynamic import is not supported');\n flow = Flow.EXCEPTION;\n break;\n }\n const v = hooks.js_dynamic_import(ctx, b, stack[sp - 2], stack[sp - 1]);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n sp--;\n stack[sp - 1] = v;\n break;\n }\n\n case OP.check_var: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const ret = JS_CheckGlobalVar(ctx, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = ret !== 0;\n break;\n }\n case OP.get_var_undef:\n case OP.get_var: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const val = JS_GetGlobalVar(ctx, atom, opcode - OP.get_var_undef);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = val;\n break;\n }\n case OP.put_var:\n case OP.put_var_init: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const ret = JS_SetGlobalVar(ctx, atom, stack[sp - 1], opcode - OP.put_var);\n sp--;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.put_var_strict: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n /* stack[sp-2] is JS_TRUE or JS_FALSE */\n if (!stack[sp - 2]) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n const ret = JS_SetGlobalVar(ctx, atom, stack[sp - 1], 2);\n sp -= 2;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.check_define_var: {\n const atom = get_u32(buf, pc);\n const fl = buf[pc + 4];\n pc += 5;\n sf.cur_pc = pc;\n if (JS_CheckDefineGlobalVar(ctx, atom, fl)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_var: {\n const atom = get_u32(buf, pc);\n const fl = buf[pc + 4];\n pc += 5;\n sf.cur_pc = pc;\n if (JS_DefineGlobalVar(ctx, atom, fl) < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_func: {\n const atom = get_u32(buf, pc);\n const fl = buf[pc + 4];\n pc += 5;\n sf.cur_pc = pc;\n if (JS_DefineGlobalFunction(ctx, atom, stack[sp - 1], fl) < 0) { flow = Flow.EXCEPTION; break; }\n sp--;\n break;\n }\n\n case OP.get_loc: {\n const idx = get_u16(buf, pc);\n pc += 2;\n stack[sp++] = var_buf[idx];\n break;\n }\n case OP.put_loc: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_buf[idx] = stack[--sp];\n break;\n }\n case OP.set_loc: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_buf[idx] = stack[sp - 1];\n break;\n }\n case OP.get_arg: {\n const idx = get_u16(buf, pc);\n pc += 2;\n stack[sp++] = arg_buf[idx];\n break;\n }\n case OP.put_arg: {\n const idx = get_u16(buf, pc);\n pc += 2;\n arg_buf[idx] = stack[--sp];\n break;\n }\n case OP.set_arg: {\n const idx = get_u16(buf, pc);\n pc += 2;\n arg_buf[idx] = stack[sp - 1];\n break;\n }\n\n case OP.get_loc8: stack[sp++] = var_buf[buf[pc++]]; break;\n case OP.put_loc8: var_buf[buf[pc++]] = stack[--sp]; break;\n case OP.set_loc8: var_buf[buf[pc++]] = stack[sp - 1]; break;\n\n case OP.get_loc0: stack[sp++] = var_buf[0]; break;\n case OP.get_loc1: stack[sp++] = var_buf[1]; break;\n case OP.get_loc2: stack[sp++] = var_buf[2]; break;\n case OP.get_loc3: stack[sp++] = var_buf[3]; break;\n case OP.put_loc0: var_buf[0] = stack[--sp]; break;\n case OP.put_loc1: var_buf[1] = stack[--sp]; break;\n case OP.put_loc2: var_buf[2] = stack[--sp]; break;\n case OP.put_loc3: var_buf[3] = stack[--sp]; break;\n case OP.set_loc0: var_buf[0] = stack[sp - 1]; break;\n case OP.set_loc1: var_buf[1] = stack[sp - 1]; break;\n case OP.set_loc2: var_buf[2] = stack[sp - 1]; break;\n case OP.set_loc3: var_buf[3] = stack[sp - 1]; break;\n case OP.get_arg0: stack[sp++] = arg_buf[0]; break;\n case OP.get_arg1: stack[sp++] = arg_buf[1]; break;\n case OP.get_arg2: stack[sp++] = arg_buf[2]; break;\n case OP.get_arg3: stack[sp++] = arg_buf[3]; break;\n case OP.put_arg0: arg_buf[0] = stack[--sp]; break;\n case OP.put_arg1: arg_buf[1] = stack[--sp]; break;\n case OP.put_arg2: arg_buf[2] = stack[--sp]; break;\n case OP.put_arg3: arg_buf[3] = stack[--sp]; break;\n case OP.set_arg0: arg_buf[0] = stack[sp - 1]; break;\n case OP.set_arg1: arg_buf[1] = stack[sp - 1]; break;\n case OP.set_arg2: arg_buf[2] = stack[sp - 1]; break;\n case OP.set_arg3: arg_buf[3] = stack[sp - 1]; break;\n case OP.get_var_ref0: stack[sp++] = var_refs[0].get(); break;\n case OP.get_var_ref1: stack[sp++] = var_refs[1].get(); break;\n case OP.get_var_ref2: stack[sp++] = var_refs[2].get(); break;\n case OP.get_var_ref3: stack[sp++] = var_refs[3].get(); break;\n case OP.put_var_ref0: var_refs[0].set(stack[--sp]); break;\n case OP.put_var_ref1: var_refs[1].set(stack[--sp]); break;\n case OP.put_var_ref2: var_refs[2].set(stack[--sp]); break;\n case OP.put_var_ref3: var_refs[3].set(stack[--sp]); break;\n case OP.set_var_ref0: var_refs[0].set(stack[sp - 1]); break;\n case OP.set_var_ref1: var_refs[1].set(stack[sp - 1]); break;\n case OP.set_var_ref2: var_refs[2].set(stack[sp - 1]); break;\n case OP.set_var_ref3: var_refs[3].set(stack[sp - 1]); break;\n\n case OP.get_var_ref: {\n const idx = get_u16(buf, pc);\n pc += 2;\n stack[sp++] = var_refs[idx].get();\n break;\n }\n case OP.put_var_ref: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_refs[idx].set(stack[--sp]);\n break;\n }\n case OP.set_var_ref: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_refs[idx].set(stack[sp - 1]);\n break;\n }\n case OP.get_var_ref_check: {\n const idx = get_u16(buf, pc);\n pc += 2;\n const val = var_refs[idx].get();\n if (JS_IsUninitialized(val)) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, true);\n flow = Flow.EXCEPTION; break;\n }\n stack[sp++] = val;\n break;\n }\n case OP.put_var_ref_check: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (JS_IsUninitialized(var_refs[idx].get())) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, true);\n flow = Flow.EXCEPTION; break;\n }\n var_refs[idx].set(stack[--sp]);\n break;\n }\n case OP.put_var_ref_check_init: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (!JS_IsUninitialized(var_refs[idx].get())) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, true);\n flow = Flow.EXCEPTION; break;\n }\n var_refs[idx].set(stack[--sp]);\n break;\n }\n case OP.set_loc_uninitialized: {\n const idx = get_u16(buf, pc);\n pc += 2;\n var_buf[idx] = JS_UNINITIALIZED;\n break;\n }\n case OP.get_loc_check: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (JS_IsUninitialized(var_buf[idx])) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, false);\n flow = Flow.EXCEPTION; break;\n }\n stack[sp++] = var_buf[idx];\n break;\n }\n case OP.get_loc_checkthis: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (JS_IsUninitialized(var_buf[idx])) {\n JS_ThrowReferenceErrorUninitialized2(caller_ctx, b, idx, false);\n flow = Flow.EXCEPTION; break;\n }\n stack[sp++] = var_buf[idx];\n break;\n }\n case OP.put_loc_check: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (JS_IsUninitialized(var_buf[idx])) {\n JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, false);\n flow = Flow.EXCEPTION; break;\n }\n var_buf[idx] = stack[--sp];\n break;\n }\n case OP.put_loc_check_init: {\n const idx = get_u16(buf, pc);\n pc += 2;\n if (!JS_IsUninitialized(var_buf[idx])) {\n JS_ThrowReferenceError(ctx, \"'this' can be initialized only once\");\n flow = Flow.EXCEPTION; break;\n }\n var_buf[idx] = stack[--sp];\n break;\n }\n case OP.close_loc: {\n const idx = get_u16(buf, pc);\n pc += 2;\n close_lexical_var(ctx, sf, idx);\n break;\n }\n\n case OP.make_loc_ref:\n case OP.make_arg_ref:\n case OP.make_var_ref_ref: {\n const atom = get_u32(buf, pc);\n const idx = get_u16(buf, pc + 4);\n pc += 6;\n /* internal reference object (never visible to guest code): an\n accessor property aliasing the variable */\n const obj: object = Object.create(null);\n let var_ref: JSVarRef;\n if (opcode === OP.make_var_ref_ref) var_ref = var_refs[idx];\n else var_ref = get_var_ref(ctx, sf, idx, opcode === OP.make_arg_ref);\n Reflect.defineProperty(obj, JS_AtomToKey(ctx, atom), {\n get: () => var_ref.get(), set: (v: JSValue) => { var_ref.set(v); }, enumerable: true, configurable: true,\n });\n stack[sp++] = obj;\n stack[sp++] = JS_AtomToValue(ctx, atom);\n break;\n }\n case OP.make_var_ref: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const r = JS_GetGlobalVarRef(ctx, atom);\n if (!r) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = r[0];\n stack[sp++] = r[1];\n break;\n }\n\n case OP.goto: {\n const diff = get_i32(buf, pc);\n pc += diff;\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n break;\n }\n case OP.goto16: {\n const diff = get_i16(buf, pc);\n pc += diff;\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n break;\n }\n case OP.goto8: {\n const diff = get_i8(buf, pc);\n pc += diff;\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n break;\n }\n case OP.if_true: {\n const op1 = stack[--sp];\n pc += 4;\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n if (res) {\n const diff = get_i32(buf, pc - 4) - 4;\n pc += diff;\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n }\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.if_false: {\n const op1 = stack[--sp];\n pc += 4;\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n if (!res) {\n const diff = get_i32(buf, pc - 4) - 4;\n pc += diff;\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n }\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.if_true8: {\n const op1 = stack[--sp];\n pc += 1;\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n if (res) {\n const diff = get_i8(buf, pc - 1) - 1;\n pc += diff;\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n }\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.if_false8: {\n const op1 = stack[--sp];\n pc += 1;\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n if (!res) {\n const diff = get_i8(buf, pc - 1) - 1;\n pc += diff;\n if (diff < 0 && jit_hooks.osr !== null && ++b.loop_count >= jit_osr_threshold && gen_state === null) {\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n const r = jit_hooks.osr(ctx, func_obj, b, sf, pc, sp);\n if (r !== JIT_NOT_COMPILED) { ret_val = r; flow = Flow.DONE; break main; }\n }\n }\n if (js_poll_interrupts(ctx)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.catch: {\n const diff = get_i32(buf, pc);\n stack[sp++] = JS_NewCatchOffset(pc + diff);\n pc += 4;\n break;\n }\n case OP.gosub: {\n const diff = get_i32(buf, pc);\n stack[sp++] = pc + 4;\n pc += diff;\n break;\n }\n case OP.ret: {\n const op1 = stack[sp - 1];\n if (typeof op1 !== 'number' || !Number.isInteger(op1) || op1 < 0 || op1 >= b.byte_code_len) {\n JS_ThrowInternalError(ctx, 'invalid ret value');\n flow = Flow.EXCEPTION; break;\n }\n sp--;\n pc = op1;\n break;\n }\n\n case OP.for_in_start: {\n sf.cur_pc = pc;\n const v = build_for_in_iterator(ctx, stack[sp - 1]);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = v;\n break;\n }\n case OP.for_in_next: {\n sf.cur_pc = pc;\n const pdone = { done: 0 };\n const v = js_for_in_next(ctx, stack[sp - 1], pdone);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = v;\n stack[sp++] = pdone.done !== 0;\n break;\n }\n case OP.for_of_start:\n sf.cur_pc = pc;\n if (js_for_of_start(ctx, stack, sp, false)) { flow = Flow.EXCEPTION; break; }\n sp += 1;\n stack[sp++] = JS_NewCatchOffset(0);\n break;\n case OP.for_of_next: {\n const offset = -3 - buf[pc];\n pc += 1;\n sf.cur_pc = pc;\n if (js_for_of_next(ctx, stack, sp, offset)) { flow = Flow.EXCEPTION; break; }\n sp += 2;\n break;\n }\n case OP.for_await_of_next:\n sf.cur_pc = pc;\n if (js_for_await_of_next(ctx, stack, sp)) { flow = Flow.EXCEPTION; break; }\n sp++;\n break;\n case OP.for_await_of_start:\n sf.cur_pc = pc;\n if (js_for_of_start(ctx, stack, sp, true)) { flow = Flow.EXCEPTION; break; }\n sp += 1;\n stack[sp++] = JS_NewCatchOffset(0);\n break;\n case OP.iterator_get_value_done:\n sf.cur_pc = pc;\n if (js_iterator_get_value_done(ctx, stack, sp)) { flow = Flow.EXCEPTION; break; }\n sp += 1;\n break;\n case OP.iterator_check_object:\n if (!JS_IsObject(stack[sp - 1])) {\n JS_ThrowTypeError(ctx, 'iterator must return an object');\n flow = Flow.EXCEPTION; break;\n }\n break;\n case OP.iterator_close:\n /* iter_obj next catch_offset -> */\n sp--; /* drop the catch offset to avoid getting caught by exception */\n sp--; /* drop the next method */\n if (!JS_IsUndefined(stack[sp - 1])) {\n sf.cur_pc = pc;\n if (JS_IteratorClose(ctx, stack[sp - 1], false)) { flow = Flow.EXCEPTION; break; }\n }\n sp--;\n break;\n case OP.nip_catch: {\n /* catch_offset ... ret_val -> ret_eval */\n const rv = stack[--sp];\n while (sp > 0 && !JS_IsCatchOffset(stack[sp - 1])) sp--;\n if (sp === 0) {\n JS_ThrowInternalError(ctx, 'nip_catch');\n flow = Flow.EXCEPTION; break;\n }\n stack[sp - 1] = rv;\n break;\n }\n case OP.iterator_next: {\n /* stack: iter_obj next catch_offset val */\n sf.cur_pc = pc;\n const ret = JS_Call(ctx, stack[sp - 3], stack[sp - 4], [stack[sp - 1]]);\n if (JS_IsException(ret)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = ret;\n break;\n }\n case OP.iterator_call: {\n /* stack: iter_obj next catch_offset val */\n const fl = buf[pc++];\n sf.cur_pc = pc;\n const method = JS_GetProperty(ctx, stack[sp - 4], (fl & 1) ? JS_ATOM_throw : JS_ATOM_return);\n if (JS_IsException(method)) { flow = Flow.EXCEPTION; break; }\n let ret_flag: boolean;\n if (method === undefined || method === null) {\n ret_flag = true;\n } else {\n let ret: JSValue;\n if (fl & 2) ret = JS_CallFree(ctx, method, stack[sp - 4], []);\n else ret = JS_CallFree(ctx, method, stack[sp - 4], [stack[sp - 1]]);\n if (JS_IsException(ret)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = ret;\n ret_flag = false;\n }\n stack[sp++] = ret_flag;\n break;\n }\n\n case OP.lnot: {\n const op1 = stack[sp - 1];\n const res = typeof op1 === 'boolean' ? op1 : JS_ToBoolFree(ctx, op1);\n stack[sp - 1] = !res;\n break;\n }\n\n case OP.get_field: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const val = JS_GetProperty(ctx, stack[sp - 1], atom);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = val;\n break;\n }\n case OP.get_field2: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const val = JS_GetProperty(ctx, stack[sp - 1], atom);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = val;\n break;\n }\n case OP.put_field: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const ret = JS_SetPropertyInternal(ctx, stack[sp - 2], atom, stack[sp - 1], stack[sp - 2], JS_PROP_THROW_STRICT);\n sp -= 2;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n\n case OP.private_symbol: {\n const atom = get_u32(buf, pc);\n pc += 4;\n stack[sp++] = JS_NewSymbolFromAtom(ctx, atom, JS_ATOM_TYPE_PRIVATE);\n break;\n }\n case OP.get_private_field: {\n const val = JS_GetPrivateField(ctx, stack[sp - 2], stack[sp - 1]);\n stack[sp - 2] = val;\n sp--;\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.put_private_field: {\n /* obj value prop -> */\n const ret = JS_SetPrivateField(ctx, stack[sp - 3], stack[sp - 1], stack[sp - 2]);\n sp -= 3;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_private_field: {\n /* obj prop value -> obj */\n const ret = JS_DefinePrivateField(ctx, stack[sp - 3], stack[sp - 2], stack[sp - 1]);\n sp -= 2;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_field: {\n const atom = get_u32(buf, pc);\n pc += 4;\n const ret = JS_DefinePropertyValue(ctx, stack[sp - 2], atom, stack[sp - 1], JS_PROP_C_W_E | JS_PROP_THROW);\n sp--;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.set_name: {\n const atom = get_u32(buf, pc);\n pc += 4;\n if (JS_DefineObjectName(ctx, stack[sp - 1], atom, JS_PROP_CONFIGURABLE) < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.set_name_computed:\n if (JS_DefineObjectNameComputed(ctx, stack[sp - 1], stack[sp - 2], JS_PROP_CONFIGURABLE) < 0) { flow = Flow.EXCEPTION; break; }\n break;\n case OP.set_proto: {\n sf.cur_pc = pc;\n const proto = stack[sp - 1];\n if (JS_IsObject(proto) || proto === null) {\n if (JS_SetPrototypeInternal(ctx, stack[sp - 2], proto, true) < 0) { flow = Flow.EXCEPTION; break; }\n }\n sp--;\n break;\n }\n case OP.set_home_object:\n js_method_set_home_object(ctx, stack[sp - 1], stack[sp - 2]);\n break;\n case OP.define_method:\n case OP.define_method_computed: {\n const is_computed = (opcode === OP.define_method_computed);\n let atom: JSAtom;\n if (is_computed) {\n atom = JS_ValueToAtom(ctx, stack[sp - 2]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n } else {\n atom = get_u32(buf, pc);\n pc += 4;\n }\n let op_flags = buf[pc++];\n const obj = stack[sp - 2 - (is_computed ? 1 : 0)];\n let fl = JS_PROP_HAS_CONFIGURABLE | JS_PROP_CONFIGURABLE | JS_PROP_HAS_ENUMERABLE | JS_PROP_THROW;\n if (op_flags & OP_DEFINE_METHOD_ENUMERABLE) fl |= JS_PROP_ENUMERABLE;\n op_flags &= 3;\n let value: JSValue = undefined, getter: JSValue = undefined, setter: JSValue = undefined;\n if (op_flags === OP_DEFINE_METHOD_METHOD) {\n value = stack[sp - 1];\n fl |= JS_PROP_HAS_VALUE | JS_PROP_HAS_WRITABLE | JS_PROP_WRITABLE;\n } else if (op_flags === OP_DEFINE_METHOD_GETTER) {\n getter = stack[sp - 1];\n fl |= JS_PROP_HAS_GET;\n } else {\n setter = stack[sp - 1];\n fl |= JS_PROP_HAS_SET;\n }\n let ret = js_method_set_properties(ctx, stack[sp - 1], atom, fl, obj);\n if (ret >= 0) ret = JS_DefineProperty(ctx, obj, atom, value, getter, setter, fl);\n sp -= 1 + (is_computed ? 1 : 0);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_class:\n case OP.define_class_computed: {\n const atom = get_u32(buf, pc);\n const class_flags = buf[pc + 4];\n pc += 5;\n sf.cur_pc = pc;\n if (js_op_define_class(ctx, stack, sp, atom, class_flags, var_refs, sf, opcode === OP.define_class_computed) < 0) {\n flow = Flow.EXCEPTION; break;\n }\n break;\n }\n\n case OP.get_array_el: {\n sf.cur_pc = pc;\n const val = JS_GetPropertyValue(ctx, stack[sp - 2], stack[sp - 1]);\n stack[sp - 2] = val;\n sp--;\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.get_array_el2: {\n sf.cur_pc = pc;\n const val = JS_GetPropertyValue(ctx, stack[sp - 2], stack[sp - 1]);\n stack[sp - 1] = val;\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.get_ref_value: {\n sf.cur_pc = pc;\n const atom = JS_ValueToAtom(ctx, stack[sp - 1]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n if (JS_IsUndefined(stack[sp - 2])) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n const ret = JS_HasProperty(ctx, stack[sp - 2], atom);\n let val: JSValue;\n if (ret <= 0) {\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n if (is_strict_mode(ctx)) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n val = undefined;\n } else {\n val = JS_GetProperty(ctx, stack[sp - 2], atom);\n }\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = val;\n break;\n }\n case OP.get_super_value: {\n /* this obj prop -> value */\n sf.cur_pc = pc;\n const atom = JS_ValueToAtom(ctx, stack[sp - 1]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n const val = JS_GetPropertyInternal(ctx, stack[sp - 2], atom, stack[sp - 3], false);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 3] = val;\n sp -= 2;\n break;\n }\n case OP.put_array_el: {\n sf.cur_pc = pc;\n const ret = JS_SetPropertyValue(ctx, stack[sp - 3], stack[sp - 2], stack[sp - 1], JS_PROP_THROW_STRICT);\n sp -= 3;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.put_ref_value: {\n sf.cur_pc = pc;\n const atom = JS_ValueToAtom(ctx, stack[sp - 2]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n if (JS_IsUndefined(stack[sp - 3])) {\n if (is_strict_mode(ctx)) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n stack[sp - 3] = ctx.global_obj;\n }\n const ret = JS_HasProperty(ctx, stack[sp - 3], atom);\n if (ret <= 0) {\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n if (is_strict_mode(ctx)) {\n JS_ThrowReferenceErrorNotDefined(ctx, atom);\n flow = Flow.EXCEPTION; break;\n }\n }\n const r2 = JS_SetPropertyInternal(ctx, stack[sp - 3], atom, stack[sp - 1], stack[sp - 3], JS_PROP_THROW_STRICT);\n sp -= 3;\n if (r2 < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.put_super_value: {\n /* this obj prop value -> */\n sf.cur_pc = pc;\n if (!JS_IsObject(stack[sp - 3])) {\n JS_ThrowTypeErrorNotAnObject(ctx);\n flow = Flow.EXCEPTION; break;\n }\n const atom = JS_ValueToAtom(ctx, stack[sp - 2]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n const ret = JS_SetPropertyInternal(ctx, stack[sp - 3], atom, stack[sp - 1], stack[sp - 4], JS_PROP_THROW_STRICT);\n sp -= 4;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.define_array_el: {\n const ret = JS_DefinePropertyValueValue(ctx, stack[sp - 3], stack[sp - 2], stack[sp - 1], JS_PROP_C_W_E | JS_PROP_THROW);\n sp -= 1;\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n break;\n }\n case OP.append: /* array pos enumobj -- array pos */\n sf.cur_pc = pc;\n if (js_append_enumerate(ctx, stack, sp)) { flow = Flow.EXCEPTION; break; }\n sp--;\n break;\n case OP.copy_data_properties: { /* target source excludeList */\n /* stack offsets (-1 based): 2 bits for target, 3 bits for source, 2 bits for exclusionList */\n const mask = buf[pc++];\n sf.cur_pc = pc;\n if (JS_CopyDataProperties(ctx, stack[sp - 1 - (mask & 3)], stack[sp - 1 - ((mask >> 2) & 7)],\n stack[sp - 1 - ((mask >> 5) & 7)], false)) {\n flow = Flow.EXCEPTION; break;\n }\n break;\n }\n\n case OP.add: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n if (typeof op1 === 'number' && typeof op2 === 'number') {\n stack[sp - 2] = op1 + op2;\n sp--;\n } else if (typeof op1 === 'string' && typeof op2 === 'string') {\n stack[sp - 2] = op1 + op2;\n sp--;\n } else {\n sf.cur_pc = pc;\n const r = js_add_slow(ctx, op1, op2);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r;\n sp--;\n }\n break;\n }\n case OP.add_loc: {\n const idx = buf[pc++];\n const op2 = stack[sp - 1];\n const pv = var_buf[idx];\n if (typeof pv === 'number' && typeof op2 === 'number') {\n var_buf[idx] = pv + op2;\n sp--;\n } else if (typeof pv === 'string' && typeof op2 === 'string') {\n var_buf[idx] = pv + op2;\n sp--;\n } else {\n sf.cur_pc = pc;\n sp--;\n const r = js_add_slow(ctx, pv, op2);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n var_buf[idx] = r;\n }\n break;\n }\n case OP.sub: case OP.mul: case OP.div: case OP.mod: case OP.pow: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n if (typeof op1 === 'number' && typeof op2 === 'number') {\n let r: number;\n switch (opcode) {\n case OP.sub: r = op1 - op2; break;\n case OP.mul: r = op1 * op2; break;\n case OP.div: r = op1 / op2; break;\n case OP.mod: r = op1 % op2; break;\n default: r = Math.pow(op1, op2); break;\n }\n stack[sp - 2] = r;\n sp--;\n } else {\n sf.cur_pc = pc;\n let aop: JSArithOp;\n switch (opcode) {\n case OP.sub: aop = JSArithOp.SUB; break;\n case OP.mul: aop = JSArithOp.MUL; break;\n case OP.div: aop = JSArithOp.DIV; break;\n case OP.mod: aop = JSArithOp.MOD; break;\n default: aop = JSArithOp.POW; break;\n }\n const r = js_binary_arith_slow(ctx, aop, op1, op2);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r;\n sp--;\n }\n break;\n }\n case OP.plus: {\n const op1 = stack[sp - 1];\n if (typeof op1 !== 'number') {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.PLUS, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.neg: {\n const op1 = stack[sp - 1];\n if (typeof op1 === 'number') {\n stack[sp - 1] = -op1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.NEG, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.inc: {\n const op1 = stack[sp - 1];\n if (typeof op1 === 'number') {\n stack[sp - 1] = op1 + 1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.INC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.dec: {\n const op1 = stack[sp - 1];\n if (typeof op1 === 'number') {\n stack[sp - 1] = op1 - 1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.DEC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.post_inc:\n case OP.post_dec: {\n sf.cur_pc = pc;\n const op1 = JS_ToNumericFree(ctx, stack[sp - 1]);\n if (JS_IsException(op1)) { stack[sp - 1] = undefined; flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = op1;\n const r = js_unary_arith_slow(ctx, opcode === OP.post_inc ? JSUnaryOp.INC : JSUnaryOp.DEC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = r;\n break;\n }\n case OP.inc_loc: {\n const idx = buf[pc++];\n const op1 = var_buf[idx];\n if (typeof op1 === 'number') {\n var_buf[idx] = op1 + 1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.INC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n var_buf[idx] = r;\n }\n break;\n }\n case OP.dec_loc: {\n const idx = buf[pc++];\n const op1 = var_buf[idx];\n if (typeof op1 === 'number') {\n var_buf[idx] = op1 - 1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.DEC, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n var_buf[idx] = r;\n }\n break;\n }\n case OP.not: {\n const op1 = stack[sp - 1];\n if (typeof op1 === 'number') {\n stack[sp - 1] = ~op1;\n } else {\n sf.cur_pc = pc;\n const r = js_unary_arith_slow(ctx, JSUnaryOp.NOT, op1);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.shl: case OP.sar: case OP.shr: case OP.and: case OP.or: case OP.xor: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n if (typeof op1 === 'number' && typeof op2 === 'number') {\n let r: number;\n switch (opcode) {\n case OP.shl: r = op1 << op2; break;\n case OP.sar: r = op1 >> op2; break;\n case OP.shr: r = op1 >>> op2; break;\n case OP.and: r = op1 & op2; break;\n case OP.or: r = op1 | op2; break;\n default: r = op1 ^ op2; break;\n }\n stack[sp - 2] = r;\n sp--;\n } else {\n sf.cur_pc = pc;\n let aop: JSArithOp;\n switch (opcode) {\n case OP.shl: aop = JSArithOp.SHL; break;\n case OP.sar: aop = JSArithOp.SAR; break;\n case OP.shr: aop = JSArithOp.SHR; break;\n case OP.and: aop = JSArithOp.AND; break;\n case OP.or: aop = JSArithOp.OR; break;\n default: aop = JSArithOp.XOR; break;\n }\n const r = js_binary_arith_slow(ctx, aop, op1, op2);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r;\n sp--;\n }\n break;\n }\n\n case OP.lt: case OP.lte: case OP.gt: case OP.gte: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n if (typeof op1 === 'number' && typeof op2 === 'number') {\n let r: boolean;\n switch (opcode) {\n case OP.lt: r = op1 < op2; break;\n case OP.lte: r = op1 <= op2; break;\n case OP.gt: r = op1 > op2; break;\n default: r = op1 >= op2; break;\n }\n stack[sp - 2] = r;\n sp--;\n } else {\n sf.cur_pc = pc;\n let rop: JSRelOp;\n switch (opcode) {\n case OP.lt: rop = JSRelOp.LT; break;\n case OP.lte: rop = JSRelOp.LTE; break;\n case OP.gt: rop = JSRelOp.GT; break;\n default: rop = JSRelOp.GTE; break;\n }\n const r = js_relational_op(ctx, rop, op1, op2);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n }\n break;\n }\n case OP.eq: case OP.neq: {\n const op1 = stack[sp - 2], op2 = stack[sp - 1];\n let r: number;\n if (typeof op1 === typeof op2 && typeof op1 !== 'object') {\n r = op1 === op2 ? 1 : 0;\n } else {\n sf.cur_pc = pc;\n r = js_loose_eq(ctx, op1, op2);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n }\n stack[sp - 2] = opcode === OP.eq ? r !== 0 : r === 0;\n sp--;\n break;\n }\n case OP.strict_eq: case OP.strict_neq: {\n const r = js_strict_eq2(ctx, stack[sp - 2], stack[sp - 1], JSStrictEqMode.STRICT);\n stack[sp - 2] = opcode === OP.strict_eq ? r : !r;\n sp--;\n break;\n }\n case OP.in: {\n sf.cur_pc = pc;\n const r = js_operator_in(ctx, stack[sp - 2], stack[sp - 1]);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n break;\n }\n case OP.private_in: {\n sf.cur_pc = pc;\n const r = js_operator_private_in(ctx, stack[sp - 2], stack[sp - 1]);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n break;\n }\n case OP.instanceof: {\n sf.cur_pc = pc;\n const r = JS_IsInstanceOf(ctx, stack[sp - 2], stack[sp - 1]);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n break;\n }\n case OP.typeof:\n stack[sp - 1] = JS_AtomToString(ctx, js_operator_typeof(ctx, stack[sp - 1]));\n break;\n case OP.delete: {\n sf.cur_pc = pc;\n const atom = JS_ValueToAtom(ctx, stack[sp - 1]);\n if (atom === JS_ATOM_NULL) { flow = Flow.EXCEPTION; break; }\n const r = JS_DeleteProperty(ctx, stack[sp - 2], atom, JS_PROP_THROW_STRICT);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp - 2] = r !== 0;\n sp--;\n break;\n }\n case OP.delete_var: {\n const atom = get_u32(buf, pc);\n pc += 4;\n sf.cur_pc = pc;\n const r = JS_DeleteProperty(ctx, ctx.global_obj, atom, 0);\n if (r < 0) { flow = Flow.EXCEPTION; break; }\n stack[sp++] = r !== 0;\n break;\n }\n\n case OP.to_object:\n if (!JS_IsObject(stack[sp - 1])) {\n sf.cur_pc = pc;\n const v = JS_ToObject(ctx, stack[sp - 1]);\n if (JS_IsException(v)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = v;\n }\n break;\n case OP.to_propkey: {\n const v = stack[sp - 1];\n if (!(typeof v === 'number' && Number.isInteger(v)) && typeof v !== 'string' && typeof v !== 'symbol') {\n sf.cur_pc = pc;\n const r = JS_ToPropertyKey(ctx, v);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n case OP.to_propkey2: {\n /* must be tested first */\n if (stack[sp - 2] === undefined || stack[sp - 2] === null) {\n JS_ThrowTypeError(ctx, 'value has no property');\n flow = Flow.EXCEPTION; break;\n }\n const v = stack[sp - 1];\n if (!(typeof v === 'number' && Number.isInteger(v)) && typeof v !== 'string' && typeof v !== 'symbol') {\n sf.cur_pc = pc;\n const r = JS_ToPropertyKey(ctx, v);\n if (JS_IsException(r)) { flow = Flow.EXCEPTION; break; }\n stack[sp - 1] = r;\n }\n break;\n }\n\n case OP.with_get_var:\n case OP.with_put_var:\n case OP.with_delete_var:\n case OP.with_make_ref:\n case OP.with_get_ref: {\n const atom = get_u32(buf, pc);\n const diff = get_i32(buf, pc + 4);\n const is_with = buf[pc + 8];\n pc += 9;\n sf.cur_pc = pc;\n const obj = stack[sp - 1];\n let ret = JS_HasProperty(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n let no_with = !ret;\n if (ret && is_with) {\n ret = js_has_unscopable(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break; }\n if (ret) no_with = true;\n }\n if (!no_with) {\n switch (opcode) {\n case OP.with_get_var: {\n /* in Object Environment Records, GetBindingValue() calls HasProperty() */\n ret = JS_HasProperty(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n let val: JSValue;\n if (!ret) {\n if (is_strict_mode(ctx)) { JS_ThrowReferenceErrorNotDefined(ctx, atom); flow = Flow.EXCEPTION; break sw; }\n val = undefined;\n } else {\n val = JS_GetProperty(ctx, obj, atom);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break sw; }\n }\n stack[sp - 1] = val;\n break;\n }\n case OP.with_put_var: {\n ret = JS_HasProperty(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n if (!ret && is_strict_mode(ctx)) { JS_ThrowReferenceErrorNotDefined(ctx, atom); flow = Flow.EXCEPTION; break sw; }\n ret = JS_SetPropertyInternal(ctx, obj, atom, stack[sp - 2], obj, JS_PROP_THROW_STRICT);\n sp -= 2;\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n break;\n }\n case OP.with_delete_var: {\n ret = JS_DeleteProperty(ctx, obj, atom, 0);\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n stack[sp - 1] = ret !== 0;\n break;\n }\n case OP.with_make_ref:\n /* produce a pair object/propname on the stack */\n stack[sp++] = JS_AtomToValue(ctx, atom);\n break;\n case OP.with_get_ref: {\n /* produce a pair object/method on the stack */\n ret = JS_HasProperty(ctx, obj, atom);\n if (ret < 0) { flow = Flow.EXCEPTION; break sw; }\n let val: JSValue;\n if (!ret) {\n val = undefined;\n } else {\n val = JS_GetProperty(ctx, obj, atom);\n if (JS_IsException(val)) { flow = Flow.EXCEPTION; break sw; }\n }\n stack[sp++] = val;\n break;\n }\n }\n pc += diff - 5;\n } else {\n /* if not jumping, drop the object argument */\n sp--;\n }\n break;\n }\n\n case OP.await:\n ret_val = FUNC_RET_AWAIT;\n flow = Flow.DONE_GENERATOR;\n break main;\n case OP.yield:\n ret_val = FUNC_RET_YIELD;\n flow = Flow.DONE_GENERATOR;\n break main;\n case OP.yield_star:\n case OP.async_yield_star:\n ret_val = FUNC_RET_YIELD_STAR;\n flow = Flow.DONE_GENERATOR;\n break main;\n case OP.return_async:\n ret_val = undefined;\n flow = Flow.DONE_GENERATOR;\n break main;\n case OP.initial_yield:\n ret_val = FUNC_RET_INITIAL_YIELD;\n flow = Flow.DONE_GENERATOR;\n break main;\n\n case OP.nop:\n break;\n case OP.is_undefined_or_null:\n stack[sp - 1] = (stack[sp - 1] === undefined || stack[sp - 1] === null);\n break;\n case OP.is_undefined:\n stack[sp - 1] = (stack[sp - 1] === undefined);\n break;\n case OP.is_null:\n stack[sp - 1] = (stack[sp - 1] === null);\n break;\n case OP.typeof_is_undefined:\n /* different from OP_is_undefined because of isHTMLDDA */\n stack[sp - 1] = (js_operator_typeof(ctx, stack[sp - 1]) === JS_ATOM_undefined);\n break;\n case OP.typeof_is_function:\n stack[sp - 1] = (js_operator_typeof(ctx, stack[sp - 1]) === JS_ATOM_function);\n break;\n\n case OP.invalid:\n default:\n JS_ThrowInternalError(ctx, `invalid opcode: pc=${pc - 1} opcode=0x${opcode.toString(16).padStart(2, '0')}`);\n flow = Flow.EXCEPTION;\n break;\n }\n }\n break outer;\n } catch (e) {\n js_host_exception_to_guest(ctx, e);\n flow = Flow.EXCEPTION;\n }\n }\n\n /* done / done_generator */\n if (flow === Flow.DONE_GENERATOR || (flow === Flow.DONE && b.func_kind !== JSFunctionKind.NORMAL)) {\n /* the local variables are kept by the generator state */\n sf.cur_pc = pc;\n sf.cur_sp = sp;\n } else {\n if (sf.var_refs.length !== 0) {\n /* variable references reference the stack: must close them */\n close_var_refs(rt, sf);\n }\n }\n rt.current_stack_frame = sf.prev_frame;\n rt.stack_depth--;\n return ret_val;\n}\n\n/* ---------------------------------------------------------------------\n JSAsyncFunctionState (used by generator and async functions)\n --------------------------------------------------------------------- */\n\nexport function async_func_init(ctx: JSContext, func_obj: JSValue, this_obj: JSValue, argv: JSValue[]): JSAsyncFunctionState {\n const s = new JSAsyncFunctionState();\n const sf = s.frame;\n const b = JS_GetFunctionData(func_obj)!.function_bytecode;\n const argc = argv.length;\n sf.js_mode = b.js_mode | JS_MODE_ASYNC;\n sf.cur_pc = 0;\n const arg_buf_len = Math.max(b.arg_count, argc);\n sf.arg_buf = new Array(arg_buf_len);\n for (let i = 0; i < argc; i++) sf.arg_buf[i] = argv[i];\n for (let i = argc; i < arg_buf_len; i++) sf.arg_buf[i] = undefined;\n sf.var_buf = new Array(b.var_count);\n for (let i = 0; i < b.var_count; i++) sf.var_buf[i] = undefined;\n sf.stack_buf = new Array(b.stack_size);\n sf.cur_func = func_obj;\n sf.this_obj = this_obj;\n sf.new_target = undefined;\n sf.arg_count = arg_buf_len;\n sf.cur_sp = 0;\n s.func_obj = func_obj;\n s.this_val = this_obj;\n s.argc = argc;\n s.resolving_funcs = [undefined, undefined];\n s.is_completed = false;\n return s;\n}\n\n/* resume the execution; returns FUNC_RET_xxx (number) when suspended,\n the return value when the function completed normally, or JS_EXCEPTION */\nexport function async_func_resume(ctx: JSContext, s: JSAsyncFunctionState): JSValue {\n const rt = ctx.rt;\n const sf = s.frame;\n let ret: JSValue;\n if (s.is_completed) return JS_ThrowInternalError(ctx, 'async function already completed');\n if (rt.stack_depth >= rt.max_stack_depth) {\n ret = JS_ThrowStackOverflow(ctx);\n } else {\n ret = js_call_internal(ctx, s.func_obj, s.this_val, undefined, [], JS_CALL_FLAG_GENERATOR, s);\n }\n if (JS_IsException(ret) || JS_IsUndefined(ret)) {\n if (JS_IsUndefined(ret)) {\n /* OP_return_async: the return value is at the top of the stack */\n ret = sf.stack_buf[sf.cur_sp - 1];\n sf.stack_buf[sf.cur_sp - 1] = undefined;\n }\n /* end of execution */\n s.is_completed = true;\n /* close the closure variables. */\n close_var_refs(rt, sf);\n sf.stack_buf = [];\n }\n return ret;\n}\n\n/* ---------------------------------------------------------------------\n Generators\n --------------------------------------------------------------------- */\n\nfunction free_generator_stack(ctx: JSContext, s: JSGeneratorData): void {\n if (s.state === JSGeneratorState.COMPLETED) return;\n s.func_state = null;\n s.state = JSGeneratorState.COMPLETED;\n}\n\nexport function js_generator_next(ctx: JSContext, this_val: JSValue, argv: JSValue[], pdone: { done: number },\n magic: number): JSValue {\n const s = JS_GetOpaque(this_val, JSClassID.GENERATOR) as JSGeneratorData | null;\n pdone.done = 1;\n if (!s) return JS_ThrowTypeError(ctx, 'not a generator');\n let ret: JSValue;\n switch (s.state) {\n default:\n case JSGeneratorState.SUSPENDED_START:\n if (magic !== GEN_MAGIC_NEXT) {\n free_generator_stack(ctx, s);\n return generator_done(ctx, argv, magic);\n }\n s.func_state!.throw_flag = false;\n return generator_exec(ctx, s, pdone);\n case JSGeneratorState.SUSPENDED_YIELD_STAR:\n case JSGeneratorState.SUSPENDED_YIELD: {\n const sf = s.func_state!.frame;\n /* cur_sp[-1] was set to JS_UNDEFINED in the previous call */\n ret = argv[0];\n if (magic === GEN_MAGIC_THROW && s.state === JSGeneratorState.SUSPENDED_YIELD) {\n JS_Throw(ctx, ret);\n s.func_state!.throw_flag = true;\n } else {\n sf.stack_buf[sf.cur_sp - 1] = ret;\n sf.stack_buf[sf.cur_sp] = magic;\n sf.cur_sp++;\n s.func_state!.throw_flag = false;\n }\n return generator_exec(ctx, s, pdone);\n }\n case JSGeneratorState.COMPLETED:\n return generator_done(ctx, argv, magic);\n case JSGeneratorState.EXECUTING:\n return JS_ThrowTypeError(ctx, 'cannot invoke a running generator');\n }\n}\n\nfunction generator_done(ctx: JSContext, argv: JSValue[], magic: number): JSValue {\n /* execution is finished */\n switch (magic) {\n default:\n case GEN_MAGIC_NEXT: return undefined;\n case GEN_MAGIC_RETURN: return argv[0];\n case GEN_MAGIC_THROW: return JS_Throw(ctx, argv[0]);\n }\n}\n\nfunction generator_exec(ctx: JSContext, s: JSGeneratorData, pdone: { done: number }): JSValue {\n const fs = s.func_state!;\n const sf = fs.frame;\n s.state = JSGeneratorState.EXECUTING;\n const func_ret = async_func_resume(ctx, fs);\n s.state = JSGeneratorState.SUSPENDED_YIELD;\n if (fs.is_completed) {\n /* finalize the execution in case of exception or normal return */\n free_generator_stack(ctx, s);\n return func_ret;\n }\n /* get the returned yield value at the top of the stack */\n const ret = sf.stack_buf[sf.cur_sp - 1];\n sf.stack_buf[sf.cur_sp - 1] = undefined;\n if (func_ret === FUNC_RET_YIELD_STAR) {\n s.state = JSGeneratorState.SUSPENDED_YIELD_STAR;\n /* return (value, done) object */\n pdone.done = 2;\n } else {\n pdone.done = 0;\n }\n return ret;\n}\n\nexport function js_generator_function_call(ctx: JSContext, func_obj: JSValue, this_obj: JSValue,\n argv: JSValue[], flags: number): JSValue {\n const s = new JSGeneratorData();\n s.state = JSGeneratorState.SUSPENDED_START;\n s.func_state = async_func_init(ctx, func_obj, this_obj, argv);\n /* execute the function up to 'OP_initial_yield' */\n const func_ret = async_func_resume(ctx, s.func_state);\n if (JS_IsException(func_ret)) {\n free_generator_stack(ctx, s);\n return JS_EXCEPTION;\n }\n const obj = js_create_from_ctor(ctx, func_obj, JSClassID.GENERATOR);\n if (JS_IsException(obj)) {\n free_generator_stack(ctx, s);\n return JS_EXCEPTION;\n }\n JS_SetOpaque(obj, s);\n return obj;\n}\n\nexport const js_generator_proto_funcs: JSCFunctionListEntry[] = [\n JS_ITERATOR_NEXT_DEF('next', 1, js_generator_next, GEN_MAGIC_NEXT),\n JS_ITERATOR_NEXT_DEF('return', 1, js_generator_next, GEN_MAGIC_RETURN),\n JS_ITERATOR_NEXT_DEF('throw', 1, js_generator_next, GEN_MAGIC_THROW),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'Generator', JS_PROP_CONFIGURABLE),\n];\n\nexport const js_generator_function_proto_funcs: JSCFunctionListEntry[] = [\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'GeneratorFunction', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n Async functions\n --------------------------------------------------------------------- */\n\nfunction js_async_function_resolve_create(ctx: JSContext, s: JSAsyncFunctionState): [JSValue, JSValue] | null {\n const funcs: [JSValue, JSValue] = [undefined, undefined];\n for (let i = 0; i < 2; i++) {\n const is_reject = i === 1;\n const impl: JSHostImpl = (_this_val, _new_target, args) => {\n js_async_function_resolve_call(ctx, s, is_reject, args.length > 0 ? args[0] : undefined);\n return undefined;\n };\n const f = js_new_host_function(ctx, impl, false, '', 1, ctx.function_proto,\n (JSClassID.ASYNC_FUNCTION_RESOLVE + i) as JSClassID);\n js_meta.get(f)!.u = s;\n funcs[i] = f;\n }\n return funcs;\n}\n\nfunction js_async_function_resume(ctx: JSContext, s: JSAsyncFunctionState): void {\n const func_ret = async_func_resume(ctx, s);\n if (s.is_completed) {\n if (JS_IsException(func_ret)) {\n const error = JS_GetException(ctx);\n JS_Call(ctx, s.resolving_funcs[1], undefined, [error]); /* XXX: what to do if exception ? */\n } else {\n /* normal return */\n JS_Call(ctx, s.resolving_funcs[0], undefined, [func_ret]);\n }\n return;\n }\n /* await */\n const sf = s.frame;\n const value = sf.stack_buf[sf.cur_sp - 1];\n sf.stack_buf[sf.cur_sp - 1] = undefined;\n const fail = (): void => {\n const error = JS_GetException(ctx);\n JS_Call(ctx, s.resolving_funcs[1], undefined, [error]);\n };\n const promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [value], 0);\n if (JS_IsException(promise)) { fail(); return; }\n const resolving_funcs = js_async_function_resolve_create(ctx, s);\n if (!resolving_funcs) { fail(); return; }\n /* Note: no need to create 'thrownawayCapability' as in the spec */\n const res = perform_promise_then(ctx, promise, resolving_funcs, [undefined, undefined]);\n if (res) fail();\n}\n\nfunction js_async_function_resolve_call(ctx: JSContext, s: JSAsyncFunctionState, is_reject: boolean, arg: JSValue): JSValue {\n s.throw_flag = is_reject;\n if (is_reject) {\n JS_Throw(ctx, arg);\n } else {\n /* return value of await */\n s.frame.stack_buf[s.frame.cur_sp - 1] = arg;\n }\n js_async_function_resume(ctx, s);\n return undefined;\n}\n\nexport function js_async_function_call(ctx: JSContext, func_obj: JSValue, this_obj: JSValue,\n argv: JSValue[], flags: number): JSValue {\n const s = async_func_init(ctx, func_obj, this_obj, argv);\n const promise = JS_NewPromiseCapability(ctx, s.resolving_funcs);\n if (JS_IsException(promise)) return JS_EXCEPTION;\n s.promise = promise;\n js_async_function_resume(ctx, s);\n return promise;\n}\n\nexport const js_async_function_proto_funcs: JSCFunctionListEntry[] = [\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'AsyncFunction', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n Async generators\n --------------------------------------------------------------------- */\n\nexport const enum JSAsyncGeneratorState {\n SUSPENDED_START,\n SUSPENDED_YIELD,\n SUSPENDED_YIELD_STAR,\n EXECUTING,\n AWAITING_RETURN,\n COMPLETED,\n}\n\nexport class JSAsyncGeneratorRequest {\n completion_type: number; /* GEN_MAGIC_x */\n result: JSValue;\n promise: JSValue;\n resolving_funcs: [JSValue, JSValue];\n constructor(completion_type: number, result: JSValue, promise: JSValue, resolving_funcs: [JSValue, JSValue]) {\n this.completion_type = completion_type; this.result = result; this.promise = promise; this.resolving_funcs = resolving_funcs;\n }\n}\n\nexport class JSAsyncGeneratorData {\n generator: JSObject | null = null; /* back pointer to the object */\n state: JSAsyncGeneratorState = JSAsyncGeneratorState.SUSPENDED_START;\n /* func_state is null in state AWAITING_RETURN and COMPLETED */\n func_state: JSAsyncFunctionState | null = null;\n queue: JSAsyncGeneratorRequest[] = [];\n}\n\nfunction js_async_generator_resolve_function_create(ctx: JSContext, generator: JSValue, is_resume_next: boolean): [JSValue, JSValue] | null {\n const funcs: [JSValue, JSValue] = [undefined, undefined];\n for (let i = 0; i < 2; i++) {\n const func = JS_NewCFunctionData(ctx, js_async_generator_resolve_function, 1, i + (is_resume_next ? 2 : 0), [generator]);\n if (JS_IsException(func)) return null;\n funcs[i] = func;\n }\n return funcs;\n}\n\nfunction js_async_generator_await(ctx: JSContext, s: JSAsyncGeneratorData, value: JSValue): number {\n const promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [value], 0);\n if (JS_IsException(promise)) return -1;\n const resolving_funcs = js_async_generator_resolve_function_create(ctx, s.generator!, false);\n if (!resolving_funcs) return -1;\n /* Note: no need to create 'thrownawayCapability' as in the spec */\n const res = perform_promise_then(ctx, promise, resolving_funcs, [undefined, undefined]);\n if (res) return -1;\n return 0;\n}\n\nfunction js_async_generator_resolve_or_reject(ctx: JSContext, s: JSAsyncGeneratorData, result: JSValue, is_reject: number): void {\n const next = s.queue.shift()!;\n JS_Call(ctx, next.resolving_funcs[is_reject], undefined, [result]);\n}\n\nfunction js_async_generator_resolve(ctx: JSContext, s: JSAsyncGeneratorData, value: JSValue, done: boolean): void {\n const result = js_create_iterator_result(ctx, value, done);\n /* XXX: better exception handling ? */\n js_async_generator_resolve_or_reject(ctx, s, result, 0);\n}\n\nfunction js_async_generator_reject(ctx: JSContext, s: JSAsyncGeneratorData, exception: JSValue): void {\n js_async_generator_resolve_or_reject(ctx, s, exception, 1);\n}\n\nfunction js_async_generator_complete(ctx: JSContext, s: JSAsyncGeneratorData): void {\n if (s.state !== JSAsyncGeneratorState.COMPLETED) {\n s.state = JSAsyncGeneratorState.COMPLETED;\n s.func_state = null;\n }\n}\n\nfunction js_async_generator_completed_return(ctx: JSContext, s: JSAsyncGeneratorData, value: JSValue): number {\n // Can fail looking up JS_ATOM_constructor when is_reject==0.\n let promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [value], 0);\n // A poisoned .constructor property is observable and the resulting\n // exception should be delivered to the catch handler.\n if (JS_IsException(promise)) {\n const err = JS_GetException(ctx);\n promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [err], 1);\n if (JS_IsException(promise)) return -1;\n }\n const resolving_funcs1 = js_async_generator_resolve_function_create(ctx, s.generator!, true);\n if (!resolving_funcs1) return -1;\n return perform_promise_then(ctx, promise, resolving_funcs1, [undefined, undefined]);\n}\n\nfunction js_async_generator_resume_next(ctx: JSContext, s: JSAsyncGeneratorData): void {\n for (;;) {\n if (s.queue.length === 0) break;\n const next = s.queue[0];\n let resume_exec = false;\n switch (s.state) {\n case JSAsyncGeneratorState.EXECUTING:\n /* only happens when restarting execution after await() */\n resume_exec = true;\n break;\n case JSAsyncGeneratorState.AWAITING_RETURN:\n return;\n case JSAsyncGeneratorState.SUSPENDED_START:\n if (next.completion_type === GEN_MAGIC_NEXT) {\n s.func_state!.throw_flag = false;\n s.state = JSAsyncGeneratorState.EXECUTING;\n resume_exec = true;\n } else {\n js_async_generator_complete(ctx, s);\n }\n break;\n case JSAsyncGeneratorState.COMPLETED:\n if (next.completion_type === GEN_MAGIC_NEXT) {\n js_async_generator_resolve(ctx, s, undefined, true);\n } else if (next.completion_type === GEN_MAGIC_RETURN) {\n s.state = JSAsyncGeneratorState.AWAITING_RETURN;\n js_async_generator_completed_return(ctx, s, next.result);\n } else {\n js_async_generator_reject(ctx, s, next.result);\n }\n return;\n case JSAsyncGeneratorState.SUSPENDED_YIELD:\n case JSAsyncGeneratorState.SUSPENDED_YIELD_STAR: {\n const value = next.result;\n const sf = s.func_state!.frame;\n if (next.completion_type === GEN_MAGIC_THROW && s.state === JSAsyncGeneratorState.SUSPENDED_YIELD) {\n JS_Throw(ctx, value);\n s.func_state!.throw_flag = true;\n } else {\n /* 'yield' returns a value. 'yield *' also returns a value in case the 'throw' method is called */\n sf.stack_buf[sf.cur_sp - 1] = value;\n sf.stack_buf[sf.cur_sp] = next.completion_type;\n sf.cur_sp++;\n s.func_state!.throw_flag = false;\n }\n s.state = JSAsyncGeneratorState.EXECUTING;\n resume_exec = true;\n break;\n }\n default:\n throw new Error('invalid async generator state');\n }\n if (!resume_exec) continue;\n for (;;) {\n const fs = s.func_state!;\n const func_ret = async_func_resume(ctx, fs);\n if (fs.is_completed) {\n if (JS_IsException(func_ret)) {\n const value = JS_GetException(ctx);\n js_async_generator_complete(ctx, s);\n js_async_generator_reject(ctx, s, value);\n } else {\n /* end of function */\n js_async_generator_complete(ctx, s);\n js_async_generator_resolve(ctx, s, func_ret, true);\n }\n break;\n }\n const func_ret_code = func_ret as number;\n const sf = fs.frame;\n const value = sf.stack_buf[sf.cur_sp - 1];\n sf.stack_buf[sf.cur_sp - 1] = undefined;\n if (func_ret_code === FUNC_RET_YIELD || func_ret_code === FUNC_RET_YIELD_STAR) {\n s.state = (func_ret_code === FUNC_RET_YIELD_STAR) ? JSAsyncGeneratorState.SUSPENDED_YIELD_STAR : JSAsyncGeneratorState.SUSPENDED_YIELD;\n js_async_generator_resolve(ctx, s, value, false);\n break;\n } else if (func_ret_code === FUNC_RET_AWAIT) {\n const ret = js_async_generator_await(ctx, s, value);\n if (ret < 0) {\n /* exception: throw it */\n fs.throw_flag = true;\n continue; /* resume_exec */\n }\n return;\n } else {\n throw new Error('invalid async generator return code');\n }\n }\n }\n}\n\nfunction js_async_generator_resolve_function(ctx: JSContext, this_obj: JSValue, argv: JSValue[], magic: number,\n func_data: JSValue[]): JSValue {\n const is_reject = (magic & 1) !== 0;\n const s = JS_GetOpaque(func_data[0], JSClassID.ASYNC_GENERATOR) as JSAsyncGeneratorData | null;\n const arg = argv[0];\n if (!s) return undefined;\n if (magic >= 2) {\n /* resume next case in AWAITING_RETURN state */\n s.state = JSAsyncGeneratorState.COMPLETED;\n if (is_reject) js_async_generator_reject(ctx, s, arg);\n else js_async_generator_resolve(ctx, s, arg, true);\n } else {\n /* restart function execution after await() */\n const fs = s.func_state!;\n fs.throw_flag = is_reject;\n if (is_reject) {\n JS_Throw(ctx, arg);\n } else {\n /* return value of await */\n fs.frame.stack_buf[fs.frame.cur_sp - 1] = arg;\n }\n js_async_generator_resume_next(ctx, s);\n }\n return undefined;\n}\n\n/* magic = GEN_MAGIC_x */\nexport function js_async_generator_next(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n const s = JS_GetOpaque(this_val, JSClassID.ASYNC_GENERATOR) as JSAsyncGeneratorData | null;\n const resolving_funcs: [JSValue, JSValue] = [undefined, undefined];\n const promise = JS_NewPromiseCapability(ctx, resolving_funcs);\n if (JS_IsException(promise)) return JS_EXCEPTION;\n if (!s) {\n JS_ThrowTypeError(ctx, 'not an AsyncGenerator object');\n const err = JS_GetException(ctx);\n JS_Call(ctx, resolving_funcs[1], undefined, [err]);\n return promise;\n }\n s.queue.push(new JSAsyncGeneratorRequest(magic, argv[0], promise, resolving_funcs));\n if (s.state !== JSAsyncGeneratorState.EXECUTING) {\n js_async_generator_resume_next(ctx, s);\n }\n return promise;\n}\n\nexport function js_async_generator_function_call(ctx: JSContext, func_obj: JSValue, this_obj: JSValue,\n argv: JSValue[], flags: number): JSValue {\n const s = new JSAsyncGeneratorData();\n s.state = JSAsyncGeneratorState.SUSPENDED_START;\n s.func_state = async_func_init(ctx, func_obj, this_obj, argv);\n /* execute the function up to 'OP_initial_yield' (no yield nor await are possible) */\n const func_ret = async_func_resume(ctx, s.func_state);\n if (JS_IsException(func_ret)) return JS_EXCEPTION;\n const obj = js_create_from_ctor(ctx, func_obj, JSClassID.ASYNC_GENERATOR);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n s.generator = obj as JSObject;\n JS_SetOpaque(obj, s);\n return obj;\n}\n\nexport const js_async_generator_proto_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_MAGIC_DEF('next', 1, js_async_generator_next, GEN_MAGIC_NEXT),\n JS_CFUNC_MAGIC_DEF('return', 1, js_async_generator_next, GEN_MAGIC_RETURN),\n JS_CFUNC_MAGIC_DEF('throw', 1, js_async_generator_next, GEN_MAGIC_THROW),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'AsyncGenerator', JS_PROP_CONFIGURABLE),\n];\n\nexport const js_async_generator_function_proto_funcs: JSCFunctionListEntry[] = [\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'AsyncGeneratorFunction', JS_PROP_CONFIGURABLE),\n];\n\n/* ---------------------------------------------------------------------\n AsyncFromSyncIterator\n --------------------------------------------------------------------- */\n\nexport class JSAsyncFromSyncIteratorData {\n sync_iter: JSValue;\n next_method: JSValue;\n constructor(sync_iter: JSValue, next_method: JSValue) { this.sync_iter = sync_iter; this.next_method = next_method; }\n}\n\nexport function JS_CreateAsyncFromSyncIterator(ctx: JSContext, sync_iter: JSValue): JSValue {\n const next_method = JS_GetProperty(ctx, sync_iter, JS_ATOM_next);\n if (JS_IsException(next_method)) return JS_EXCEPTION;\n const async_iter = JS_NewObjectClass(ctx, JSClassID.ASYNC_FROM_SYNC_ITERATOR);\n if (JS_IsException(async_iter)) return async_iter;\n JS_SetOpaque(async_iter, new JSAsyncFromSyncIteratorData(sync_iter, next_method));\n return async_iter;\n}\nasync_hooks.JS_CreateAsyncFromSyncIterator = JS_CreateAsyncFromSyncIterator;\n\nfunction js_async_from_sync_iterator_unwrap(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number,\n func_data: JSValue[]): JSValue {\n return js_create_iterator_result(ctx, argv[0], JS_ToBoolFree(ctx, func_data[0]));\n}\n\nfunction js_async_from_sync_iterator_unwrap_func_create(ctx: JSContext, done: boolean): JSValue {\n return JS_NewCFunctionData(ctx, js_async_from_sync_iterator_unwrap, 1, 0, [done]);\n}\n\nfunction js_async_from_sync_iterator_close_wrap(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number,\n func_data: JSValue[]): JSValue {\n JS_Throw(ctx, argv[0]);\n JS_IteratorClose(ctx, func_data[0], true);\n return JS_EXCEPTION;\n}\n\nfunction js_async_from_sync_iterator_close_wrap_func_create(ctx: JSContext, sync_iter: JSValue): JSValue {\n return JS_NewCFunctionData(ctx, js_async_from_sync_iterator_close_wrap, 1, 0, [sync_iter]);\n}\n\nfunction js_async_from_sync_iterator_next(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n const resolving_funcs: [JSValue, JSValue] = [undefined, undefined];\n const promise = JS_NewPromiseCapability(ctx, resolving_funcs);\n if (JS_IsException(promise)) return JS_EXCEPTION;\n const reject = (): JSValue => {\n const err = JS_GetException(ctx);\n JS_Call(ctx, resolving_funcs[1], undefined, [err]);\n return promise;\n };\n const s = JS_GetOpaque(this_val, JSClassID.ASYNC_FROM_SYNC_ITERATOR) as JSAsyncFromSyncIteratorData | null;\n if (!s) {\n JS_ThrowTypeError(ctx, 'not an Async-from-Sync Iterator');\n return reject();\n }\n let method: JSValue;\n if (magic === GEN_MAGIC_NEXT) {\n method = s.next_method;\n } else {\n method = JS_GetProperty(ctx, s.sync_iter, magic === GEN_MAGIC_RETURN ? JS_ATOM_return : JS_ATOM_throw);\n if (JS_IsException(method)) return reject();\n if (method === undefined || method === null) {\n if (magic === GEN_MAGIC_RETURN) {\n const res = js_create_iterator_result(ctx, argv[0], true);\n JS_Call(ctx, resolving_funcs[0], undefined, [res]);\n return promise;\n } else {\n if (JS_IteratorClose(ctx, s.sync_iter, false)) return reject();\n JS_ThrowTypeError(ctx, 'throw is not a method');\n return reject();\n }\n }\n }\n const obj = JS_Call(ctx, method, s.sync_iter, argv.length >= 1 ? [argv[0]] : []);\n if (JS_IsException(obj)) return reject();\n if (!JS_IsObject(obj)) {\n JS_ThrowTypeError(ctx, 'iterator must return an object');\n return reject();\n }\n const pdone = { done: 0 };\n const value = JS_IteratorGetCompleteValue(ctx, obj, pdone);\n if (JS_IsException(value)) return reject();\n const done = pdone.done !== 0;\n\n const value_wrapper_promise = js_promise_resolve(ctx, ctx.promise_ctor ?? undefined, [value], 0);\n if (JS_IsException(value_wrapper_promise)) {\n if (magic !== GEN_MAGIC_RETURN && !done) JS_IteratorClose(ctx, s.sync_iter, true);\n return reject();\n }\n const resolve_reject: [JSValue, JSValue] = [undefined, undefined];\n resolve_reject[0] = js_async_from_sync_iterator_unwrap_func_create(ctx, done);\n if (JS_IsException(resolve_reject[0])) return JS_EXCEPTION;\n if (done || magic === GEN_MAGIC_RETURN) {\n resolve_reject[1] = undefined;\n } else {\n resolve_reject[1] = js_async_from_sync_iterator_close_wrap_func_create(ctx, s.sync_iter);\n if (JS_IsException(resolve_reject[1])) return JS_EXCEPTION;\n }\n const res = perform_promise_then(ctx, value_wrapper_promise, resolve_reject, resolving_funcs);\n if (res) return JS_EXCEPTION;\n return promise;\n}\n\nexport const js_async_from_sync_iterator_proto_funcs: JSCFunctionListEntry[] = [\n JS_CFUNC_MAGIC_DEF('next', 1, js_async_from_sync_iterator_next, GEN_MAGIC_NEXT),\n JS_CFUNC_MAGIC_DEF('return', 1, js_async_from_sync_iterator_next, GEN_MAGIC_RETURN),\n JS_CFUNC_MAGIC_DEF('throw', 1, js_async_from_sync_iterator_next, GEN_MAGIC_THROW),\n];\n\n/* ---------------------------------------------------------------------\n Runtime / hooks installation\n --------------------------------------------------------------------- */\n\nhooks.JS_CallInternal = JS_CallInternal;\nhooks.js_closure = js_closure;\n\n/* ---------------------------------------------------------------------\n Value based helpers for the compiled tier (no operand stack)\n --------------------------------------------------------------------- */\n\n/* GetIterator + next method: returns [iterator, next] or null on exception */\nexport function js_for_of_start_value(ctx: JSContext, obj: JSValue, is_async: boolean): [JSValue, JSValue] | null {\n const iter = JS_GetIterator(ctx, obj, is_async);\n if (JS_IsException(iter)) return null;\n const method = JS_GetProperty(ctx, iter, JS_ATOM_next);\n if (JS_IsException(method)) return null;\n return [iter, method];\n}\n\n/* IteratorStep: returns {value, done} or null on exception */\nexport function js_for_of_next_value(ctx: JSContext, iter: JSValue, next: JSValue): { value: JSValue; done: boolean } | null {\n const pdone = { done: 0 };\n const value = JS_IteratorNext(ctx, iter, next, [], pdone);\n if (JS_IsException(value)) return null;\n return { value: pdone.done ? undefined : value, done: pdone.done !== 0 };\n}\n\n/* spread: append the elements of the iterable 'src' to 'target' starting\n at index 'pos'; returns the next position or -1 on exception */\nexport function js_append_enumerate_value(ctx: JSContext, target: JSValue, pos: number, src: JSValue): number {\n const stack: JSValue[] = [target, pos, src];\n if (js_append_enumerate(ctx, stack, 3)) return -1;\n return stack[1] as number;\n}\n\n/* unmapped arguments object from an argument list (compiled functions) */\nexport function js_build_arguments_value(ctx: JSContext, argv: JSValue[]): JSValue {\n return js_build_arguments(ctx, argv.length, argv);\n}\n"]}
|