diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a8265d6 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "packages/wasi-sdk"] + path = packages/wasi-sdk + url = https://github.com/WebAssembly/wasi-sdk +[submodule "packages/wasmedge"] + path = packages/wasmedge + url = https://github.com/WasmEdge/WasmEdge +[submodule "packages/WasmEdge"] + path = packages/WasmEdge + url = https://github.com/WasmEdge/WasmEdge.git diff --git a/Makefile.wasi b/Makefile.wasi new file mode 100644 index 0000000..393c914 --- /dev/null +++ b/Makefile.wasi @@ -0,0 +1,79 @@ +# Makefile for building MicroQuickJS as a WASI 0.2 Component +# Prerequisites: wasi-sdk, wit-bindgen, wasm-tools + +WASI_SDK_PATH ?= /tmp/wasi-sdk +CC = $(WASI_SDK_PATH)/bin/clang +AR = $(WASI_SDK_PATH)/bin/llvm-ar +CFLAGS = -Oz -D_WASI_EMULATED_SIGNAL -Werror=implicit-function-declaration -I. -I./generated + +BUILD_DIR = build +GEN_DIR = generated +CARGO_BIN = $(HOME)/.cargo/bin + +OBJS = \ + $(BUILD_DIR)/mquickjs.o \ + $(BUILD_DIR)/cutils.o \ + $(BUILD_DIR)/dtoa.o \ + $(BUILD_DIR)/libm.o \ + $(BUILD_DIR)/microquickjs.o \ + $(BUILD_DIR)/glue.o \ + $(GEN_DIR)/microquickjs_component_type.o + +.PHONY: all clean inspect test + +all: $(BUILD_DIR)/microquickjs.component.wasm + +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +$(GEN_DIR)/microquickjs.c: microquickjs.wit + $(CARGO_BIN)/wit-bindgen c ./microquickjs.wit --out-dir ./$(GEN_DIR) + +$(BUILD_DIR)/%.o: %.c | $(BUILD_DIR) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BUILD_DIR)/microquickjs.o: $(GEN_DIR)/microquickjs.c | $(BUILD_DIR) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BUILD_DIR)/glue.o: glue.c | $(BUILD_DIR) $(GEN_DIR)/microquickjs.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(BUILD_DIR)/core.wasm: $(OBJS) + $(CC) $(CFLAGS) \ + -Wl,--no-entry \ + -Wl,--export=cabi_realloc \ + -lwasi-emulated-signal \ + $(OBJS) \ + -o $@ + +$(BUILD_DIR)/embedded.wasm: $(BUILD_DIR)/core.wasm microquickjs.wit + $(CARGO_BIN)/wasm-tools component embed ./microquickjs.wit $< --output $@ + +wasi_snapshot_preview1.reactor.wasm: + curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v29.0.1/wasi_snapshot_preview1.reactor.wasm -o $@ + +env.wasm: + echo '(module (func (export "__wasm_setjmp") (param i32 i32 i32)) (func (export "__wasm_longjmp") (param i32 i32)) (func (export "__wasm_setjmp_test") (param i32 i32) (result i32) (i32.const 0)))' > env.wat + $(CARGO_BIN)/wasm-tools wat2wasm env.wat -o $@ + +$(BUILD_DIR)/microquickjs.component.wasm: $(BUILD_DIR)/embedded.wasm wasi_snapshot_preview1.reactor.wasm env.wasm + $(CARGO_BIN)/wasm-tools component new $< --adapt env=env.wasm --adapt wasi_snapshot_preview1.reactor.wasm --output $@ + +inspect: $(BUILD_DIR)/microquickjs.component.wasm + $(CARGO_BIN)/wasm-tools print $< + +test: $(BUILD_DIR)/microquickjs.component.wasm + @echo "Note: Running tests using host test runner as 'wasmtime run --invoke' is not supported for components yet." + $(MAKE) -f Makefile.wasi build/test_eval.wasm + $(CARGO_BIN)/wasmtime run build/test_eval.wasm "2+2" + $(CARGO_BIN)/wasmtime run build/test_eval.wasm "'hello' + ' world'" + +build/test_eval.wasm: test_eval.c $(OBJS) + $(CC) $(CFLAGS) -DTEST_RUNNER $< \ + $(BUILD_DIR)/mquickjs.o $(BUILD_DIR)/cutils.o $(BUILD_DIR)/dtoa.o $(BUILD_DIR)/libm.o $(BUILD_DIR)/glue.o \ + $(GEN_DIR)/microquickjs.c \ + -lwasi-emulated-signal \ + -o $@ + +clean: + rm -rf $(BUILD_DIR) $(GEN_DIR) env.wat env.wasm wasi_snapshot_preview1.reactor.wasm diff --git a/README.WASI.md b/README.WASI.md new file mode 100644 index 0000000..d6ee4f0 --- /dev/null +++ b/README.WASI.md @@ -0,0 +1,45 @@ +# MicroQuickJS WASI Component + +This is a port of MicroQuickJS to a WASI 0.2 Component. + +## Build + +Prerequisites: +- WASI SDK 25+ +- wit-bindgen +- wasm-tools + +Run: +```bash +make -f Makefile.wasi +``` + +## Usage + +The component exports an `eval` function: +```wit +eval: func(code: string) -> result; +``` + +## Limitations + +### WasmEdge 0.14.1 Validator Bug + +WasmEdge 0.14.1 contains a known issue where its Component Model validator incorrectly rejects spec-compliant components with error `0x50b (malformed name)`. +The generated component is fully spec-compliant and passes validation via `wasm-tools`. +- **Recommendation:** Use **Wasmtime** for execution, or downgrade WasmEdge to **0.13.5** until a fix is released in WasmEdge. + +### Error Handling (setjmp/longjmp) + +MicroQuickJS uses `setjmp`/`longjmp` for error handling during parsing (e.g., syntax errors). +Standard WASI 0.2 does not yet fully support these primitives without the WebAssembly Exception Handling proposal. + +In this port, `longjmp` is stubbed to call `abort()`. +- **Valid JavaScript:** Executes normally and returns the result as a string. +- **Syntax Errors / Parser Errors:** Will cause the component to trap (`unreachable`). +- **Runtime Errors:** Correctly handled via `JS_GetException` and returned as an `Err` result. + +### Other WASI Limitations +- No filesystem access ( `load()` is disabled). +- No subprocesses (`system()`, `fork()` are not available). +- Timers (`setTimeout`) are not currently supported in the component export. diff --git a/dtoa.c b/dtoa.c index 604f3f0..b3508f6 100644 --- a/dtoa.c +++ b/dtoa.c @@ -30,7 +30,7 @@ #include #include #include -#include +#include "mquickjs_wasm_setjmp.h" #include "cutils.h" #include "dtoa.h" diff --git a/glue.c b/glue.c new file mode 100644 index 0000000..0d4a2bf --- /dev/null +++ b/glue.c @@ -0,0 +1,120 @@ +#include +#include +#include +#include +#include +#include "mquickjs.h" +#include "generated/microquickjs.h" + +JSValue js_print(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv); +JSValue js_gc(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv); +JSValue js_date_now(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv); +JSValue js_performance_now(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv); +JSValue js_load(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv); +JSValue js_setTimeout(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv); +JSValue js_clearTimeout(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv); + +#include "mqjs_stdlib.h" + +void *cabi_realloc(void *ptr, size_t old_size, size_t align, size_t new_size); + +static void *make_wasi_string(const char *src, size_t len) { + if (!src) return NULL; + uint8_t *out = (uint8_t *)cabi_realloc(NULL, 0, 1, len); + if (!out) return NULL; + memcpy(out, src, len); + return out; +} + +JSValue js_print(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv) { + int i; + JSValue v; + for(i = 0; i < argc; i++) { + if (i != 0) putchar(' '); + v = argv[i]; + if (JS_IsString(ctx, v)) { + JSCStringBuf buf; + const char *str; + size_t len; + str = JS_ToCStringLen(ctx, &len, v, &buf); + fwrite(str, 1, len, stdout); + } else { + JS_PrintValueF(ctx, argv[i], JS_DUMP_LONG); + } + } + putchar('\n'); + return JS_UNDEFINED; +} + +JSValue js_gc(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv) { + JS_GC(ctx); + return JS_UNDEFINED; +} + +static int64_t get_time_ms(void) { + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return (uint64_t)ts.tv_sec * 1000 + (ts.tv_nsec / 1000000); +} + +JSValue js_date_now(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv) { + struct timeval tv; + gettimeofday(&tv, NULL); + return JS_NewInt64(ctx, (int64_t)tv.tv_sec * 1000 + (tv.tv_usec / 1000)); +} + +JSValue js_performance_now(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv) { + return JS_NewInt64(ctx, get_time_ms()); +} + +JSValue js_load(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv) { + return JS_ThrowInternalError(ctx, "load() not supported in WASI"); +} + +JSValue js_setTimeout(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv) { + return JS_ThrowInternalError(ctx, "setTimeout() not supported in WASI"); +} + +JSValue js_clearTimeout(JSContext *ctx, JSValue *this_val, int argc, JSValue *argv) { + return JS_ThrowInternalError(ctx, "clearTimeout() not supported in WASI"); +} + +bool exports_microquickjs_eval(microquickjs_string_t *code, microquickjs_string_t *ok, microquickjs_string_t *err) { + size_t mem_size = 1024 * 1024; + uint8_t *mem_buf = malloc(mem_size); + if (!mem_buf) { + const char *msg = "Internal error: failed to allocate memory for JS context"; + err->len = strlen(msg); + err->ptr = (uint8_t *)make_wasi_string(msg, err->len); + return false; + } + JSContext *ctx = JS_NewContext(mem_buf, mem_size, &js_stdlib); + if (!ctx) { + free(mem_buf); + const char *msg = "Internal error: failed to create JS context"; + err->len = strlen(msg); + err->ptr = (uint8_t *)make_wasi_string(msg, err->len); + return false; + } + JSValue val = JS_Eval(ctx, (const char *)code->ptr, code->len, "", JS_EVAL_RETVAL); + if (JS_IsException(val)) { + JSValue exception = JS_GetException(ctx); + JSCStringBuf cstr_buf; + size_t len; + const char *exc_str = JS_ToCStringLen(ctx, &len, exception, &cstr_buf); + err->len = len; + err->ptr = (uint8_t *)make_wasi_string(exc_str, len); + JS_FreeContext(ctx); + free(mem_buf); + return false; + } else { + JSCStringBuf cstr_buf; + size_t len; + const char *res_str = JS_ToCStringLen(ctx, &len, val, &cstr_buf); + ok->len = len; + ok->ptr = (uint8_t *)make_wasi_string(res_str, len); + JS_FreeContext(ctx); + free(mem_buf); + return true; + } +} diff --git a/microquickjs.wit b/microquickjs.wit new file mode 100644 index 0000000..e196aaa --- /dev/null +++ b/microquickjs.wit @@ -0,0 +1,7 @@ +package local:microquickjs@0.1.0; + +world microquickjs { + /// Evaluate JavaScript code and return result as string. + /// On error (syntax, runtime), returns Err(error-message). + export eval: func(code: string) -> result; +} diff --git a/mqjs_stdlib.h b/mqjs_stdlib.h new file mode 100644 index 0000000..43db577 --- /dev/null +++ b/mqjs_stdlib.h @@ -0,0 +1,2960 @@ +/* this file is automatically generated - do not edit */ + +#include "mquickjs_priv.h" + +static const uint32_t __attribute((aligned(64))) js_stdlib_table[] = { + /* atom_table */ + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "null" (offset=0) */ + 0x6c6c756e, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "false" (offset=3) */ + 0x736c6166, + 0x00000065, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "true" (offset=6) */ + 0x65757274, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (2 << (JS_MTAG_BITS + 3)), /* "if" (offset=9) */ + 0x00006669, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "else" (offset=11) */ + 0x65736c65, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "return" (offset=14) */ + 0x75746572, + 0x00006e72, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "var" (offset=17) */ + 0x00726176, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "this" (offset=19) */ + 0x73696874, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "delete" (offset=22) */ + 0x656c6564, + 0x00006574, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "void" (offset=25) */ + 0x64696f76, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "typeof" (offset=28) */ + 0x65707974, + 0x0000666f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "new" (offset=31) */ + 0x0077656e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (2 << (JS_MTAG_BITS + 3)), /* "in" (offset=33) */ + 0x00006e69, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "instanceof" (offset=35) */ + 0x74736e69, + 0x65636e61, + 0x0000666f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (2 << (JS_MTAG_BITS + 3)), /* "do" (offset=39) */ + 0x00006f64, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "while" (offset=41) */ + 0x6c696877, + 0x00000065, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "for" (offset=44) */ + 0x00726f66, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "break" (offset=46) */ + 0x61657262, + 0x0000006b, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "continue" (offset=49) */ + 0x746e6f63, + 0x65756e69, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "switch" (offset=53) */ + 0x74697773, + 0x00006863, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "case" (offset=56) */ + 0x65736163, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "default" (offset=59) */ + 0x61666564, + 0x00746c75, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "throw" (offset=62) */ + 0x6f726874, + 0x00000077, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "try" (offset=65) */ + 0x00797274, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "catch" (offset=67) */ + 0x63746163, + 0x00000068, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "finally" (offset=70) */ + 0x616e6966, + 0x00796c6c, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "function" (offset=73) */ + 0x636e7566, + 0x6e6f6974, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "debugger" (offset=77) */ + 0x75626564, + 0x72656767, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "with" (offset=81) */ + 0x68746977, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "class" (offset=84) */ + 0x73616c63, + 0x00000073, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "const" (offset=87) */ + 0x736e6f63, + 0x00000074, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "enum" (offset=90) */ + 0x6d756e65, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "export" (offset=93) */ + 0x6f707865, + 0x00007472, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "extends" (offset=96) */ + 0x65747865, + 0x0073646e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "import" (offset=99) */ + 0x6f706d69, + 0x00007472, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "super" (offset=102) */ + 0x65707573, + 0x00000072, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "implements" (offset=105) */ + 0x6c706d69, + 0x6e656d65, + 0x00007374, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "interface" (offset=109) */ + 0x65746e69, + 0x63616672, + 0x00000065, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "let" (offset=113) */ + 0x0074656c, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "package" (offset=115) */ + 0x6b636170, + 0x00656761, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "private" (offset=118) */ + 0x76697270, + 0x00657461, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "protected" (offset=121) */ + 0x746f7270, + 0x65746365, + 0x00000064, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "public" (offset=125) */ + 0x6c627570, + 0x00006369, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "static" (offset=128) */ + 0x74617473, + 0x00006369, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "yield" (offset=131) */ + 0x6c656979, + 0x00000064, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (0 << (JS_MTAG_BITS + 3)), /* "" (offset=134) */ + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "toString" (offset=136) */ + 0x74536f74, + 0x676e6972, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "valueOf" (offset=140) */ + 0x756c6176, + 0x00664f65, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "number" (offset=143) */ + 0x626d756e, + 0x00007265, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "object" (offset=146) */ + 0x656a626f, + 0x00007463, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "undefined" (offset=149) */ + 0x65646e75, + 0x656e6966, + 0x00000064, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "string" (offset=153) */ + 0x69727473, + 0x0000676e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "boolean" (offset=156) */ + 0x6c6f6f62, + 0x006e6165, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "" (offset=159) */ + 0x7465723c, + 0x0000003e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "" (offset=162) */ + 0x6176653c, + 0x00003e6c, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "eval" (offset=165) */ + 0x6c617665, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "arguments" (offset=168) */ + 0x75677261, + 0x746e656d, + 0x00000073, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "value" (offset=172) */ + 0x756c6176, + 0x00000065, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "get" (offset=175) */ + 0x00746567, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "set" (offset=177) */ + 0x00746573, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "prototype" (offset=179) */ + 0x746f7270, + 0x7079746f, + 0x00000065, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "constructor" (offset=183) */ + 0x736e6f63, + 0x63757274, + 0x00726f74, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "length" (offset=187) */ + 0x676e656c, + 0x00006874, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "target" (offset=190) */ + 0x67726174, + 0x00007465, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (2 << (JS_MTAG_BITS + 3)), /* "of" (offset=193) */ + 0x0000666f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (1 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "NaN" (offset=195) */ + 0x004e614e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (1 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "Infinity" (offset=197) */ + 0x69666e49, + 0x7974696e, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (1 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "-Infinity" (offset=201) */ + 0x666e492d, + 0x74696e69, + 0x00000079, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "name" (offset=205) */ + 0x656d616e, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "Error" (offset=208) */ + 0x6f727245, + 0x00000072, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "__proto__" (offset=211) */ + 0x72705f5f, + 0x5f6f746f, + 0x0000005f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "index" (offset=215) */ + 0x65646e69, + 0x00000078, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "input" (offset=218) */ + 0x75706e69, + 0x00000074, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "bound" (offset=221) */ + 0x6e756f62, + 0x00000064, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "Object" (offset=224) */ + 0x656a624f, + 0x00007463, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (14 << (JS_MTAG_BITS + 3)), /* "defineProperty" (offset=227) */ + 0x69666564, + 0x7250656e, + 0x7265706f, + 0x00007974, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (14 << (JS_MTAG_BITS + 3)), /* "getPrototypeOf" (offset=232) */ + 0x50746567, + 0x6f746f72, + 0x65707974, + 0x0000664f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (14 << (JS_MTAG_BITS + 3)), /* "setPrototypeOf" (offset=237) */ + 0x50746573, + 0x6f746f72, + 0x65707974, + 0x0000664f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "create" (offset=242) */ + 0x61657263, + 0x00006574, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "keys" (offset=245) */ + 0x7379656b, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (14 << (JS_MTAG_BITS + 3)), /* "hasOwnProperty" (offset=248) */ + 0x4f736168, + 0x72506e77, + 0x7265706f, + 0x00007974, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "Function" (offset=253) */ + 0x636e7546, + 0x6e6f6974, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (13 << (JS_MTAG_BITS + 3)), /* "get prototype" (offset=257) */ + 0x20746567, + 0x746f7270, + 0x7079746f, + 0x00000065, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (13 << (JS_MTAG_BITS + 3)), /* "set prototype" (offset=262) */ + 0x20746573, + 0x746f7270, + 0x7079746f, + 0x00000065, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "call" (offset=267) */ + 0x6c6c6163, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "apply" (offset=270) */ + 0x6c707061, + 0x00000079, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "bind" (offset=273) */ + 0x646e6962, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "get length" (offset=276) */ + 0x20746567, + 0x676e656c, + 0x00006874, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "get name" (offset=280) */ + 0x20746567, + 0x656d616e, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "Number" (offset=284) */ + 0x626d754e, + 0x00007265, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "parseInt" (offset=287) */ + 0x73726170, + 0x746e4965, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "parseFloat" (offset=291) */ + 0x73726170, + 0x6f6c4665, + 0x00007461, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "MAX_VALUE" (offset=295) */ + 0x5f58414d, + 0x554c4156, + 0x00000045, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "MIN_VALUE" (offset=299) */ + 0x5f4e494d, + 0x554c4156, + 0x00000045, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (17 << (JS_MTAG_BITS + 3)), /* "NEGATIVE_INFINITY" (offset=303) */ + 0x4147454e, + 0x45564954, + 0x464e495f, + 0x54494e49, + 0x00000059, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (17 << (JS_MTAG_BITS + 3)), /* "POSITIVE_INFINITY" (offset=309) */ + 0x49534f50, + 0x45564954, + 0x464e495f, + 0x54494e49, + 0x00000059, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "EPSILON" (offset=315) */ + 0x49535045, + 0x004e4f4c, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (16 << (JS_MTAG_BITS + 3)), /* "MAX_SAFE_INTEGER" (offset=318) */ + 0x5f58414d, + 0x45464153, + 0x544e495f, + 0x52454745, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (16 << (JS_MTAG_BITS + 3)), /* "MIN_SAFE_INTEGER" (offset=324) */ + 0x5f4e494d, + 0x45464153, + 0x544e495f, + 0x52454745, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (13 << (JS_MTAG_BITS + 3)), /* "toExponential" (offset=330) */ + 0x78456f74, + 0x656e6f70, + 0x6169746e, + 0x0000006c, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "toFixed" (offset=335) */ + 0x69466f74, + 0x00646578, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "toPrecision" (offset=338) */ + 0x72506f74, + 0x73696365, + 0x006e6f69, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "Boolean" (offset=342) */ + 0x6c6f6f42, + 0x006e6165, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "String" (offset=345) */ + 0x69727453, + 0x0000676e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (12 << (JS_MTAG_BITS + 3)), /* "fromCharCode" (offset=348) */ + 0x6d6f7266, + 0x72616843, + 0x65646f43, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (13 << (JS_MTAG_BITS + 3)), /* "fromCodePoint" (offset=353) */ + 0x6d6f7266, + 0x65646f43, + 0x6e696f50, + 0x00000074, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "set length" (offset=358) */ + 0x20746573, + 0x676e656c, + 0x00006874, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "charAt" (offset=362) */ + 0x72616863, + 0x00007441, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "charCodeAt" (offset=365) */ + 0x72616863, + 0x65646f43, + 0x00007441, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "codePointAt" (offset=369) */ + 0x65646f63, + 0x6e696f50, + 0x00744174, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "slice" (offset=373) */ + 0x63696c73, + 0x00000065, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "substring" (offset=376) */ + 0x73627573, + 0x6e697274, + 0x00000067, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "concat" (offset=380) */ + 0x636e6f63, + 0x00007461, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "indexOf" (offset=383) */ + 0x65646e69, + 0x00664f78, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "lastIndexOf" (offset=386) */ + 0x7473616c, + 0x65646e49, + 0x00664f78, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "match" (offset=390) */ + 0x6374616d, + 0x00000068, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "replace" (offset=393) */ + 0x6c706572, + 0x00656361, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "replaceAll" (offset=396) */ + 0x6c706572, + 0x41656361, + 0x00006c6c, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "search" (offset=400) */ + 0x72616573, + 0x00006863, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "split" (offset=403) */ + 0x696c7073, + 0x00000074, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "toLowerCase" (offset=406) */ + 0x6f4c6f74, + 0x43726577, + 0x00657361, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "toUpperCase" (offset=410) */ + 0x70556f74, + 0x43726570, + 0x00657361, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "trim" (offset=414) */ + 0x6d697274, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "trimEnd" (offset=417) */ + 0x6d697274, + 0x00646e45, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "trimStart" (offset=420) */ + 0x6d697274, + 0x72617453, + 0x00000074, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "repeat" (offset=424) */ + 0x65706572, + 0x00007461, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "Array" (offset=427) */ + 0x61727241, + 0x00000079, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "isArray" (offset=430) */ + 0x72417369, + 0x00796172, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "push" (offset=433) */ + 0x68737570, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "pop" (offset=436) */ + 0x00706f70, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "join" (offset=438) */ + 0x6e696f6a, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "reverse" (offset=441) */ + 0x65766572, + 0x00657372, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "shift" (offset=444) */ + 0x66696873, + 0x00000074, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "splice" (offset=447) */ + 0x696c7073, + 0x00006563, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "unshift" (offset=450) */ + 0x68736e75, + 0x00746669, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "every" (offset=453) */ + 0x72657665, + 0x00000079, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "some" (offset=456) */ + 0x656d6f73, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "forEach" (offset=459) */ + 0x45726f66, + 0x00686361, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "map" (offset=462) */ + 0x0070616d, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "filter" (offset=464) */ + 0x746c6966, + 0x00007265, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "reduce" (offset=467) */ + 0x75646572, + 0x00006563, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "reduceRight" (offset=470) */ + 0x75646572, + 0x69526563, + 0x00746867, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "sort" (offset=474) */ + 0x74726f73, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "Math" (offset=477) */ + 0x6874614d, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "min" (offset=480) */ + 0x006e696d, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "max" (offset=482) */ + 0x0078616d, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "sign" (offset=484) */ + 0x6e676973, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "abs" (offset=487) */ + 0x00736261, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "floor" (offset=489) */ + 0x6f6f6c66, + 0x00000072, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "ceil" (offset=492) */ + 0x6c696563, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "round" (offset=495) */ + 0x6e756f72, + 0x00000064, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "sqrt" (offset=498) */ + 0x74727173, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (1 << (JS_MTAG_BITS + 3)), /* "E" (offset=501) */ + 0x00000045, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "LN10" (offset=503) */ + 0x30314e4c, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "LN2" (offset=506) */ + 0x00324e4c, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "LOG2E" (offset=508) */ + 0x32474f4c, + 0x00000045, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "LOG10E" (offset=511) */ + 0x31474f4c, + 0x00004530, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (2 << (JS_MTAG_BITS + 3)), /* "PI" (offset=514) */ + 0x00004950, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "SQRT1_2" (offset=516) */ + 0x54525153, + 0x00325f31, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "SQRT2" (offset=519) */ + 0x54525153, + 0x00000032, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "sin" (offset=522) */ + 0x006e6973, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "cos" (offset=524) */ + 0x00736f63, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "tan" (offset=526) */ + 0x006e6174, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "asin" (offset=528) */ + 0x6e697361, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "acos" (offset=531) */ + 0x736f6361, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "atan" (offset=534) */ + 0x6e617461, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "atan2" (offset=537) */ + 0x6e617461, + 0x00000032, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "exp" (offset=540) */ + 0x00707865, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "log" (offset=542) */ + 0x00676f6c, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "pow" (offset=544) */ + 0x00776f70, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "random" (offset=546) */ + 0x646e6172, + 0x00006d6f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "imul" (offset=549) */ + 0x6c756d69, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "clz32" (offset=552) */ + 0x337a6c63, + 0x00000032, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "fround" (offset=555) */ + 0x756f7266, + 0x0000646e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "trunc" (offset=558) */ + 0x6e757274, + 0x00000063, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "log2" (offset=561) */ + 0x32676f6c, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "log10" (offset=564) */ + 0x31676f6c, + 0x00000030, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "Date" (offset=567) */ + 0x65746144, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (3 << (JS_MTAG_BITS + 3)), /* "now" (offset=570) */ + 0x00776f6e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "JSON" (offset=572) */ + 0x4e4f534a, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "parse" (offset=575) */ + 0x73726170, + 0x00000065, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "stringify" (offset=578) */ + 0x69727473, + 0x6669676e, + 0x00000079, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "RegExp" (offset=582) */ + 0x45676552, + 0x00007078, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "lastIndex" (offset=585) */ + 0x7473616c, + 0x65646e49, + 0x00000078, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (13 << (JS_MTAG_BITS + 3)), /* "get lastIndex" (offset=589) */ + 0x20746567, + 0x7473616c, + 0x65646e49, + 0x00000078, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (13 << (JS_MTAG_BITS + 3)), /* "set lastIndex" (offset=594) */ + 0x20746573, + 0x7473616c, + 0x65646e49, + 0x00000078, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "source" (offset=599) */ + 0x72756f73, + 0x00006563, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "get source" (offset=602) */ + 0x20746567, + 0x72756f73, + 0x00006563, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "flags" (offset=606) */ + 0x67616c66, + 0x00000073, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "get flags" (offset=609) */ + 0x20746567, + 0x67616c66, + 0x00000073, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "exec" (offset=613) */ + 0x63657865, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "test" (offset=616) */ + 0x74736574, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "message" (offset=619) */ + 0x7373656d, + 0x00656761, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "get message" (offset=622) */ + 0x20746567, + 0x7373656d, + 0x00656761, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "stack" (offset=626) */ + 0x63617473, + 0x0000006b, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "get stack" (offset=629) */ + 0x20746567, + 0x63617473, + 0x0000006b, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "EvalError" (offset=633) */ + 0x6c617645, + 0x6f727245, + 0x00000072, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "RangeError" (offset=637) */ + 0x676e6152, + 0x72724565, + 0x0000726f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (14 << (JS_MTAG_BITS + 3)), /* "ReferenceError" (offset=641) */ + 0x65666552, + 0x636e6572, + 0x72724565, + 0x0000726f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "SyntaxError" (offset=646) */ + 0x746e7953, + 0x72457861, + 0x00726f72, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "TypeError" (offset=650) */ + 0x65707954, + 0x6f727245, + 0x00000072, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "URIError" (offset=654) */ + 0x45495255, + 0x726f7272, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (13 << (JS_MTAG_BITS + 3)), /* "InternalError" (offset=658) */ + 0x65746e49, + 0x6c616e72, + 0x6f727245, + 0x00000072, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "ArrayBuffer" (offset=663) */ + 0x61727241, + 0x66754279, + 0x00726566, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "byteLength" (offset=667) */ + 0x65747962, + 0x676e654c, + 0x00006874, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (14 << (JS_MTAG_BITS + 3)), /* "get byteLength" (offset=671) */ + 0x20746567, + 0x65747962, + 0x676e654c, + 0x00006874, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (17 << (JS_MTAG_BITS + 3)), /* "Uint8ClampedArray" (offset=676) */ + 0x746e6955, + 0x616c4338, + 0x6465706d, + 0x61727241, + 0x00000079, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "TypedArray" (offset=682) */ + 0x65707954, + 0x72724164, + 0x00007961, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "byteOffset" (offset=686) */ + 0x65747962, + 0x7366664f, + 0x00007465, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (14 << (JS_MTAG_BITS + 3)), /* "get byteOffset" (offset=690) */ + 0x20746567, + 0x65747962, + 0x7366664f, + 0x00007465, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (6 << (JS_MTAG_BITS + 3)), /* "buffer" (offset=695) */ + 0x66667562, + 0x00007265, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "get buffer" (offset=698) */ + 0x20746567, + 0x66667562, + 0x00007265, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "subarray" (offset=702) */ + 0x61627573, + 0x79617272, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (17 << (JS_MTAG_BITS + 3)), /* "BYTES_PER_ELEMENT" (offset=706) */ + 0x45545942, + 0x45505f53, + 0x4c455f52, + 0x4e454d45, + 0x00000054, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (9 << (JS_MTAG_BITS + 3)), /* "Int8Array" (offset=712) */ + 0x38746e49, + 0x61727241, + 0x00000079, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "Uint8Array" (offset=716) */ + 0x746e6955, + 0x72724138, + 0x00007961, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "Int16Array" (offset=720) */ + 0x31746e49, + 0x72724136, + 0x00007961, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "Uint16Array" (offset=724) */ + 0x746e6955, + 0x72413631, + 0x00796172, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "Int32Array" (offset=728) */ + 0x33746e49, + 0x72724132, + 0x00007961, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "Uint32Array" (offset=732) */ + 0x746e6955, + 0x72413233, + 0x00796172, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (12 << (JS_MTAG_BITS + 3)), /* "Float32Array" (offset=736) */ + 0x616f6c46, + 0x41323374, + 0x79617272, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (12 << (JS_MTAG_BITS + 3)), /* "Float64Array" (offset=741) */ + 0x616f6c46, + 0x41343674, + 0x79617272, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "isNaN" (offset=746) */ + 0x614e7369, + 0x0000004e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (8 << (JS_MTAG_BITS + 3)), /* "isFinite" (offset=749) */ + 0x69467369, + 0x6574696e, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "globalThis" (offset=753) */ + 0x626f6c67, + 0x68546c61, + 0x00007369, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (7 << (JS_MTAG_BITS + 3)), /* "console" (offset=757) */ + 0x736e6f63, + 0x00656c6f, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (11 << (JS_MTAG_BITS + 3)), /* "performance" (offset=760) */ + 0x66726570, + 0x616d726f, + 0x0065636e, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (5 << (JS_MTAG_BITS + 3)), /* "print" (offset=764) */ + 0x6e697270, + 0x00000074, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (2 << (JS_MTAG_BITS + 3)), /* "gc" (offset=767) */ + 0x00006367, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (4 << (JS_MTAG_BITS + 3)), /* "load" (offset=769) */ + 0x64616f6c, + 0x00000000, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (10 << (JS_MTAG_BITS + 3)), /* "setTimeout" (offset=772) */ + 0x54746573, + 0x6f656d69, + 0x00007475, + (JS_MTAG_STRING << 1) | (1 << JS_MTAG_BITS) | (1 << (JS_MTAG_BITS + 1)) | (0 << (JS_MTAG_BITS + 2)) | (12 << (JS_MTAG_BITS + 3)), /* "clearTimeout" (offset=776) */ + 0x61656c63, + 0x6d695472, + 0x74756f65, + 0x00000000, + + /* sorted atom table (offset=781) */ + JS_VALUE_ARRAY_HEADER(232), + JS_ROM_VALUE(134), /* empty */ + JS_ROM_VALUE(201), /* _Infinity */ + JS_ROM_VALUE(162), /* _eval_ */ + JS_ROM_VALUE(159), /* _ret_ */ + JS_ROM_VALUE(427), /* Array */ + JS_ROM_VALUE(663), /* ArrayBuffer */ + JS_ROM_VALUE(706), /* BYTES_PER_ELEMENT */ + JS_ROM_VALUE(342), /* Boolean */ + JS_ROM_VALUE(567), /* Date */ + JS_ROM_VALUE(501), /* E */ + JS_ROM_VALUE(315), /* EPSILON */ + JS_ROM_VALUE(208), /* Error */ + JS_ROM_VALUE(633), /* EvalError */ + JS_ROM_VALUE(736), /* Float32Array */ + JS_ROM_VALUE(741), /* Float64Array */ + JS_ROM_VALUE(253), /* Function */ + JS_ROM_VALUE(197), /* Infinity */ + JS_ROM_VALUE(720), /* Int16Array */ + JS_ROM_VALUE(728), /* Int32Array */ + JS_ROM_VALUE(712), /* Int8Array */ + JS_ROM_VALUE(658), /* InternalError */ + JS_ROM_VALUE(572), /* JSON */ + JS_ROM_VALUE(503), /* LN10 */ + JS_ROM_VALUE(506), /* LN2 */ + JS_ROM_VALUE(511), /* LOG10E */ + JS_ROM_VALUE(508), /* LOG2E */ + JS_ROM_VALUE(318), /* MAX_SAFE_INTEGER */ + JS_ROM_VALUE(295), /* MAX_VALUE */ + JS_ROM_VALUE(324), /* MIN_SAFE_INTEGER */ + JS_ROM_VALUE(299), /* MIN_VALUE */ + JS_ROM_VALUE(477), /* Math */ + JS_ROM_VALUE(303), /* NEGATIVE_INFINITY */ + JS_ROM_VALUE(195), /* NaN */ + JS_ROM_VALUE(284), /* Number */ + JS_ROM_VALUE(224), /* Object */ + JS_ROM_VALUE(514), /* PI */ + JS_ROM_VALUE(309), /* POSITIVE_INFINITY */ + JS_ROM_VALUE(637), /* RangeError */ + JS_ROM_VALUE(641), /* ReferenceError */ + JS_ROM_VALUE(582), /* RegExp */ + JS_ROM_VALUE(516), /* SQRT1_2 */ + JS_ROM_VALUE(519), /* SQRT2 */ + JS_ROM_VALUE(345), /* String */ + JS_ROM_VALUE(646), /* SyntaxError */ + JS_ROM_VALUE(650), /* TypeError */ + JS_ROM_VALUE(682), /* TypedArray */ + JS_ROM_VALUE(654), /* URIError */ + JS_ROM_VALUE(724), /* Uint16Array */ + JS_ROM_VALUE(732), /* Uint32Array */ + JS_ROM_VALUE(716), /* Uint8Array */ + JS_ROM_VALUE(676), /* Uint8ClampedArray */ + JS_ROM_VALUE(211), /* __proto__ */ + JS_ROM_VALUE(487), /* abs */ + JS_ROM_VALUE(531), /* acos */ + JS_ROM_VALUE(270), /* apply */ + JS_ROM_VALUE(168), /* arguments */ + JS_ROM_VALUE(528), /* asin */ + JS_ROM_VALUE(534), /* atan */ + JS_ROM_VALUE(537), /* atan2 */ + JS_ROM_VALUE(273), /* bind */ + JS_ROM_VALUE(156), /* boolean */ + JS_ROM_VALUE(221), /* bound */ + JS_ROM_VALUE(46), /* break */ + JS_ROM_VALUE(695), /* buffer */ + JS_ROM_VALUE(667), /* byteLength */ + JS_ROM_VALUE(686), /* byteOffset */ + JS_ROM_VALUE(267), /* call */ + JS_ROM_VALUE(56), /* case */ + JS_ROM_VALUE(67), /* catch */ + JS_ROM_VALUE(492), /* ceil */ + JS_ROM_VALUE(362), /* charAt */ + JS_ROM_VALUE(365), /* charCodeAt */ + JS_ROM_VALUE(84), /* class */ + JS_ROM_VALUE(776), /* clearTimeout */ + JS_ROM_VALUE(552), /* clz32 */ + JS_ROM_VALUE(369), /* codePointAt */ + JS_ROM_VALUE(380), /* concat */ + JS_ROM_VALUE(757), /* console */ + JS_ROM_VALUE(87), /* const */ + JS_ROM_VALUE(183), /* constructor */ + JS_ROM_VALUE(49), /* continue */ + JS_ROM_VALUE(524), /* cos */ + JS_ROM_VALUE(242), /* create */ + JS_ROM_VALUE(77), /* debugger */ + JS_ROM_VALUE(59), /* default */ + JS_ROM_VALUE(227), /* defineProperty */ + JS_ROM_VALUE(22), /* delete */ + JS_ROM_VALUE(39), /* do */ + JS_ROM_VALUE(11), /* else */ + JS_ROM_VALUE(90), /* enum */ + JS_ROM_VALUE(165), /* eval */ + JS_ROM_VALUE(453), /* every */ + JS_ROM_VALUE(613), /* exec */ + JS_ROM_VALUE(540), /* exp */ + JS_ROM_VALUE(93), /* export */ + JS_ROM_VALUE(96), /* extends */ + JS_ROM_VALUE(3), /* false */ + JS_ROM_VALUE(464), /* filter */ + JS_ROM_VALUE(70), /* finally */ + JS_ROM_VALUE(606), /* flags */ + JS_ROM_VALUE(489), /* floor */ + JS_ROM_VALUE(44), /* for */ + JS_ROM_VALUE(459), /* forEach */ + JS_ROM_VALUE(348), /* fromCharCode */ + JS_ROM_VALUE(353), /* fromCodePoint */ + JS_ROM_VALUE(555), /* fround */ + JS_ROM_VALUE(73), /* function */ + JS_ROM_VALUE(767), /* gc */ + JS_ROM_VALUE(175), /* get */ + JS_ROM_VALUE(698), /* get buffer */ + JS_ROM_VALUE(671), /* get byteLength */ + JS_ROM_VALUE(690), /* get byteOffset */ + JS_ROM_VALUE(609), /* get flags */ + JS_ROM_VALUE(589), /* get lastIndex */ + JS_ROM_VALUE(276), /* get length */ + JS_ROM_VALUE(622), /* get message */ + JS_ROM_VALUE(280), /* get name */ + JS_ROM_VALUE(257), /* get prototype */ + JS_ROM_VALUE(602), /* get source */ + JS_ROM_VALUE(629), /* get stack */ + JS_ROM_VALUE(232), /* getPrototypeOf */ + JS_ROM_VALUE(753), /* globalThis */ + JS_ROM_VALUE(248), /* hasOwnProperty */ + JS_ROM_VALUE(9), /* if */ + JS_ROM_VALUE(105), /* implements */ + JS_ROM_VALUE(99), /* import */ + JS_ROM_VALUE(549), /* imul */ + JS_ROM_VALUE(33), /* in */ + JS_ROM_VALUE(215), /* index */ + JS_ROM_VALUE(383), /* indexOf */ + JS_ROM_VALUE(218), /* input */ + JS_ROM_VALUE(35), /* instanceof */ + JS_ROM_VALUE(109), /* interface */ + JS_ROM_VALUE(430), /* isArray */ + JS_ROM_VALUE(749), /* isFinite */ + JS_ROM_VALUE(746), /* isNaN */ + JS_ROM_VALUE(438), /* join */ + JS_ROM_VALUE(245), /* keys */ + JS_ROM_VALUE(585), /* lastIndex */ + JS_ROM_VALUE(386), /* lastIndexOf */ + JS_ROM_VALUE(187), /* length */ + JS_ROM_VALUE(113), /* let */ + JS_ROM_VALUE(769), /* load */ + JS_ROM_VALUE(542), /* log */ + JS_ROM_VALUE(564), /* log10 */ + JS_ROM_VALUE(561), /* log2 */ + JS_ROM_VALUE(462), /* map */ + JS_ROM_VALUE(390), /* match */ + JS_ROM_VALUE(482), /* max */ + JS_ROM_VALUE(619), /* message */ + JS_ROM_VALUE(480), /* min */ + JS_ROM_VALUE(205), /* name */ + JS_ROM_VALUE(31), /* new */ + JS_ROM_VALUE(570), /* now */ + JS_ROM_VALUE(0), /* null */ + JS_ROM_VALUE(143), /* number */ + JS_ROM_VALUE(146), /* object */ + JS_ROM_VALUE(193), /* of */ + JS_ROM_VALUE(115), /* package */ + JS_ROM_VALUE(575), /* parse */ + JS_ROM_VALUE(291), /* parseFloat */ + JS_ROM_VALUE(287), /* parseInt */ + JS_ROM_VALUE(760), /* performance */ + JS_ROM_VALUE(436), /* pop */ + JS_ROM_VALUE(544), /* pow */ + JS_ROM_VALUE(764), /* print */ + JS_ROM_VALUE(118), /* private */ + JS_ROM_VALUE(121), /* protected */ + JS_ROM_VALUE(179), /* prototype */ + JS_ROM_VALUE(125), /* public */ + JS_ROM_VALUE(433), /* push */ + JS_ROM_VALUE(546), /* random */ + JS_ROM_VALUE(467), /* reduce */ + JS_ROM_VALUE(470), /* reduceRight */ + JS_ROM_VALUE(424), /* repeat */ + JS_ROM_VALUE(393), /* replace */ + JS_ROM_VALUE(396), /* replaceAll */ + JS_ROM_VALUE(14), /* return */ + JS_ROM_VALUE(441), /* reverse */ + JS_ROM_VALUE(495), /* round */ + JS_ROM_VALUE(400), /* search */ + JS_ROM_VALUE(177), /* set */ + JS_ROM_VALUE(594), /* set lastIndex */ + JS_ROM_VALUE(358), /* set length */ + JS_ROM_VALUE(262), /* set prototype */ + JS_ROM_VALUE(237), /* setPrototypeOf */ + JS_ROM_VALUE(772), /* setTimeout */ + JS_ROM_VALUE(444), /* shift */ + JS_ROM_VALUE(484), /* sign */ + JS_ROM_VALUE(522), /* sin */ + JS_ROM_VALUE(373), /* slice */ + JS_ROM_VALUE(456), /* some */ + JS_ROM_VALUE(474), /* sort */ + JS_ROM_VALUE(599), /* source */ + JS_ROM_VALUE(447), /* splice */ + JS_ROM_VALUE(403), /* split */ + JS_ROM_VALUE(498), /* sqrt */ + JS_ROM_VALUE(626), /* stack */ + JS_ROM_VALUE(128), /* static */ + JS_ROM_VALUE(153), /* string */ + JS_ROM_VALUE(578), /* stringify */ + JS_ROM_VALUE(702), /* subarray */ + JS_ROM_VALUE(376), /* substring */ + JS_ROM_VALUE(102), /* super */ + JS_ROM_VALUE(53), /* switch */ + JS_ROM_VALUE(526), /* tan */ + JS_ROM_VALUE(190), /* target */ + JS_ROM_VALUE(616), /* test */ + JS_ROM_VALUE(19), /* this */ + JS_ROM_VALUE(62), /* throw */ + JS_ROM_VALUE(330), /* toExponential */ + JS_ROM_VALUE(335), /* toFixed */ + JS_ROM_VALUE(406), /* toLowerCase */ + JS_ROM_VALUE(338), /* toPrecision */ + JS_ROM_VALUE(136), /* toString */ + JS_ROM_VALUE(410), /* toUpperCase */ + JS_ROM_VALUE(414), /* trim */ + JS_ROM_VALUE(417), /* trimEnd */ + JS_ROM_VALUE(420), /* trimStart */ + JS_ROM_VALUE(6), /* true */ + JS_ROM_VALUE(558), /* trunc */ + JS_ROM_VALUE(65), /* try */ + JS_ROM_VALUE(28), /* typeof */ + JS_ROM_VALUE(149), /* undefined */ + JS_ROM_VALUE(450), /* unshift */ + JS_ROM_VALUE(172), /* value */ + JS_ROM_VALUE(140), /* valueOf */ + JS_ROM_VALUE(17), /* var */ + JS_ROM_VALUE(25), /* void */ + JS_ROM_VALUE(41), /* while */ + JS_ROM_VALUE(81), /* with */ + JS_ROM_VALUE(131), /* yield */ + + /* properties (offset=1014) */ + JS_VALUE_ARRAY_HEADER(24), + 6 << 1, /* n_props */ + 3 << 1, /* hash_mask */ + 18 << 1, + 9 << 1, + 21 << 1, + 15 << 1, + JS_ROM_VALUE(227) /* defineProperty */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 2), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(232) /* getPrototypeOf */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 3), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(237) /* setPrototypeOf */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 4), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(242) /* create */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 5), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(245) /* keys */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 6), + (12 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_OBJECT << 1, + (6 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1039) */ + JS_VALUE_ARRAY_HEADER(13), + 3 << 1, /* n_props */ + 1 << 1, /* hash_mask */ + 10 << 1, + 7 << 1, + JS_ROM_VALUE(248) /* hasOwnProperty */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 7), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(136) /* toString */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 8), + (4 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_OBJECT - 1) << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1053) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1014), + 1, + JS_ROM_VALUE(1039), + JS_NULL, + + /* properties (offset=1058) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_CLOSURE << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* getset (offset=1065) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 10), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 11), + + /* getset (offset=1068) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 12), + JS_UNDEFINED, + + /* getset (offset=1071) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 13), + JS_UNDEFINED, + + /* properties (offset=1074) */ + JS_VALUE_ARRAY_HEADER(30), + 8 << 1, /* n_props */ + 3 << 1, /* hash_mask */ + 24 << 1, + 18 << 1, + 27 << 1, + 12 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_ROM_VALUE(1065), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(267) /* call */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 14), + (6 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(270) /* apply */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 15), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(273) /* bind */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 16), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(136) /* toString */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 17), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(187) /* length */, + JS_ROM_VALUE(1068), + (9 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(205) /* name */, + JS_ROM_VALUE(1071), + (15 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_CLOSURE - 1) << 1, + (21 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1105) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1058), + 9, + JS_ROM_VALUE(1074), + JS_NULL, + + /* float64 (offset=1110) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0xffffffff, + 0x7fefffff, + + /* float64 (offset=1113) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x00000001, + 0x00000000, + + /* float64 (offset=1116) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x00000000, + 0x7ff80000, + + /* float64 (offset=1119) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x00000000, + 0xfff00000, + + /* float64 (offset=1122) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x00000000, + 0x7ff00000, + + /* float64 (offset=1125) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x00000000, + 0x3cb00000, + + /* float64 (offset=1128) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0xffffffff, + 0x433fffff, + + /* float64 (offset=1131) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0xffffffff, + 0xc33fffff, + + /* properties (offset=1134) */ + JS_VALUE_ARRAY_HEADER(43), + 11 << 1, /* n_props */ + 7 << 1, /* hash_mask */ + 0 << 1, + 0 << 1, + 40 << 1, + 0 << 1, + 28 << 1, + 37 << 1, + 25 << 1, + 34 << 1, + JS_ROM_VALUE(287) /* parseInt */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 19), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(291) /* parseFloat */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 20), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(295) /* MAX_VALUE */, + JS_ROM_VALUE(1110), + (10 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(299) /* MIN_VALUE */, + JS_ROM_VALUE(1113), + (13 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(195) /* NaN */, + JS_ROM_VALUE(1116), + (19 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(303) /* NEGATIVE_INFINITY */, + JS_ROM_VALUE(1119), + (16 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(309) /* POSITIVE_INFINITY */, + JS_ROM_VALUE(1122), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(315) /* EPSILON */, + JS_ROM_VALUE(1125), + (22 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(318) /* MAX_SAFE_INTEGER */, + JS_ROM_VALUE(1128), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(324) /* MIN_SAFE_INTEGER */, + JS_ROM_VALUE(1131), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_NUMBER << 1, + (31 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1178) */ + JS_VALUE_ARRAY_HEADER(21), + 5 << 1, /* n_props */ + 3 << 1, /* hash_mask */ + 0 << 1, + 15 << 1, + 18 << 1, + 12 << 1, + JS_ROM_VALUE(330) /* toExponential */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 21), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(335) /* toFixed */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 22), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(338) /* toPrecision */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 23), + (6 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(136) /* toString */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 24), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_NUMBER - 1) << 1, + (9 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1200) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1134), + 18, + JS_ROM_VALUE(1178), + JS_NULL, + + /* properties (offset=1205) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_BOOLEAN << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1212) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_BOOLEAN - 1) << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1219) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1205), + 25, + JS_ROM_VALUE(1212), + JS_NULL, + + /* properties (offset=1224) */ + JS_VALUE_ARRAY_HEADER(13), + 3 << 1, /* n_props */ + 1 << 1, /* hash_mask */ + 10 << 1, + 4 << 1, + JS_ROM_VALUE(348) /* fromCharCode */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 27), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(353) /* fromCodePoint */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 28), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_STRING << 1, + (7 << 1) | (JS_PROP_SPECIAL << 30), + /* getset (offset=1238) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 29), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 30), + + /* properties (offset=1241) */ + JS_VALUE_ARRAY_HEADER(84), + 22 << 1, /* n_props */ + 15 << 1, /* hash_mask */ + 69 << 1, + 54 << 1, + 57 << 1, + 42 << 1, + 30 << 1, + 72 << 1, + 81 << 1, + 60 << 1, + 48 << 1, + 78 << 1, + 18 << 1, + 63 << 1, + 24 << 1, + 51 << 1, + 39 << 1, + 66 << 1, + JS_ROM_VALUE(187) /* length */, + JS_ROM_VALUE(1238), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(362) /* charAt */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 31), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(365) /* charCodeAt */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 32), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(369) /* codePointAt */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 33), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(373) /* slice */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 34), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(376) /* substring */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 35), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(380) /* concat */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 36), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(383) /* indexOf */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 37), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(386) /* lastIndexOf */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 38), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(390) /* match */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 39), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(393) /* replace */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 40), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(396) /* replaceAll */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 41), + (36 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(400) /* search */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 42), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(403) /* split */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 43), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(406) /* toLowerCase */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 44), + (45 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(410) /* toUpperCase */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 45), + (21 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(414) /* trim */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 46), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(417) /* trimEnd */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 47), + (27 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(420) /* trimStart */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 48), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(136) /* toString */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 49), + (33 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(424) /* repeat */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 50), + (75 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_STRING - 1) << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1326) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1224), + 26, + JS_ROM_VALUE(1241), + JS_NULL, + + /* properties (offset=1331) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(430) /* isArray */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 52), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* getset (offset=1341) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 53), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 54), + + /* properties (offset=1344) */ + JS_VALUE_ARRAY_HEADER(87), + 23 << 1, /* n_props */ + 15 << 1, /* hash_mask */ + 24 << 1, + 69 << 1, + 78 << 1, + 54 << 1, + 57 << 1, + 27 << 1, + 84 << 1, + 75 << 1, + 36 << 1, + 60 << 1, + 63 << 1, + 81 << 1, + 0 << 1, + 39 << 1, + 51 << 1, + 66 << 1, + JS_ROM_VALUE(380) /* concat */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 55), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(187) /* length */, + JS_ROM_VALUE(1341), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(433) /* push */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 56), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(436) /* pop */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 57), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(438) /* join */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 58), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(136) /* toString */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 59), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(441) /* reverse */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 60), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(444) /* shift */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 61), + (18 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(373) /* slice */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 62), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(447) /* splice */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 63), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(450) /* unshift */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 64), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(383) /* indexOf */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 65), + (45 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(386) /* lastIndexOf */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 66), + (48 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(453) /* every */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 67), + (42 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(456) /* some */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 68), + (33 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(459) /* forEach */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 69), + (21 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(462) /* map */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 70), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(464) /* filter */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 71), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(467) /* reduce */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 72), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(470) /* reduceRight */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 73), + (30 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(467) /* reduce */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 72), + (72 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(474) /* sort */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 74), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_ARRAY - 1) << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1432) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1331), + 51, + JS_ROM_VALUE(1344), + JS_NULL, + + /* float64 (offset=1437) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x8b145769, + 0x4005bf0a, + + /* float64 (offset=1440) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0xbbb55516, + 0x40026bb1, + + /* float64 (offset=1443) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0xfefa39ef, + 0x3fe62e42, + + /* float64 (offset=1446) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x652b82fe, + 0x3ff71547, + + /* float64 (offset=1449) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x1526e50e, + 0x3fdbcb7b, + + /* float64 (offset=1452) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x54442d18, + 0x400921fb, + + /* float64 (offset=1455) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x667f3bcd, + 0x3fe6a09e, + + /* float64 (offset=1458) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x667f3bcd, + 0x3ff6a09e, + + /* properties (offset=1461) */ + JS_VALUE_ARRAY_HEADER(117), + 33 << 1, /* n_props */ + 15 << 1, /* hash_mask */ + 111 << 1, + 93 << 1, + 78 << 1, + 96 << 1, + 99 << 1, + 114 << 1, + 63 << 1, + 81 << 1, + 84 << 1, + 102 << 1, + 105 << 1, + 66 << 1, + 0 << 1, + 87 << 1, + 54 << 1, + 108 << 1, + JS_ROM_VALUE(480) /* min */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 75), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(482) /* max */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 76), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(484) /* sign */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 77), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(487) /* abs */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 78), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(489) /* floor */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 79), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(492) /* ceil */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 80), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(495) /* round */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 81), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(498) /* sqrt */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 82), + (21 << 1) | (JS_PROP_NORMAL << 30), + JS_VALUE_MAKE_SPECIAL(JS_TAG_STRING_CHAR, 69) /* E */, + JS_ROM_VALUE(1437), + (33 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(503) /* LN10 */, + JS_ROM_VALUE(1440), + (27 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(506) /* LN2 */, + JS_ROM_VALUE(1443), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(508) /* LOG2E */, + JS_ROM_VALUE(1446), + (42 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(511) /* LOG10E */, + JS_ROM_VALUE(1449), + (36 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(514) /* PI */, + JS_ROM_VALUE(1452), + (39 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(516) /* SQRT1_2 */, + JS_ROM_VALUE(1455), + (24 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(519) /* SQRT2 */, + JS_ROM_VALUE(1458), + (45 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(522) /* sin */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 83), + (48 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(524) /* cos */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 84), + (51 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(526) /* tan */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 85), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(528) /* asin */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 86), + (18 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(531) /* acos */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 87), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(534) /* atan */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 88), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(537) /* atan2 */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 89), + (30 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(540) /* exp */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 90), + (69 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(542) /* log */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 91), + (72 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(544) /* pow */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 92), + (75 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(546) /* random */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 93), + (57 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(549) /* imul */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 94), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(552) /* clz32 */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 95), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(555) /* fround */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 96), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(558) /* trunc */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 97), + (90 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(561) /* log2 */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 98), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(564) /* log10 */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 99), + (60 << 1) | (JS_PROP_NORMAL << 30), + /* class (offset=1579) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1461), + -1, + JS_NULL, + JS_NULL, + + /* properties (offset=1584) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(570) /* now */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 101), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_DATE << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1594) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_DATE - 1) << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1601) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1584), + 100, + JS_ROM_VALUE(1594), + JS_NULL, + + /* properties (offset=1606) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(575) /* parse */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 102), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(578) /* stringify */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 103), + (3 << 1) | (JS_PROP_NORMAL << 30), + /* class (offset=1616) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1606), + -1, + JS_NULL, + JS_NULL, + + /* properties (offset=1621) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_REGEXP << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* getset (offset=1628) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 105), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 106), + + /* getset (offset=1631) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 107), + JS_UNDEFINED, + + /* getset (offset=1634) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 108), + JS_UNDEFINED, + + /* properties (offset=1637) */ + JS_VALUE_ARRAY_HEADER(24), + 6 << 1, /* n_props */ + 3 << 1, /* hash_mask */ + 15 << 1, + 18 << 1, + 21 << 1, + 12 << 1, + JS_ROM_VALUE(585) /* lastIndex */, + JS_ROM_VALUE(1628), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(599) /* source */, + JS_ROM_VALUE(1631), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(606) /* flags */, + JS_ROM_VALUE(1634), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(613) /* exec */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 109), + (6 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(616) /* test */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 110), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_REGEXP - 1) << 1, + (9 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1662) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1621), + 104, + JS_ROM_VALUE(1637), + JS_NULL, + + /* properties (offset=1667) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_ERROR << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* getset (offset=1674) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 112), + JS_UNDEFINED, + + /* getset (offset=1677) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 113), + JS_UNDEFINED, + + /* properties (offset=1680) */ + JS_VALUE_ARRAY_HEADER(21), + 5 << 1, /* n_props */ + 3 << 1, /* hash_mask */ + 9 << 1, + 6 << 1, + 18 << 1, + 15 << 1, + JS_ROM_VALUE(136) /* toString */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 114), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(205) /* name */, + JS_ROM_VALUE(208) /* Error */, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(619) /* message */, + JS_ROM_VALUE(1674), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(626) /* stack */, + JS_ROM_VALUE(1677), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_ERROR - 1) << 1, + (12 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1702) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1667), + 111, + JS_ROM_VALUE(1680), + JS_NULL, + + /* properties (offset=1707) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_EVAL_ERROR << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1714) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(205) /* name */, + JS_ROM_VALUE(633) /* EvalError */, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_EVAL_ERROR - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1724) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1707), + 115, + JS_ROM_VALUE(1714), + JS_ROM_VALUE(1702), + + /* properties (offset=1729) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_RANGE_ERROR << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1736) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(205) /* name */, + JS_ROM_VALUE(637) /* RangeError */, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_RANGE_ERROR - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1746) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1729), + 116, + JS_ROM_VALUE(1736), + JS_ROM_VALUE(1702), + + /* properties (offset=1751) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_REFERENCE_ERROR << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1758) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(205) /* name */, + JS_ROM_VALUE(641) /* ReferenceError */, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_REFERENCE_ERROR - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1768) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1751), + 117, + JS_ROM_VALUE(1758), + JS_ROM_VALUE(1702), + + /* properties (offset=1773) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_SYNTAX_ERROR << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1780) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(205) /* name */, + JS_ROM_VALUE(646) /* SyntaxError */, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_SYNTAX_ERROR - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1790) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1773), + 118, + JS_ROM_VALUE(1780), + JS_ROM_VALUE(1702), + + /* properties (offset=1795) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_TYPE_ERROR << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1802) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(205) /* name */, + JS_ROM_VALUE(650) /* TypeError */, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_TYPE_ERROR - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1812) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1795), + 119, + JS_ROM_VALUE(1802), + JS_ROM_VALUE(1702), + + /* properties (offset=1817) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_URI_ERROR << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1824) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(205) /* name */, + JS_ROM_VALUE(654) /* URIError */, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_URI_ERROR - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1834) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1817), + 120, + JS_ROM_VALUE(1824), + JS_ROM_VALUE(1702), + + /* properties (offset=1839) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_INTERNAL_ERROR << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1846) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(205) /* name */, + JS_ROM_VALUE(658) /* InternalError */, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_INTERNAL_ERROR - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1856) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1839), + 121, + JS_ROM_VALUE(1846), + JS_ROM_VALUE(1702), + + /* properties (offset=1861) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_ARRAY_BUFFER << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* getset (offset=1868) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 123), + JS_UNDEFINED, + + /* properties (offset=1871) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(667) /* byteLength */, + JS_ROM_VALUE(1868), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_ARRAY_BUFFER - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1881) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1861), + 122, + JS_ROM_VALUE(1871), + JS_NULL, + + /* properties (offset=1886) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_TYPED_ARRAY << 1, + (0 << 1) | (JS_PROP_SPECIAL << 30), + /* getset (offset=1893) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 125), + JS_UNDEFINED, + + /* getset (offset=1896) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 126), + JS_UNDEFINED, + + /* getset (offset=1899) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 127), + JS_UNDEFINED, + + /* getset (offset=1902) */ + JS_VALUE_ARRAY_HEADER(2), + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 128), + JS_UNDEFINED, + + /* properties (offset=1905) */ + JS_VALUE_ARRAY_HEADER(37), + 9 << 1, /* n_props */ + 7 << 1, /* hash_mask */ + 31 << 1, + 25 << 1, + 13 << 1, + 0 << 1, + 0 << 1, + 0 << 1, + 34 << 1, + 28 << 1, + JS_ROM_VALUE(187) /* length */, + JS_ROM_VALUE(1893), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(667) /* byteLength */, + JS_ROM_VALUE(1896), + (10 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(686) /* byteOffset */, + JS_ROM_VALUE(1899), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(695) /* buffer */, + JS_ROM_VALUE(1902), + (0 << 1) | (JS_PROP_GETSET << 30), + JS_ROM_VALUE(438) /* join */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 58), + (16 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(136) /* toString */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 59), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(702) /* subarray */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 129), + (22 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(177) /* set */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 130), + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_TYPED_ARRAY - 1) << 1, + (19 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1943) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1886), + 124, + JS_ROM_VALUE(1905), + JS_NULL, + + /* properties (offset=1948) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 1 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_UINT8C_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1958) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 1 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_UINT8C_ARRAY - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1968) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1948), + 131, + JS_ROM_VALUE(1958), + JS_ROM_VALUE(1943), + + /* properties (offset=1973) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 1 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_INT8_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=1983) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 1 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_INT8_ARRAY - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=1993) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1973), + 132, + JS_ROM_VALUE(1983), + JS_ROM_VALUE(1943), + + /* properties (offset=1998) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 1 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_UINT8_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=2008) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 1 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_UINT8_ARRAY - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=2018) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(1998), + 133, + JS_ROM_VALUE(2008), + JS_ROM_VALUE(1943), + + /* properties (offset=2023) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 2 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_INT16_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=2033) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 2 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_INT16_ARRAY - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=2043) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(2023), + 134, + JS_ROM_VALUE(2033), + JS_ROM_VALUE(1943), + + /* properties (offset=2048) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 2 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_UINT16_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=2058) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 2 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_UINT16_ARRAY - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=2068) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(2048), + 135, + JS_ROM_VALUE(2058), + JS_ROM_VALUE(1943), + + /* properties (offset=2073) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 4 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_INT32_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=2083) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 4 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_INT32_ARRAY - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=2093) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(2073), + 136, + JS_ROM_VALUE(2083), + JS_ROM_VALUE(1943), + + /* properties (offset=2098) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 4 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_UINT32_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=2108) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 4 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_UINT32_ARRAY - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=2118) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(2098), + 137, + JS_ROM_VALUE(2108), + JS_ROM_VALUE(1943), + + /* properties (offset=2123) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 4 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_FLOAT32_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=2133) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 4 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_FLOAT32_ARRAY - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=2143) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(2123), + 138, + JS_ROM_VALUE(2133), + JS_ROM_VALUE(1943), + + /* properties (offset=2148) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 8 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(179) /* prototype */, + JS_CLASS_FLOAT64_ARRAY << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* properties (offset=2158) */ + JS_VALUE_ARRAY_HEADER(9), + 2 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 6 << 1, + JS_ROM_VALUE(706) /* BYTES_PER_ELEMENT */, + 8 << 1, + (0 << 1) | (JS_PROP_NORMAL << 30), + JS_ROM_VALUE(183) /* constructor */, + (uint32_t)(-JS_CLASS_FLOAT64_ARRAY - 1) << 1, + (3 << 1) | (JS_PROP_SPECIAL << 30), + /* class (offset=2168) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(2148), + 139, + JS_ROM_VALUE(2158), + JS_ROM_VALUE(1943), + + /* float64 (offset=2173) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x00000000, + 0x7ff00000, + + /* float64 (offset=2176) */ + JS_MB_HEADER_DEF(JS_MTAG_FLOAT64), + 0x00000000, + 0x7ff80000, + + /* properties (offset=2179) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(542) /* log */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 140), + (0 << 1) | (JS_PROP_NORMAL << 30), + /* class (offset=2186) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(2179), + -1, + JS_NULL, + JS_NULL, + + /* properties (offset=2191) */ + JS_VALUE_ARRAY_HEADER(6), + 1 << 1, /* n_props */ + 0 << 1, /* hash_mask */ + 3 << 1, + JS_ROM_VALUE(570) /* now */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 141), + (0 << 1) | (JS_PROP_NORMAL << 30), + /* class (offset=2198) */ + JS_MB_HEADER_DEF(JS_MTAG_OBJECT), + JS_ROM_VALUE(2191), + -1, + JS_NULL, + JS_NULL, + + /* global object properties (offset=2203) */ + JS_VALUE_ARRAY_HEADER(88), + JS_ROM_VALUE(224) /* Object */, + JS_ROM_VALUE(1053), + JS_ROM_VALUE(253) /* Function */, + JS_ROM_VALUE(1105), + JS_ROM_VALUE(284) /* Number */, + JS_ROM_VALUE(1200), + JS_ROM_VALUE(342) /* Boolean */, + JS_ROM_VALUE(1219), + JS_ROM_VALUE(345) /* String */, + JS_ROM_VALUE(1326), + JS_ROM_VALUE(427) /* Array */, + JS_ROM_VALUE(1432), + JS_ROM_VALUE(477) /* Math */, + JS_ROM_VALUE(1579), + JS_ROM_VALUE(567) /* Date */, + JS_ROM_VALUE(1601), + JS_ROM_VALUE(572) /* JSON */, + JS_ROM_VALUE(1616), + JS_ROM_VALUE(582) /* RegExp */, + JS_ROM_VALUE(1662), + JS_ROM_VALUE(208) /* Error */, + JS_ROM_VALUE(1702), + JS_ROM_VALUE(633) /* EvalError */, + JS_ROM_VALUE(1724), + JS_ROM_VALUE(637) /* RangeError */, + JS_ROM_VALUE(1746), + JS_ROM_VALUE(641) /* ReferenceError */, + JS_ROM_VALUE(1768), + JS_ROM_VALUE(646) /* SyntaxError */, + JS_ROM_VALUE(1790), + JS_ROM_VALUE(650) /* TypeError */, + JS_ROM_VALUE(1812), + JS_ROM_VALUE(654) /* URIError */, + JS_ROM_VALUE(1834), + JS_ROM_VALUE(658) /* InternalError */, + JS_ROM_VALUE(1856), + JS_ROM_VALUE(663) /* ArrayBuffer */, + JS_ROM_VALUE(1881), + JS_ROM_VALUE(676) /* Uint8ClampedArray */, + JS_ROM_VALUE(1968), + JS_ROM_VALUE(712) /* Int8Array */, + JS_ROM_VALUE(1993), + JS_ROM_VALUE(716) /* Uint8Array */, + JS_ROM_VALUE(2018), + JS_ROM_VALUE(720) /* Int16Array */, + JS_ROM_VALUE(2043), + JS_ROM_VALUE(724) /* Uint16Array */, + JS_ROM_VALUE(2068), + JS_ROM_VALUE(728) /* Int32Array */, + JS_ROM_VALUE(2093), + JS_ROM_VALUE(732) /* Uint32Array */, + JS_ROM_VALUE(2118), + JS_ROM_VALUE(736) /* Float32Array */, + JS_ROM_VALUE(2143), + JS_ROM_VALUE(741) /* Float64Array */, + JS_ROM_VALUE(2168), + JS_ROM_VALUE(287) /* parseInt */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 19), + JS_ROM_VALUE(291) /* parseFloat */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 20), + JS_ROM_VALUE(165) /* eval */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 142), + JS_ROM_VALUE(746) /* isNaN */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 143), + JS_ROM_VALUE(749) /* isFinite */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 144), + JS_ROM_VALUE(197) /* Infinity */, + JS_ROM_VALUE(2173), + JS_ROM_VALUE(195) /* NaN */, + JS_ROM_VALUE(2176), + JS_ROM_VALUE(149) /* undefined */, + JS_UNDEFINED, + JS_ROM_VALUE(753) /* globalThis */, + JS_NULL, + JS_ROM_VALUE(757) /* console */, + JS_ROM_VALUE(2186), + JS_ROM_VALUE(760) /* performance */, + JS_ROM_VALUE(2198), + JS_ROM_VALUE(764) /* print */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 145), + JS_ROM_VALUE(767) /* gc */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 146), + JS_ROM_VALUE(769) /* load */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 147), + JS_ROM_VALUE(772) /* setTimeout */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 148), + JS_ROM_VALUE(776) /* clearTimeout */, + JS_VALUE_MAKE_SPECIAL(JS_TAG_SHORT_FUNC, 149), +}; + +static const JSCFunctionDef js_c_function_table[] = { + { { .generic_params = js_function_bound }, + JS_ROM_VALUE(221) /* bound */, + JS_CFUNC_generic_params, 0, 0 }, + { { .constructor = js_object_constructor }, + JS_ROM_VALUE(224) /* Object */, + JS_CFUNC_constructor, 1, JS_CLASS_OBJECT }, + { { .generic = js_object_defineProperty }, + JS_ROM_VALUE(227) /* defineProperty */, + JS_CFUNC_generic, 3, 0 }, + { { .generic = js_object_getPrototypeOf }, + JS_ROM_VALUE(232) /* getPrototypeOf */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_object_setPrototypeOf }, + JS_ROM_VALUE(237) /* setPrototypeOf */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_object_create }, + JS_ROM_VALUE(242) /* create */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_object_keys }, + JS_ROM_VALUE(245) /* keys */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_object_hasOwnProperty }, + JS_ROM_VALUE(248) /* hasOwnProperty */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_object_toString }, + JS_ROM_VALUE(136) /* toString */, + JS_CFUNC_generic, 0, 0 }, + { { .constructor = js_function_constructor }, + JS_ROM_VALUE(253) /* Function */, + JS_CFUNC_constructor, 1, JS_CLASS_CLOSURE }, + { { .generic = js_function_get_prototype }, + JS_ROM_VALUE(257) /* get prototype */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_function_set_prototype }, + JS_ROM_VALUE(262) /* set prototype */, + JS_CFUNC_generic, 1, 0 }, + { { .generic_magic = js_function_get_length_name }, + JS_ROM_VALUE(276) /* get length */, + JS_CFUNC_generic_magic, 0, 0 }, + { { .generic_magic = js_function_get_length_name }, + JS_ROM_VALUE(280) /* get name */, + JS_CFUNC_generic_magic, 0, 1 }, + { { .generic = js_function_call }, + JS_ROM_VALUE(267) /* call */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_function_apply }, + JS_ROM_VALUE(270) /* apply */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_function_bind }, + JS_ROM_VALUE(273) /* bind */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_function_toString }, + JS_ROM_VALUE(136) /* toString */, + JS_CFUNC_generic, 0, 0 }, + { { .constructor = js_number_constructor }, + JS_ROM_VALUE(284) /* Number */, + JS_CFUNC_constructor, 1, JS_CLASS_NUMBER }, + { { .generic = js_number_parseInt }, + JS_ROM_VALUE(287) /* parseInt */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_number_parseFloat }, + JS_ROM_VALUE(291) /* parseFloat */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_number_toExponential }, + JS_ROM_VALUE(330) /* toExponential */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_number_toFixed }, + JS_ROM_VALUE(335) /* toFixed */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_number_toPrecision }, + JS_ROM_VALUE(338) /* toPrecision */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_number_toString }, + JS_ROM_VALUE(136) /* toString */, + JS_CFUNC_generic, 1, 0 }, + { { .constructor = js_boolean_constructor }, + JS_ROM_VALUE(342) /* Boolean */, + JS_CFUNC_constructor, 1, JS_CLASS_BOOLEAN }, + { { .constructor = js_string_constructor }, + JS_ROM_VALUE(345) /* String */, + JS_CFUNC_constructor, 1, JS_CLASS_STRING }, + { { .generic_magic = js_string_fromCharCode }, + JS_ROM_VALUE(348) /* fromCharCode */, + JS_CFUNC_generic_magic, 1, 0 }, + { { .generic_magic = js_string_fromCharCode }, + JS_ROM_VALUE(353) /* fromCodePoint */, + JS_CFUNC_generic_magic, 1, 1 }, + { { .generic = js_string_get_length }, + JS_ROM_VALUE(276) /* get length */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_string_set_length }, + JS_ROM_VALUE(358) /* set length */, + JS_CFUNC_generic, 1, 0 }, + { { .generic_magic = js_string_charAt }, + JS_ROM_VALUE(362) /* charAt */, + JS_CFUNC_generic_magic, 1, magic_charAt }, + { { .generic_magic = js_string_charAt }, + JS_ROM_VALUE(365) /* charCodeAt */, + JS_CFUNC_generic_magic, 1, magic_charCodeAt }, + { { .generic_magic = js_string_charAt }, + JS_ROM_VALUE(369) /* codePointAt */, + JS_CFUNC_generic_magic, 1, magic_codePointAt }, + { { .generic = js_string_slice }, + JS_ROM_VALUE(373) /* slice */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_string_substring }, + JS_ROM_VALUE(376) /* substring */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_string_concat }, + JS_ROM_VALUE(380) /* concat */, + JS_CFUNC_generic, 1, 0 }, + { { .generic_magic = js_string_indexOf }, + JS_ROM_VALUE(383) /* indexOf */, + JS_CFUNC_generic_magic, 1, 0 }, + { { .generic_magic = js_string_indexOf }, + JS_ROM_VALUE(386) /* lastIndexOf */, + JS_CFUNC_generic_magic, 1, 1 }, + { { .generic = js_string_match }, + JS_ROM_VALUE(390) /* match */, + JS_CFUNC_generic, 1, 0 }, + { { .generic_magic = js_string_replace }, + JS_ROM_VALUE(393) /* replace */, + JS_CFUNC_generic_magic, 2, 0 }, + { { .generic_magic = js_string_replace }, + JS_ROM_VALUE(396) /* replaceAll */, + JS_CFUNC_generic_magic, 2, 1 }, + { { .generic = js_string_search }, + JS_ROM_VALUE(400) /* search */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_string_split }, + JS_ROM_VALUE(403) /* split */, + JS_CFUNC_generic, 2, 0 }, + { { .generic_magic = js_string_toLowerCase }, + JS_ROM_VALUE(406) /* toLowerCase */, + JS_CFUNC_generic_magic, 0, 1 }, + { { .generic_magic = js_string_toLowerCase }, + JS_ROM_VALUE(410) /* toUpperCase */, + JS_CFUNC_generic_magic, 0, 0 }, + { { .generic_magic = js_string_trim }, + JS_ROM_VALUE(414) /* trim */, + JS_CFUNC_generic_magic, 0, 3 }, + { { .generic_magic = js_string_trim }, + JS_ROM_VALUE(417) /* trimEnd */, + JS_CFUNC_generic_magic, 0, 2 }, + { { .generic_magic = js_string_trim }, + JS_ROM_VALUE(420) /* trimStart */, + JS_CFUNC_generic_magic, 0, 1 }, + { { .generic = js_string_toString }, + JS_ROM_VALUE(136) /* toString */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_string_repeat }, + JS_ROM_VALUE(424) /* repeat */, + JS_CFUNC_generic, 1, 0 }, + { { .constructor = js_array_constructor }, + JS_ROM_VALUE(427) /* Array */, + JS_CFUNC_constructor, 1, JS_CLASS_ARRAY }, + { { .generic = js_array_isArray }, + JS_ROM_VALUE(430) /* isArray */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_array_get_length }, + JS_ROM_VALUE(276) /* get length */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_array_set_length }, + JS_ROM_VALUE(358) /* set length */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_array_concat }, + JS_ROM_VALUE(380) /* concat */, + JS_CFUNC_generic, 1, 0 }, + { { .generic_magic = js_array_push }, + JS_ROM_VALUE(433) /* push */, + JS_CFUNC_generic_magic, 1, 0 }, + { { .generic = js_array_pop }, + JS_ROM_VALUE(436) /* pop */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_array_join }, + JS_ROM_VALUE(438) /* join */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_array_toString }, + JS_ROM_VALUE(136) /* toString */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_array_reverse }, + JS_ROM_VALUE(441) /* reverse */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_array_shift }, + JS_ROM_VALUE(444) /* shift */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_array_slice }, + JS_ROM_VALUE(373) /* slice */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_array_splice }, + JS_ROM_VALUE(447) /* splice */, + JS_CFUNC_generic, 2, 0 }, + { { .generic_magic = js_array_push }, + JS_ROM_VALUE(450) /* unshift */, + JS_CFUNC_generic_magic, 1, 1 }, + { { .generic_magic = js_array_indexOf }, + JS_ROM_VALUE(383) /* indexOf */, + JS_CFUNC_generic_magic, 1, 0 }, + { { .generic_magic = js_array_indexOf }, + JS_ROM_VALUE(386) /* lastIndexOf */, + JS_CFUNC_generic_magic, 1, 1 }, + { { .generic_magic = js_array_every }, + JS_ROM_VALUE(453) /* every */, + JS_CFUNC_generic_magic, 1, js_special_every }, + { { .generic_magic = js_array_every }, + JS_ROM_VALUE(456) /* some */, + JS_CFUNC_generic_magic, 1, js_special_some }, + { { .generic_magic = js_array_every }, + JS_ROM_VALUE(459) /* forEach */, + JS_CFUNC_generic_magic, 1, js_special_forEach }, + { { .generic_magic = js_array_every }, + JS_ROM_VALUE(462) /* map */, + JS_CFUNC_generic_magic, 1, js_special_map }, + { { .generic_magic = js_array_every }, + JS_ROM_VALUE(464) /* filter */, + JS_CFUNC_generic_magic, 1, js_special_filter }, + { { .generic_magic = js_array_reduce }, + JS_ROM_VALUE(467) /* reduce */, + JS_CFUNC_generic_magic, 1, js_special_reduce }, + { { .generic_magic = js_array_reduce }, + JS_ROM_VALUE(470) /* reduceRight */, + JS_CFUNC_generic_magic, 1, js_special_reduceRight }, + { { .generic = js_array_sort }, + JS_ROM_VALUE(474) /* sort */, + JS_CFUNC_generic, 1, 0 }, + { { .generic_magic = js_math_min_max }, + JS_ROM_VALUE(480) /* min */, + JS_CFUNC_generic_magic, 2, 0 }, + { { .generic_magic = js_math_min_max }, + JS_ROM_VALUE(482) /* max */, + JS_CFUNC_generic_magic, 2, 1 }, + { { .f_f = js_math_sign }, + JS_ROM_VALUE(484) /* sign */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_fabs }, + JS_ROM_VALUE(487) /* abs */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_floor }, + JS_ROM_VALUE(489) /* floor */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_ceil }, + JS_ROM_VALUE(492) /* ceil */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_round_inf }, + JS_ROM_VALUE(495) /* round */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_sqrt }, + JS_ROM_VALUE(498) /* sqrt */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_sin }, + JS_ROM_VALUE(522) /* sin */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_cos }, + JS_ROM_VALUE(524) /* cos */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_tan }, + JS_ROM_VALUE(526) /* tan */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_asin }, + JS_ROM_VALUE(528) /* asin */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_acos }, + JS_ROM_VALUE(531) /* acos */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_atan }, + JS_ROM_VALUE(534) /* atan */, + JS_CFUNC_f_f, 1, 0 }, + { { .generic = js_math_atan2 }, + JS_ROM_VALUE(537) /* atan2 */, + JS_CFUNC_generic, 2, 0 }, + { { .f_f = js_exp }, + JS_ROM_VALUE(540) /* exp */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_log }, + JS_ROM_VALUE(542) /* log */, + JS_CFUNC_f_f, 1, 0 }, + { { .generic = js_math_pow }, + JS_ROM_VALUE(544) /* pow */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_math_random }, + JS_ROM_VALUE(546) /* random */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_math_imul }, + JS_ROM_VALUE(549) /* imul */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_math_clz32 }, + JS_ROM_VALUE(552) /* clz32 */, + JS_CFUNC_generic, 1, 0 }, + { { .f_f = js_math_fround }, + JS_ROM_VALUE(555) /* fround */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_trunc }, + JS_ROM_VALUE(558) /* trunc */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_log2 }, + JS_ROM_VALUE(561) /* log2 */, + JS_CFUNC_f_f, 1, 0 }, + { { .f_f = js_log10 }, + JS_ROM_VALUE(564) /* log10 */, + JS_CFUNC_f_f, 1, 0 }, + { { .constructor = js_date_constructor }, + JS_ROM_VALUE(567) /* Date */, + JS_CFUNC_constructor, 7, JS_CLASS_DATE }, + { { .generic = js_date_now }, + JS_ROM_VALUE(570) /* now */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_json_parse }, + JS_ROM_VALUE(575) /* parse */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_json_stringify }, + JS_ROM_VALUE(578) /* stringify */, + JS_CFUNC_generic, 3, 0 }, + { { .constructor = js_regexp_constructor }, + JS_ROM_VALUE(582) /* RegExp */, + JS_CFUNC_constructor, 2, JS_CLASS_REGEXP }, + { { .generic = js_regexp_get_lastIndex }, + JS_ROM_VALUE(589) /* get lastIndex */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_regexp_set_lastIndex }, + JS_ROM_VALUE(594) /* set lastIndex */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_regexp_get_source }, + JS_ROM_VALUE(602) /* get source */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_regexp_get_flags }, + JS_ROM_VALUE(609) /* get flags */, + JS_CFUNC_generic, 0, 0 }, + { { .generic_magic = js_regexp_exec }, + JS_ROM_VALUE(613) /* exec */, + JS_CFUNC_generic_magic, 1, 0 }, + { { .generic_magic = js_regexp_exec }, + JS_ROM_VALUE(616) /* test */, + JS_CFUNC_generic_magic, 1, 1 }, + { { .constructor_magic = js_error_constructor }, + JS_ROM_VALUE(208) /* Error */, + JS_CFUNC_constructor_magic, 1, JS_CLASS_ERROR }, + { { .generic_magic = js_error_get_message }, + JS_ROM_VALUE(622) /* get message */, + JS_CFUNC_generic_magic, 0, 0 }, + { { .generic_magic = js_error_get_message }, + JS_ROM_VALUE(629) /* get stack */, + JS_CFUNC_generic_magic, 0, 1 }, + { { .generic = js_error_toString }, + JS_ROM_VALUE(136) /* toString */, + JS_CFUNC_generic, 0, 0 }, + { { .constructor_magic = js_error_constructor }, + JS_ROM_VALUE(633) /* EvalError */, + JS_CFUNC_constructor_magic, 1, JS_CLASS_EVAL_ERROR }, + { { .constructor_magic = js_error_constructor }, + JS_ROM_VALUE(637) /* RangeError */, + JS_CFUNC_constructor_magic, 1, JS_CLASS_RANGE_ERROR }, + { { .constructor_magic = js_error_constructor }, + JS_ROM_VALUE(641) /* ReferenceError */, + JS_CFUNC_constructor_magic, 1, JS_CLASS_REFERENCE_ERROR }, + { { .constructor_magic = js_error_constructor }, + JS_ROM_VALUE(646) /* SyntaxError */, + JS_CFUNC_constructor_magic, 1, JS_CLASS_SYNTAX_ERROR }, + { { .constructor_magic = js_error_constructor }, + JS_ROM_VALUE(650) /* TypeError */, + JS_CFUNC_constructor_magic, 1, JS_CLASS_TYPE_ERROR }, + { { .constructor_magic = js_error_constructor }, + JS_ROM_VALUE(654) /* URIError */, + JS_CFUNC_constructor_magic, 1, JS_CLASS_URI_ERROR }, + { { .constructor_magic = js_error_constructor }, + JS_ROM_VALUE(658) /* InternalError */, + JS_CFUNC_constructor_magic, 1, JS_CLASS_INTERNAL_ERROR }, + { { .constructor = js_array_buffer_constructor }, + JS_ROM_VALUE(663) /* ArrayBuffer */, + JS_CFUNC_constructor, 1, JS_CLASS_ARRAY_BUFFER }, + { { .generic = js_array_buffer_get_byteLength }, + JS_ROM_VALUE(671) /* get byteLength */, + JS_CFUNC_generic, 0, 0 }, + { { .constructor = js_typed_array_base_constructor }, + JS_ROM_VALUE(682) /* TypedArray */, + JS_CFUNC_constructor, 0, JS_CLASS_TYPED_ARRAY }, + { { .generic_magic = js_typed_array_get_length }, + JS_ROM_VALUE(276) /* get length */, + JS_CFUNC_generic_magic, 0, 0 }, + { { .generic_magic = js_typed_array_get_length }, + JS_ROM_VALUE(671) /* get byteLength */, + JS_CFUNC_generic_magic, 0, 1 }, + { { .generic_magic = js_typed_array_get_length }, + JS_ROM_VALUE(690) /* get byteOffset */, + JS_CFUNC_generic_magic, 0, 2 }, + { { .generic_magic = js_typed_array_get_length }, + JS_ROM_VALUE(698) /* get buffer */, + JS_CFUNC_generic_magic, 0, 3 }, + { { .generic = js_typed_array_subarray }, + JS_ROM_VALUE(702) /* subarray */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_typed_array_set }, + JS_ROM_VALUE(177) /* set */, + JS_CFUNC_generic, 1, 0 }, + { { .constructor_magic = js_typed_array_constructor }, + JS_ROM_VALUE(676) /* Uint8ClampedArray */, + JS_CFUNC_constructor_magic, 3, JS_CLASS_UINT8C_ARRAY }, + { { .constructor_magic = js_typed_array_constructor }, + JS_ROM_VALUE(712) /* Int8Array */, + JS_CFUNC_constructor_magic, 3, JS_CLASS_INT8_ARRAY }, + { { .constructor_magic = js_typed_array_constructor }, + JS_ROM_VALUE(716) /* Uint8Array */, + JS_CFUNC_constructor_magic, 3, JS_CLASS_UINT8_ARRAY }, + { { .constructor_magic = js_typed_array_constructor }, + JS_ROM_VALUE(720) /* Int16Array */, + JS_CFUNC_constructor_magic, 3, JS_CLASS_INT16_ARRAY }, + { { .constructor_magic = js_typed_array_constructor }, + JS_ROM_VALUE(724) /* Uint16Array */, + JS_CFUNC_constructor_magic, 3, JS_CLASS_UINT16_ARRAY }, + { { .constructor_magic = js_typed_array_constructor }, + JS_ROM_VALUE(728) /* Int32Array */, + JS_CFUNC_constructor_magic, 3, JS_CLASS_INT32_ARRAY }, + { { .constructor_magic = js_typed_array_constructor }, + JS_ROM_VALUE(732) /* Uint32Array */, + JS_CFUNC_constructor_magic, 3, JS_CLASS_UINT32_ARRAY }, + { { .constructor_magic = js_typed_array_constructor }, + JS_ROM_VALUE(736) /* Float32Array */, + JS_CFUNC_constructor_magic, 3, JS_CLASS_FLOAT32_ARRAY }, + { { .constructor_magic = js_typed_array_constructor }, + JS_ROM_VALUE(741) /* Float64Array */, + JS_CFUNC_constructor_magic, 3, JS_CLASS_FLOAT64_ARRAY }, + { { .generic = js_print }, + JS_ROM_VALUE(542) /* log */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_performance_now }, + JS_ROM_VALUE(570) /* now */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_global_eval }, + JS_ROM_VALUE(165) /* eval */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_global_isNaN }, + JS_ROM_VALUE(746) /* isNaN */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_global_isFinite }, + JS_ROM_VALUE(749) /* isFinite */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_print }, + JS_ROM_VALUE(764) /* print */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_gc }, + JS_ROM_VALUE(767) /* gc */, + JS_CFUNC_generic, 0, 0 }, + { { .generic = js_load }, + JS_ROM_VALUE(769) /* load */, + JS_CFUNC_generic, 1, 0 }, + { { .generic = js_setTimeout }, + JS_ROM_VALUE(772) /* setTimeout */, + JS_CFUNC_generic, 2, 0 }, + { { .generic = js_clearTimeout }, + JS_ROM_VALUE(776) /* clearTimeout */, + JS_CFUNC_generic, 1, 0 }, +}; + +#ifndef JS_CLASS_COUNT +#define JS_CLASS_COUNT JS_CLASS_USER /* total number of classes */ +#endif + +static const JSCFinalizer js_c_finalizer_table[JS_CLASS_COUNT - JS_CLASS_USER] = { +}; + +const JSSTDLibraryDef js_stdlib = { + js_stdlib_table, + js_c_function_table, + js_c_finalizer_table, + 2292, + 64, + 781, + 2203, + JS_CLASS_COUNT, +}; diff --git a/mquickjs.c b/mquickjs.c index a950f3c..10e1634 100644 --- a/mquickjs.c +++ b/mquickjs.c @@ -29,7 +29,7 @@ #include #include #include -#include +#include "mquickjs_wasm_setjmp.h" #include "cutils.h" #include "dtoa.h" diff --git a/mquickjs_atom.h b/mquickjs_atom.h new file mode 100644 index 0000000..6f6ab8c --- /dev/null +++ b/mquickjs_atom.h @@ -0,0 +1,75 @@ +#define JS_ATOM_null 0 +#define JS_ATOM_false 3 +#define JS_ATOM_true 6 +#define JS_ATOM_if 9 +#define JS_ATOM_else 11 +#define JS_ATOM_return 14 +#define JS_ATOM_var 17 +#define JS_ATOM_this 19 +#define JS_ATOM_delete 22 +#define JS_ATOM_void 25 +#define JS_ATOM_typeof 28 +#define JS_ATOM_new 31 +#define JS_ATOM_in 33 +#define JS_ATOM_instanceof 35 +#define JS_ATOM_do 39 +#define JS_ATOM_while 41 +#define JS_ATOM_for 44 +#define JS_ATOM_break 46 +#define JS_ATOM_continue 49 +#define JS_ATOM_switch 53 +#define JS_ATOM_case 56 +#define JS_ATOM_default 59 +#define JS_ATOM_throw 62 +#define JS_ATOM_try 65 +#define JS_ATOM_catch 67 +#define JS_ATOM_finally 70 +#define JS_ATOM_function 73 +#define JS_ATOM_debugger 77 +#define JS_ATOM_with 81 +#define JS_ATOM_class 84 +#define JS_ATOM_const 87 +#define JS_ATOM_enum 90 +#define JS_ATOM_export 93 +#define JS_ATOM_extends 96 +#define JS_ATOM_import 99 +#define JS_ATOM_super 102 +#define JS_ATOM_implements 105 +#define JS_ATOM_interface 109 +#define JS_ATOM_let 113 +#define JS_ATOM_package 115 +#define JS_ATOM_private 118 +#define JS_ATOM_protected 121 +#define JS_ATOM_public 125 +#define JS_ATOM_static 128 +#define JS_ATOM_yield 131 +#define JS_ATOM_empty 134 +#define JS_ATOM_toString 136 +#define JS_ATOM_valueOf 140 +#define JS_ATOM_number 143 +#define JS_ATOM_object 146 +#define JS_ATOM_undefined 149 +#define JS_ATOM_string 153 +#define JS_ATOM_boolean 156 +#define JS_ATOM__ret_ 159 +#define JS_ATOM__eval_ 162 +#define JS_ATOM_eval 165 +#define JS_ATOM_arguments 168 +#define JS_ATOM_value 172 +#define JS_ATOM_get 175 +#define JS_ATOM_set 177 +#define JS_ATOM_prototype 179 +#define JS_ATOM_constructor 183 +#define JS_ATOM_length 187 +#define JS_ATOM_target 190 +#define JS_ATOM_of 193 +#define JS_ATOM_NaN 195 +#define JS_ATOM_Infinity 197 +#define JS_ATOM__Infinity 201 +#define JS_ATOM_name 205 +#define JS_ATOM_Error 208 +#define JS_ATOM___proto__ 211 +#define JS_ATOM_index 215 +#define JS_ATOM_input 218 + +#define JS_ATOM_END 221 diff --git a/mquickjs_wasm_setjmp.h b/mquickjs_wasm_setjmp.h new file mode 100644 index 0000000..eb967ad --- /dev/null +++ b/mquickjs_wasm_setjmp.h @@ -0,0 +1,28 @@ +#ifndef MQUICKJS_WASM_SETJMP_H +#define MQUICKJS_WASM_SETJMP_H + +#include +#include + +// A minimal setjmp/longjmp stub for WASM when the proposal is not used. +// MicroQuickJS uses this for syntax error reporting. +// Without the proposal, we can't truly jump, so we'll have to abort if longjmp is hit. + +typedef struct { + uint32_t dummy; +} jmp_buf[1]; + +static inline int setjmp(jmp_buf env) { + (void)env; + return 0; // Always returns 0 for the first call +} + +static inline void __attribute__((noreturn)) longjmp(jmp_buf env, int val) { + (void)env; + (void)val; + // Since we can't actually jump, we abort. + // In a real implementation we'd need the Wasm Exception Handling proposal. + abort(); +} + +#endif diff --git a/packages/WasmEdge b/packages/WasmEdge new file mode 160000 index 0000000..b836225 --- /dev/null +++ b/packages/WasmEdge @@ -0,0 +1 @@ +Subproject commit b836225c7816de1bea26478976036538024c87ef diff --git a/packages/wasi-sdk b/packages/wasi-sdk new file mode 160000 index 0000000..003cf14 --- /dev/null +++ b/packages/wasi-sdk @@ -0,0 +1 @@ +Subproject commit 003cf14969ecca789c1922f9047e9a31872e9b52 diff --git a/packages/wasmedge b/packages/wasmedge new file mode 160000 index 0000000..77c5238 --- /dev/null +++ b/packages/wasmedge @@ -0,0 +1 @@ +Subproject commit 77c5238980b3c9cd8fc7e7dc69b20127d9fd68ca