jseption 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -4
- package/dist/bytecode.js +162 -2
- package/dist/bytecode.js.map +1 -1
- package/dist/interpreter.js +15 -4
- package/dist/interpreter.js.map +1 -1
- package/dist/jit.js +12 -4
- package/dist/jit.js.map +1 -1
- package/dist/jit_runtime.d.ts +2 -0
- package/dist/jit_runtime.js +11 -0
- package/dist/jit_runtime.js.map +1 -1
- package/dist/jseption.d.ts +4 -0
- package/dist/jseption.js +3 -0
- package/dist/jseption.js.map +1 -1
- package/dist/module.d.ts +28 -0
- package/dist/module.js +1166 -0
- package/dist/module.js.map +1 -0
- package/dist/opcodes.js +1 -1
- package/dist/opcodes.js.map +1 -1
- package/dist/parser.d.ts +31 -0
- package/dist/parser.js +2862 -62
- package/dist/parser.js.map +1 -1
- package/dist/qjs.js +86 -17
- package/dist/qjs.js.map +1 -1
- package/dist/quickjs.d.ts +8 -0
- package/dist/quickjs.js +21 -2
- package/dist/quickjs.js.map +1 -1
- package/dist/std.d.ts +2 -0
- package/dist/std.js +34 -0
- package/dist/std.js.map +1 -1
- package/dist/values.d.ts +78 -0
- package/dist/values.js +85 -0
- package/dist/values.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/dist/std.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { JSContext } from './quickjs.ts';
|
|
2
|
+
import type { JSModuleLoader } from './module.ts';
|
|
2
3
|
export declare function js_std_add_helpers(ctx: JSContext, args: string[]): void;
|
|
3
4
|
export declare function js_std_dump_error(ctx: JSContext): void;
|
|
4
5
|
export declare function js_std_loop(ctx: JSContext): Promise<void>;
|
|
6
|
+
export declare function js_std_module_loader(): JSModuleLoader;
|
package/dist/std.js
CHANGED
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { JS_IsException, JS_ToString, JS_GetException, JS_NewObject, JS_NewCFunction, JS_DefinePropertyValueStr, JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_NewArrayFrom, JS_SetPropertyFunctionList, JS_CFUNC_DEF, JS_CFUNC_MAGIC_DEF, JS_Call, JS_ThrowTypeError, JS_Eval, JS_EVAL_TYPE_GLOBAL, JS_ToFloat64, JS_IsFunction, JS_ExecutePendingJob, JS_NewObjectProto, JS_EXCEPTION, JS_GetAnyOpaque, JS_SetOpaque, } from "./quickjs.js";
|
|
6
6
|
import { formatException } from "./jseption.js";
|
|
7
|
+
import { js_module_type_of } from "./module.js";
|
|
7
8
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
9
|
+
import { resolve as path_resolve, dirname as path_dirname } from 'node:path';
|
|
10
|
+
import { pathToFileURL, fileURLToPath } from 'node:url';
|
|
8
11
|
const enc = new TextEncoder();
|
|
9
12
|
function write_out(fd, s) {
|
|
10
13
|
if (fd === 2)
|
|
@@ -270,4 +273,35 @@ export async function js_std_loop(ctx) {
|
|
|
270
273
|
js_std_dump_error(ctx);
|
|
271
274
|
}
|
|
272
275
|
}
|
|
276
|
+
/* The module loader of the command line interpreter: relative and absolute paths (and
|
|
277
|
+
file: URLs) are resolved against the importing file and read from disk. Bare specifiers
|
|
278
|
+
are not resolved: there is no package lookup. Ids are absolute paths; import.meta.url is
|
|
279
|
+
their file: URL. .ts, .mts and .cts files are TypeScript. */
|
|
280
|
+
export function js_std_module_loader() {
|
|
281
|
+
const to_path = (s) => s.startsWith('file:') ? fileURLToPath(s) : s;
|
|
282
|
+
return {
|
|
283
|
+
resolve(specifier, referrer) {
|
|
284
|
+
if (specifier.startsWith('file:'))
|
|
285
|
+
return fileURLToPath(specifier);
|
|
286
|
+
if (specifier.startsWith('/'))
|
|
287
|
+
return path_resolve(specifier);
|
|
288
|
+
if (specifier.startsWith('./') || specifier.startsWith('../')) {
|
|
289
|
+
const base = referrer !== null ? path_resolve(to_path(referrer)) : path_resolve('<cmdline>');
|
|
290
|
+
return path_resolve(path_dirname(base), specifier);
|
|
291
|
+
}
|
|
292
|
+
throw new TypeError(`cannot resolve '${specifier}': only relative and absolute paths are supported`);
|
|
293
|
+
},
|
|
294
|
+
load(id, attributes) {
|
|
295
|
+
let source;
|
|
296
|
+
try {
|
|
297
|
+
source = readFileSync(id, 'utf8');
|
|
298
|
+
}
|
|
299
|
+
catch (e) {
|
|
300
|
+
throw new TypeError(`cannot load module '${id}': ${e.code ?? e.message}`);
|
|
301
|
+
}
|
|
302
|
+
const type = attributes.type === 'json' ? 'json' : js_module_type_of(id);
|
|
303
|
+
return { source, url: pathToFileURL(id).href, type };
|
|
304
|
+
},
|
|
305
|
+
};
|
|
306
|
+
}
|
|
273
307
|
//# sourceMappingURL=std.js.map
|
package/dist/std.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"std.js","sourceRoot":"","sources":["../src/std.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Minimal host bindings for the command line interpreter: port of a subset\n * of quickjs-libc.c (print, console, scriptArgs, std.*, os.*).\n */\nimport {\n JSContext, JSValue, JS_IsException, JS_ToString, JS_GetException, JS_NewObject, JS_NewCFunction, JS_NewCFunctionMagic,\n JSCFunctionEnum, JS_DefinePropertyValueStr, JS_PROP_C_W_E, JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_NewArrayFrom,\n JS_SetPropertyFunctionList, JS_CFUNC_DEF, JS_CFUNC_MAGIC_DEF, JS_Call, JS_ThrowTypeError, JS_ThrowReferenceError,\n JS_Eval, JS_EVAL_TYPE_GLOBAL, JS_IsError, JS_GetPropertyStr, JS_ToFloat64, JS_IsFunction, JS_NewError,\n JS_ExecutePendingJob, JS_IsJobPending, JSRuntime, JS_IsUndefined, JS_NewObjectProto, JS_EXCEPTION, JS_GetAnyOpaque,\n JS_SetOpaque,\n} from './quickjs.ts';\nimport { formatException } from './jseption.ts';\nimport { readFileSync, writeFileSync } from 'node:fs';\n\nconst enc = new TextEncoder();\n\nfunction write_out(fd: number, s: string): void {\n if (fd === 2) process.stderr.write(s); else process.stdout.write(s);\n}\n\nfunction js_print_internal(ctx: JSContext, argv: JSValue[], fd: number): JSValue {\n let out = '';\n for (let i = 0; i < argv.length; i++) {\n if (i !== 0) out += ' ';\n const str = JS_ToString(ctx, argv[i]);\n if (JS_IsException(str)) return str;\n out += str as string;\n }\n write_out(fd, out + '\\n');\n return undefined;\n}\n\nfunction js_print(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return js_print_internal(ctx, argv, 1);\n}\n\nfunction js_console_log(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n return js_print_internal(ctx, argv, magic);\n}\n\n/* std.evalScript(str) */\nfunction js_std_evalScript(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const str = JS_ToString(ctx, argv[0]);\n if (JS_IsException(str)) return str;\n return JS_Eval(ctx, str as string, '<evalScript>', JS_EVAL_TYPE_GLOBAL);\n}\n\nfunction js_std_loadFile(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const str = JS_ToString(ctx, argv[0]);\n if (JS_IsException(str)) return str;\n try {\n return readFileSync(str as string, 'utf8');\n } catch {\n return null;\n }\n}\n\nfunction js_std_writeFile(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const name = JS_ToString(ctx, argv[0]);\n if (JS_IsException(name)) return name;\n const data = JS_ToString(ctx, argv[1]);\n if (JS_IsException(data)) return data;\n writeFileSync(name as string, data as string);\n return undefined;\n}\n\nfunction js_std_exit(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const code = JS_ToFloat64(ctx, argv[0]);\n process.exit(JS_IsException(code) ? 1 : (code as number) | 0);\n}\n\nfunction js_std_gc(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return undefined;\n}\n\nfunction js_std_getenv(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const name = JS_ToString(ctx, argv[0]);\n if (JS_IsException(name)) return name;\n const v = process.env[name as string];\n return v === undefined ? undefined : v;\n}\n\n/* timers: os.setTimeout(func, delay) / os.clearTimeout(id) */\ninterface JSOSTimer { id: number; func: JSValue; timeout: number }\nconst os_timers: JSOSTimer[] = [];\nlet os_timer_id = 1;\n\nfunction js_os_setTimeout(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const func = argv[0];\n if (!JS_IsFunction(ctx, func)) return JS_ThrowTypeError(ctx, 'not a function');\n const delay = JS_ToFloat64(ctx, argv[1]);\n if (JS_IsException(delay)) return delay;\n const th: JSOSTimer = { id: os_timer_id++, func, timeout: Date.now() + Math.max(0, delay as number) };\n os_timers.push(th);\n return th.id;\n}\n\nfunction js_os_clearTimeout(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const id = JS_ToFloat64(ctx, argv[0]);\n if (JS_IsException(id)) return id;\n const i = os_timers.findIndex(t => t.id === id);\n if (i >= 0) os_timers.splice(i, 1);\n return undefined;\n}\n\nfunction js_os_now(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return performance.now();\n}\n\n/* std.open(filename, mode): minimal FILE object (in-memory buffer) */\nclass StdFile {\n data: string;\n pos = 0;\n constructor(public name: string, public mode: string, data: string) { this.data = data; }\n}\n\nfunction std_file_get(ctx: JSContext, this_val: JSValue): StdFile | null {\n const f = JS_GetAnyOpaque(this_val);\n if (f instanceof StdFile) return f;\n JS_ThrowTypeError(ctx, 'not a FILE object');\n return null;\n}\n\nfunction js_std_file_puts(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n for (const a of argv) {\n const str = JS_ToString(ctx, a);\n if (JS_IsException(str)) return str;\n f.data += str as string;\n }\n return undefined;\n}\n\nfunction js_std_file_getline(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n if (f.pos >= f.data.length) return null;\n let end = f.data.indexOf('\\n', f.pos);\n if (end < 0) end = f.data.length;\n const line = f.data.substring(f.pos, end);\n f.pos = end + 1;\n return line;\n}\n\nfunction js_std_file_readAsString(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n const r = f.data.substring(f.pos);\n f.pos = f.data.length;\n return r;\n}\n\nfunction js_std_file_eof(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n return f.pos >= f.data.length;\n}\n\nfunction js_std_file_close(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n if (f.mode.includes('w') || f.mode.includes('a')) {\n try { writeFileSync(f.name, f.data); } catch { return -1; }\n }\n return 0;\n}\n\nlet std_file_proto: JSValue = undefined;\n\nfunction js_std_open(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const name = JS_ToString(ctx, argv[0]);\n if (JS_IsException(name)) return name;\n const mode = JS_ToString(ctx, argv[1]);\n if (JS_IsException(mode)) return mode;\n let data = '';\n if ((mode as string).includes('r') || (mode as string).includes('a')) {\n try { data = readFileSync(name as string, 'utf8'); } catch { if (!(mode as string).includes('a')) return null; }\n }\n if (std_file_proto === undefined) {\n std_file_proto = JS_NewObject(ctx);\n JS_SetPropertyFunctionList(ctx, std_file_proto, [\n JS_CFUNC_DEF('puts', 1, js_std_file_puts),\n JS_CFUNC_DEF('getline', 0, js_std_file_getline),\n JS_CFUNC_DEF('readAsString', 0, js_std_file_readAsString),\n JS_CFUNC_DEF('eof', 0, js_std_file_eof),\n JS_CFUNC_DEF('close', 0, js_std_file_close),\n ]);\n }\n const obj = JS_NewObjectProto(ctx, std_file_proto);\n JS_SetOpaque(obj, new StdFile(name as string, mode as string, data));\n return obj;\n}\n\nconst js_std_funcs = [\n JS_CFUNC_DEF('open', 2, js_std_open),\n JS_CFUNC_DEF('evalScript', 1, js_std_evalScript),\n JS_CFUNC_DEF('loadFile', 1, js_std_loadFile),\n JS_CFUNC_DEF('writeFile', 2, js_std_writeFile),\n JS_CFUNC_DEF('exit', 1, js_std_exit),\n JS_CFUNC_DEF('gc', 0, js_std_gc),\n JS_CFUNC_DEF('getenv', 1, js_std_getenv),\n];\n\nconst js_os_funcs = [\n JS_CFUNC_DEF('setTimeout', 2, js_os_setTimeout),\n JS_CFUNC_DEF('clearTimeout', 1, js_os_clearTimeout),\n JS_CFUNC_DEF('now', 0, js_os_now),\n];\n\nexport function js_std_add_helpers(ctx: JSContext, args: string[]): void {\n const global = ctx.global_obj;\n /* scriptArgs */\n JS_DefinePropertyValueStr(ctx, global, 'scriptArgs', JS_NewArrayFrom(ctx, args.slice()), JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValueStr(ctx, global, 'print', JS_NewCFunction(ctx, js_print, 'print', 1), JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n const console = JS_NewObject(ctx);\n JS_SetPropertyFunctionList(ctx, console, [\n JS_CFUNC_MAGIC_DEF('log', 1, js_console_log, 1),\n JS_CFUNC_MAGIC_DEF('info', 1, js_console_log, 1),\n JS_CFUNC_MAGIC_DEF('debug', 1, js_console_log, 1),\n JS_CFUNC_MAGIC_DEF('warn', 1, js_console_log, 2),\n JS_CFUNC_MAGIC_DEF('error', 1, js_console_log, 2),\n ]);\n JS_DefinePropertyValueStr(ctx, global, 'console', console, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n const std = JS_NewObject(ctx);\n JS_SetPropertyFunctionList(ctx, std, js_std_funcs);\n JS_DefinePropertyValueStr(ctx, global, 'std', std, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n const os = JS_NewObject(ctx);\n JS_SetPropertyFunctionList(ctx, os, js_os_funcs);\n JS_DefinePropertyValueStr(ctx, os, 'platform', process.platform, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValueStr(ctx, global, 'os', os, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n}\n\nexport function js_std_dump_error(ctx: JSContext): void {\n const exc = JS_GetException(ctx);\n process.stderr.write(formatException(ctx, exc) + '\\n');\n}\n\n/* main loop: run pending jobs and timers until none is left */\nexport async function js_std_loop(ctx: JSContext): Promise<void> {\n const rt = ctx.rt;\n for (;;) {\n /* execute the pending jobs */\n const pctx = { ctx: null as JSContext | null };\n for (;;) {\n const r = JS_ExecutePendingJob(rt, pctx);\n if (r <= 0) {\n if (r < 0 && pctx.ctx) js_std_dump_error(pctx.ctx);\n break;\n }\n }\n if (os_timers.length === 0) break;\n /* run the earliest timer */\n os_timers.sort((a, b) => a.timeout - b.timeout);\n const th = os_timers[0];\n const delay = th.timeout - Date.now();\n if (delay > 0) await new Promise(res => setTimeout(res, delay));\n os_timers.shift();\n const ret = JS_Call(ctx, th.func, undefined, []);\n if (JS_IsException(ret)) js_std_dump_error(ctx);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"std.js","sourceRoot":"","sources":["../src/std.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Minimal host bindings for the command line interpreter: port of a subset\n * of quickjs-libc.c (print, console, scriptArgs, std.*, os.*).\n */\nimport {\n JSContext, JSValue, JS_IsException, JS_ToString, JS_GetException, JS_NewObject, JS_NewCFunction, JS_NewCFunctionMagic,\n JSCFunctionEnum, JS_DefinePropertyValueStr, JS_PROP_C_W_E, JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_NewArrayFrom,\n JS_SetPropertyFunctionList, JS_CFUNC_DEF, JS_CFUNC_MAGIC_DEF, JS_Call, JS_ThrowTypeError, JS_ThrowReferenceError,\n JS_Eval, JS_EVAL_TYPE_GLOBAL, JS_IsError, JS_GetPropertyStr, JS_ToFloat64, JS_IsFunction, JS_NewError,\n JS_ExecutePendingJob, JS_IsJobPending, JSRuntime, JS_IsUndefined, JS_NewObjectProto, JS_EXCEPTION, JS_GetAnyOpaque,\n JS_SetOpaque,\n} from './quickjs.ts';\nimport { formatException } from './jseption.ts';\nimport type { JSModuleLoader } from './module.ts';\nimport { js_module_type_of } from './module.ts';\nimport { readFileSync, writeFileSync } from 'node:fs';\nimport { resolve as path_resolve, dirname as path_dirname } from 'node:path';\nimport { pathToFileURL, fileURLToPath } from 'node:url';\n\nconst enc = new TextEncoder();\n\nfunction write_out(fd: number, s: string): void {\n if (fd === 2) process.stderr.write(s); else process.stdout.write(s);\n}\n\nfunction js_print_internal(ctx: JSContext, argv: JSValue[], fd: number): JSValue {\n let out = '';\n for (let i = 0; i < argv.length; i++) {\n if (i !== 0) out += ' ';\n const str = JS_ToString(ctx, argv[i]);\n if (JS_IsException(str)) return str;\n out += str as string;\n }\n write_out(fd, out + '\\n');\n return undefined;\n}\n\nfunction js_print(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return js_print_internal(ctx, argv, 1);\n}\n\nfunction js_console_log(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n return js_print_internal(ctx, argv, magic);\n}\n\n/* std.evalScript(str) */\nfunction js_std_evalScript(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const str = JS_ToString(ctx, argv[0]);\n if (JS_IsException(str)) return str;\n return JS_Eval(ctx, str as string, '<evalScript>', JS_EVAL_TYPE_GLOBAL);\n}\n\nfunction js_std_loadFile(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const str = JS_ToString(ctx, argv[0]);\n if (JS_IsException(str)) return str;\n try {\n return readFileSync(str as string, 'utf8');\n } catch {\n return null;\n }\n}\n\nfunction js_std_writeFile(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const name = JS_ToString(ctx, argv[0]);\n if (JS_IsException(name)) return name;\n const data = JS_ToString(ctx, argv[1]);\n if (JS_IsException(data)) return data;\n writeFileSync(name as string, data as string);\n return undefined;\n}\n\nfunction js_std_exit(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const code = JS_ToFloat64(ctx, argv[0]);\n process.exit(JS_IsException(code) ? 1 : (code as number) | 0);\n}\n\nfunction js_std_gc(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return undefined;\n}\n\nfunction js_std_getenv(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const name = JS_ToString(ctx, argv[0]);\n if (JS_IsException(name)) return name;\n const v = process.env[name as string];\n return v === undefined ? undefined : v;\n}\n\n/* timers: os.setTimeout(func, delay) / os.clearTimeout(id) */\ninterface JSOSTimer { id: number; func: JSValue; timeout: number }\nconst os_timers: JSOSTimer[] = [];\nlet os_timer_id = 1;\n\nfunction js_os_setTimeout(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const func = argv[0];\n if (!JS_IsFunction(ctx, func)) return JS_ThrowTypeError(ctx, 'not a function');\n const delay = JS_ToFloat64(ctx, argv[1]);\n if (JS_IsException(delay)) return delay;\n const th: JSOSTimer = { id: os_timer_id++, func, timeout: Date.now() + Math.max(0, delay as number) };\n os_timers.push(th);\n return th.id;\n}\n\nfunction js_os_clearTimeout(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const id = JS_ToFloat64(ctx, argv[0]);\n if (JS_IsException(id)) return id;\n const i = os_timers.findIndex(t => t.id === id);\n if (i >= 0) os_timers.splice(i, 1);\n return undefined;\n}\n\nfunction js_os_now(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return performance.now();\n}\n\n/* std.open(filename, mode): minimal FILE object (in-memory buffer) */\nclass StdFile {\n data: string;\n pos = 0;\n constructor(public name: string, public mode: string, data: string) { this.data = data; }\n}\n\nfunction std_file_get(ctx: JSContext, this_val: JSValue): StdFile | null {\n const f = JS_GetAnyOpaque(this_val);\n if (f instanceof StdFile) return f;\n JS_ThrowTypeError(ctx, 'not a FILE object');\n return null;\n}\n\nfunction js_std_file_puts(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n for (const a of argv) {\n const str = JS_ToString(ctx, a);\n if (JS_IsException(str)) return str;\n f.data += str as string;\n }\n return undefined;\n}\n\nfunction js_std_file_getline(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n if (f.pos >= f.data.length) return null;\n let end = f.data.indexOf('\\n', f.pos);\n if (end < 0) end = f.data.length;\n const line = f.data.substring(f.pos, end);\n f.pos = end + 1;\n return line;\n}\n\nfunction js_std_file_readAsString(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n const r = f.data.substring(f.pos);\n f.pos = f.data.length;\n return r;\n}\n\nfunction js_std_file_eof(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n return f.pos >= f.data.length;\n}\n\nfunction js_std_file_close(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const f = std_file_get(ctx, this_val);\n if (!f) return JS_EXCEPTION;\n if (f.mode.includes('w') || f.mode.includes('a')) {\n try { writeFileSync(f.name, f.data); } catch { return -1; }\n }\n return 0;\n}\n\nlet std_file_proto: JSValue = undefined;\n\nfunction js_std_open(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const name = JS_ToString(ctx, argv[0]);\n if (JS_IsException(name)) return name;\n const mode = JS_ToString(ctx, argv[1]);\n if (JS_IsException(mode)) return mode;\n let data = '';\n if ((mode as string).includes('r') || (mode as string).includes('a')) {\n try { data = readFileSync(name as string, 'utf8'); } catch { if (!(mode as string).includes('a')) return null; }\n }\n if (std_file_proto === undefined) {\n std_file_proto = JS_NewObject(ctx);\n JS_SetPropertyFunctionList(ctx, std_file_proto, [\n JS_CFUNC_DEF('puts', 1, js_std_file_puts),\n JS_CFUNC_DEF('getline', 0, js_std_file_getline),\n JS_CFUNC_DEF('readAsString', 0, js_std_file_readAsString),\n JS_CFUNC_DEF('eof', 0, js_std_file_eof),\n JS_CFUNC_DEF('close', 0, js_std_file_close),\n ]);\n }\n const obj = JS_NewObjectProto(ctx, std_file_proto);\n JS_SetOpaque(obj, new StdFile(name as string, mode as string, data));\n return obj;\n}\n\nconst js_std_funcs = [\n JS_CFUNC_DEF('open', 2, js_std_open),\n JS_CFUNC_DEF('evalScript', 1, js_std_evalScript),\n JS_CFUNC_DEF('loadFile', 1, js_std_loadFile),\n JS_CFUNC_DEF('writeFile', 2, js_std_writeFile),\n JS_CFUNC_DEF('exit', 1, js_std_exit),\n JS_CFUNC_DEF('gc', 0, js_std_gc),\n JS_CFUNC_DEF('getenv', 1, js_std_getenv),\n];\n\nconst js_os_funcs = [\n JS_CFUNC_DEF('setTimeout', 2, js_os_setTimeout),\n JS_CFUNC_DEF('clearTimeout', 1, js_os_clearTimeout),\n JS_CFUNC_DEF('now', 0, js_os_now),\n];\n\nexport function js_std_add_helpers(ctx: JSContext, args: string[]): void {\n const global = ctx.global_obj;\n /* scriptArgs */\n JS_DefinePropertyValueStr(ctx, global, 'scriptArgs', JS_NewArrayFrom(ctx, args.slice()), JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValueStr(ctx, global, 'print', JS_NewCFunction(ctx, js_print, 'print', 1), JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n const console = JS_NewObject(ctx);\n JS_SetPropertyFunctionList(ctx, console, [\n JS_CFUNC_MAGIC_DEF('log', 1, js_console_log, 1),\n JS_CFUNC_MAGIC_DEF('info', 1, js_console_log, 1),\n JS_CFUNC_MAGIC_DEF('debug', 1, js_console_log, 1),\n JS_CFUNC_MAGIC_DEF('warn', 1, js_console_log, 2),\n JS_CFUNC_MAGIC_DEF('error', 1, js_console_log, 2),\n ]);\n JS_DefinePropertyValueStr(ctx, global, 'console', console, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n const std = JS_NewObject(ctx);\n JS_SetPropertyFunctionList(ctx, std, js_std_funcs);\n JS_DefinePropertyValueStr(ctx, global, 'std', std, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n const os = JS_NewObject(ctx);\n JS_SetPropertyFunctionList(ctx, os, js_os_funcs);\n JS_DefinePropertyValueStr(ctx, os, 'platform', process.platform, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValueStr(ctx, global, 'os', os, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n}\n\nexport function js_std_dump_error(ctx: JSContext): void {\n const exc = JS_GetException(ctx);\n process.stderr.write(formatException(ctx, exc) + '\\n');\n}\n\n/* main loop: run pending jobs and timers until none is left */\nexport async function js_std_loop(ctx: JSContext): Promise<void> {\n const rt = ctx.rt;\n for (;;) {\n /* execute the pending jobs */\n const pctx = { ctx: null as JSContext | null };\n for (;;) {\n const r = JS_ExecutePendingJob(rt, pctx);\n if (r <= 0) {\n if (r < 0 && pctx.ctx) js_std_dump_error(pctx.ctx);\n break;\n }\n }\n if (os_timers.length === 0) break;\n /* run the earliest timer */\n os_timers.sort((a, b) => a.timeout - b.timeout);\n const th = os_timers[0];\n const delay = th.timeout - Date.now();\n if (delay > 0) await new Promise(res => setTimeout(res, delay));\n os_timers.shift();\n const ret = JS_Call(ctx, th.func, undefined, []);\n if (JS_IsException(ret)) js_std_dump_error(ctx);\n }\n}\n\n/* The module loader of the command line interpreter: relative and absolute paths (and\n file: URLs) are resolved against the importing file and read from disk. Bare specifiers\n are not resolved: there is no package lookup. Ids are absolute paths; import.meta.url is\n their file: URL. .ts, .mts and .cts files are TypeScript. */\nexport function js_std_module_loader(): JSModuleLoader {\n const to_path = (s: string): string => s.startsWith('file:') ? fileURLToPath(s) : s;\n return {\n resolve(specifier, referrer) {\n if (specifier.startsWith('file:')) return fileURLToPath(specifier);\n if (specifier.startsWith('/')) return path_resolve(specifier);\n if (specifier.startsWith('./') || specifier.startsWith('../')) {\n const base = referrer !== null ? path_resolve(to_path(referrer)) : path_resolve('<cmdline>');\n return path_resolve(path_dirname(base), specifier);\n }\n throw new TypeError(`cannot resolve '${specifier}': only relative and absolute paths are supported`);\n },\n load(id, attributes) {\n let source: string;\n try {\n source = readFileSync(id, 'utf8');\n } catch (e) {\n throw new TypeError(`cannot load module '${id}': ${(e as NodeJS.ErrnoException).code ?? (e as Error).message}`);\n }\n const type = attributes.type === 'json' ? 'json' : js_module_type_of(id);\n return { source, url: pathToFileURL(id).href, type };\n },\n };\n}\n"]}
|
package/dist/values.d.ts
CHANGED
|
@@ -135,6 +135,8 @@ export declare const JS_EVAL_FLAG_STRICT: number;
|
|
|
135
135
|
export declare const JS_EVAL_FLAG_COMPILE_ONLY: number;
|
|
136
136
|
export declare const JS_EVAL_FLAG_BACKTRACE_BARRIER: number;
|
|
137
137
|
export declare const JS_EVAL_FLAG_ASYNC: number;
|
|
138
|
+
export declare const JS_EVAL_FLAG_STRIP_TYPES: number;
|
|
139
|
+
export declare const JS_EVAL_FLAG_JSX: number;
|
|
138
140
|
export declare const JS_CALL_FLAG_CONSTRUCTOR: number;
|
|
139
141
|
export declare const JS_CALL_FLAG_COPY_ARGV: number;
|
|
140
142
|
export declare const JS_CALL_FLAG_GENERATOR: number;
|
|
@@ -230,6 +232,7 @@ export declare class JSFunctionBytecode {
|
|
|
230
232
|
uses_args: number;
|
|
231
233
|
loop_count: number;
|
|
232
234
|
osr: Map<number, any> | null;
|
|
235
|
+
module: JSModuleDef | null;
|
|
233
236
|
}
|
|
234
237
|
export declare class JSVarRef {
|
|
235
238
|
is_detached: boolean;
|
|
@@ -445,3 +448,78 @@ export declare function JS_VALUE_GET_FLOAT64(v: JSValue): number;
|
|
|
445
448
|
export declare function JS_VALUE_GET_BOOL(v: JSValue): boolean;
|
|
446
449
|
export declare function JS_VALUE_GET_STRING(v: JSValue): string;
|
|
447
450
|
export declare function js_mkval_bool(v: boolean): JSValue;
|
|
451
|
+
export declare const enum JSModuleStatus {
|
|
452
|
+
UNLINKED = 0,
|
|
453
|
+
LINKING = 1,
|
|
454
|
+
LINKED = 2,
|
|
455
|
+
EVALUATING = 3,
|
|
456
|
+
EVALUATING_ASYNC = 4,
|
|
457
|
+
EVALUATED = 5
|
|
458
|
+
}
|
|
459
|
+
export declare class JSReqModuleEntry {
|
|
460
|
+
module_name: JSAtom;
|
|
461
|
+
attributes: Record<string, string> | null;
|
|
462
|
+
module: JSModuleDef | null;
|
|
463
|
+
constructor(module_name: JSAtom, attributes: Record<string, string> | null);
|
|
464
|
+
}
|
|
465
|
+
export declare const enum JSExportType {
|
|
466
|
+
LOCAL = 0,
|
|
467
|
+
INDIRECT = 1
|
|
468
|
+
}
|
|
469
|
+
export declare class JSExportEntry {
|
|
470
|
+
export_type: JSExportType;
|
|
471
|
+
var_idx: number;
|
|
472
|
+
var_ref: JSVarRef | null;
|
|
473
|
+
req_module_idx: number;
|
|
474
|
+
local_name: JSAtom;
|
|
475
|
+
export_name: JSAtom;
|
|
476
|
+
constructor(local_name: JSAtom, export_name: JSAtom, export_type: JSExportType);
|
|
477
|
+
}
|
|
478
|
+
export declare class JSStarExportEntry {
|
|
479
|
+
req_module_idx: number;
|
|
480
|
+
constructor(req_module_idx: number);
|
|
481
|
+
}
|
|
482
|
+
export declare class JSImportEntry {
|
|
483
|
+
var_idx: number;
|
|
484
|
+
is_star: boolean;
|
|
485
|
+
import_name: JSAtom;
|
|
486
|
+
req_module_idx: number;
|
|
487
|
+
constructor(var_idx: number, is_star: boolean, import_name: JSAtom);
|
|
488
|
+
}
|
|
489
|
+
export declare const enum JSModuleKind {
|
|
490
|
+
JS = 0,
|
|
491
|
+
JSON = 1,
|
|
492
|
+
HOST = 2
|
|
493
|
+
}
|
|
494
|
+
export declare class JSModuleDef {
|
|
495
|
+
module_name: JSAtom;
|
|
496
|
+
url: string | null;
|
|
497
|
+
kind: JSModuleKind;
|
|
498
|
+
req_module_entries: JSReqModuleEntry[];
|
|
499
|
+
export_entries: JSExportEntry[];
|
|
500
|
+
star_export_entries: JSStarExportEntry[];
|
|
501
|
+
import_entries: JSImportEntry[];
|
|
502
|
+
has_tla: boolean;
|
|
503
|
+
status: JSModuleStatus;
|
|
504
|
+
dfs_index: number;
|
|
505
|
+
dfs_ancestor_index: number;
|
|
506
|
+
stack_prev: JSModuleDef | null;
|
|
507
|
+
async_parent_modules: JSModuleDef[];
|
|
508
|
+
pending_async_dependencies: number;
|
|
509
|
+
async_evaluation: boolean;
|
|
510
|
+
async_evaluation_timestamp: number;
|
|
511
|
+
cycle_root: JSModuleDef | null;
|
|
512
|
+
promise: JSValue;
|
|
513
|
+
resolving_funcs: [JSValue, JSValue];
|
|
514
|
+
eval_has_exception: boolean;
|
|
515
|
+
eval_exception: JSValue;
|
|
516
|
+
meta_obj: JSValue;
|
|
517
|
+
module_ns: JSValue;
|
|
518
|
+
func_bytecode: JSFunctionBytecode | null;
|
|
519
|
+
func_obj: JSValue;
|
|
520
|
+
func_created: boolean;
|
|
521
|
+
synthetic_exports: Map<JSAtom, JSValue> | null;
|
|
522
|
+
requests_loaded: boolean;
|
|
523
|
+
realm: any;
|
|
524
|
+
constructor(module_name: JSAtom);
|
|
525
|
+
}
|
package/dist/values.js
CHANGED
|
@@ -103,6 +103,10 @@ export const JS_EVAL_FLAG_STRICT = 1 << 3;
|
|
|
103
103
|
export const JS_EVAL_FLAG_COMPILE_ONLY = 1 << 5;
|
|
104
104
|
export const JS_EVAL_FLAG_BACKTRACE_BARRIER = 1 << 6;
|
|
105
105
|
export const JS_EVAL_FLAG_ASYNC = 1 << 7;
|
|
106
|
+
/* strip TypeScript's erasable syntax before compiling (Node's strip-only mode, see docs/TYPESCRIPT.md) */
|
|
107
|
+
export const JS_EVAL_FLAG_STRIP_TYPES = 1 << 8;
|
|
108
|
+
/* compile JSX (see docs/JSX.md); with JS_EVAL_FLAG_STRIP_TYPES, TSX */
|
|
109
|
+
export const JS_EVAL_FLAG_JSX = 1 << 9;
|
|
106
110
|
/* JS_CallInternal flags */
|
|
107
111
|
export const JS_CALL_FLAG_CONSTRUCTOR = 1 << 0;
|
|
108
112
|
export const JS_CALL_FLAG_COPY_ARGV = 1 << 1;
|
|
@@ -171,6 +175,8 @@ export class JSFunctionBytecode {
|
|
|
171
175
|
OSR variants by loop header pc (null: the compiler bailed for that header) */
|
|
172
176
|
loop_count = 0;
|
|
173
177
|
osr = null;
|
|
178
|
+
/* the module this function belongs to (its body or a function nested in it), or null */
|
|
179
|
+
module = null;
|
|
174
180
|
}
|
|
175
181
|
/* A variable reference: aliases a stack slot while the frame is alive,
|
|
176
182
|
then owns the value once the frame exits (detached). */
|
|
@@ -458,4 +464,83 @@ export function JS_VALUE_GET_FLOAT64(v) { return v; }
|
|
|
458
464
|
export function JS_VALUE_GET_BOOL(v) { return v; }
|
|
459
465
|
export function JS_VALUE_GET_STRING(v) { return v; }
|
|
460
466
|
export function js_mkval_bool(v) { return v; }
|
|
467
|
+
/* a module request: `from "x"` (with its import attributes) */
|
|
468
|
+
export class JSReqModuleEntry {
|
|
469
|
+
module_name;
|
|
470
|
+
attributes;
|
|
471
|
+
module = null; /* set when the graph is loaded */
|
|
472
|
+
constructor(module_name, attributes) {
|
|
473
|
+
this.module_name = module_name;
|
|
474
|
+
this.attributes = attributes;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
export class JSExportEntry {
|
|
478
|
+
export_type;
|
|
479
|
+
/* LOCAL: closure variable index in the module function, and its reference once created */
|
|
480
|
+
var_idx = -1;
|
|
481
|
+
var_ref = null;
|
|
482
|
+
/* INDIRECT: the module request it comes from */
|
|
483
|
+
req_module_idx = -1;
|
|
484
|
+
/* LOCAL: the local name; INDIRECT: the imported name, '*' for `export * as ns from` */
|
|
485
|
+
local_name;
|
|
486
|
+
export_name;
|
|
487
|
+
constructor(local_name, export_name, export_type) {
|
|
488
|
+
this.local_name = local_name;
|
|
489
|
+
this.export_name = export_name;
|
|
490
|
+
this.export_type = export_type;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
export class JSStarExportEntry {
|
|
494
|
+
req_module_idx;
|
|
495
|
+
constructor(req_module_idx) {
|
|
496
|
+
this.req_module_idx = req_module_idx;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
export class JSImportEntry {
|
|
500
|
+
var_idx;
|
|
501
|
+
is_star;
|
|
502
|
+
import_name;
|
|
503
|
+
req_module_idx = -1;
|
|
504
|
+
constructor(var_idx, is_star, import_name) {
|
|
505
|
+
this.var_idx = var_idx;
|
|
506
|
+
this.is_star = is_star;
|
|
507
|
+
this.import_name = import_name;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
export class JSModuleDef {
|
|
511
|
+
module_name; /* the normalized id */
|
|
512
|
+
url = null; /* import.meta.url (defaults to the id) */
|
|
513
|
+
kind = 0 /* JSModuleKind.JS */;
|
|
514
|
+
req_module_entries = [];
|
|
515
|
+
export_entries = [];
|
|
516
|
+
star_export_entries = [];
|
|
517
|
+
import_entries = [];
|
|
518
|
+
has_tla = false;
|
|
519
|
+
status = 0 /* JSModuleStatus.UNLINKED */;
|
|
520
|
+
/* temporary, during linking and evaluation */
|
|
521
|
+
dfs_index = 0;
|
|
522
|
+
dfs_ancestor_index = 0;
|
|
523
|
+
stack_prev = null;
|
|
524
|
+
/* asynchronous evaluation (top-level await) */
|
|
525
|
+
async_parent_modules = [];
|
|
526
|
+
pending_async_dependencies = 0;
|
|
527
|
+
async_evaluation = false;
|
|
528
|
+
async_evaluation_timestamp = 0;
|
|
529
|
+
cycle_root = null;
|
|
530
|
+
promise = undefined; /* capability of the evaluation */
|
|
531
|
+
resolving_funcs = [undefined, undefined];
|
|
532
|
+
eval_has_exception = false;
|
|
533
|
+
eval_exception = undefined;
|
|
534
|
+
meta_obj = undefined;
|
|
535
|
+
module_ns = undefined;
|
|
536
|
+
func_bytecode = null; /* JS: the module body */
|
|
537
|
+
func_obj = undefined; /* JS: the function object, once created */
|
|
538
|
+
func_created = false;
|
|
539
|
+
/* JSON and host modules: the value of each export, set at evaluation */
|
|
540
|
+
synthetic_exports = null;
|
|
541
|
+
/* graph loading: true once every request has a module */
|
|
542
|
+
requests_loaded = false;
|
|
543
|
+
realm = null; /* JSContext */
|
|
544
|
+
constructor(module_name) { this.module_name = module_name; }
|
|
545
|
+
}
|
|
461
546
|
//# sourceMappingURL=values.js.map
|
package/dist/values.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Value and object representation (host-values model, see docs/HOST_VALUES.md).\n *\n * Primitive JS values are the host primitives (undefined, null, boolean,\n * number, string, bigint, symbol). Guest objects are host objects whose\n * prototype chains are entirely guest-owned; engine metadata for the\n * objects that need it (class id, internal slots, bytecode) lives in a\n * WeakMap (JSRuntime.meta). The special QuickJS tags (uninitialized,\n * exception, catch offset) are JSSpecial instances that never escape to\n * guest code.\n */\nimport { JSAtom } from './atoms.ts';\n\nexport const enum JSTag {\n UNINITIALIZED = 0,\n INT = 1,\n BOOL = 2,\n NULL = 3,\n UNDEFINED = 4,\n CATCH_OFFSET = 5,\n EXCEPTION = 6,\n FLOAT64 = 7,\n BIG_INT = 8,\n STRING = 9,\n SYMBOL = 10,\n OBJECT = 11,\n}\n\nexport class JSSpecial {\n constructor(public tag: JSTag, public v: number) {}\n}\n\nexport const JS_UNINITIALIZED = new JSSpecial(JSTag.UNINITIALIZED, 0);\nexport const JS_EXCEPTION = new JSSpecial(JSTag.EXCEPTION, 0);\nexport const JS_UNDEFINED = undefined;\nexport const JS_NULL = null;\nexport const JS_TRUE = true;\nexport const JS_FALSE = false;\n\n/* a guest object is any host object (or function) */\nexport type JSObject = object;\n\nexport type JSValue =\n | undefined\n | null\n | boolean\n | number\n | string\n | bigint\n | symbol\n | JSObject\n | JSSpecial;\n\nexport type JSValueConst = JSValue;\n\n/* catch offsets are stored on the stack; cache small ones */\nconst catchOffsetCache: JSSpecial[] = [];\nexport function JS_NewCatchOffset(v: number): JSSpecial {\n let r = catchOffsetCache[v];\n if (r === undefined) {\n r = new JSSpecial(JSTag.CATCH_OFFSET, v);\n if (v < 1024) catchOffsetCache[v] = r;\n }\n return r;\n}\n\nexport function JS_VALUE_GET_TAG(v: JSValue): JSTag {\n switch (typeof v) {\n case 'undefined': return JSTag.UNDEFINED;\n case 'boolean': return JSTag.BOOL;\n case 'number': return Number.isInteger(v) && v >= -2147483648 && v <= 2147483647 && !(v === 0 && 1 / v < 0) ? JSTag.INT : JSTag.FLOAT64;\n case 'string': return JSTag.STRING;\n case 'bigint': return JSTag.BIG_INT;\n case 'symbol': return JSTag.SYMBOL;\n case 'function': return JSTag.OBJECT;\n case 'object':\n if (v === null) return JSTag.NULL;\n if (v instanceof JSSpecial) return v.tag;\n return JSTag.OBJECT;\n }\n return JSTag.UNDEFINED;\n}\n\nexport function JS_IsException(v: JSValue): v is JSSpecial { return v === JS_EXCEPTION; }\nexport function JS_IsUninitialized(v: JSValue): boolean { return v === JS_UNINITIALIZED; }\nexport function JS_IsUndefined(v: JSValue): v is undefined { return v === undefined; }\nexport function JS_IsNull(v: JSValue): v is null { return v === null; }\n/* true for guest objects (including functions); the internal sentinels are excluded */\nexport function JS_IsObject(v: JSValue): v is JSObject {\n const t = typeof v;\n if (t === 'object') return v !== null && !(v instanceof JSSpecial);\n return t === 'function';\n}\nexport function JS_IsString(v: JSValue): v is string { return typeof v === 'string'; }\nexport function JS_IsSymbol(v: JSValue): v is symbol { return typeof v === 'symbol'; }\nexport function JS_IsNumber(v: JSValue): v is number { return typeof v === 'number'; }\nexport function JS_IsBigInt(v: JSValue): v is bigint { return typeof v === 'bigint'; }\nexport function JS_IsBool(v: JSValue): v is boolean { return typeof v === 'boolean'; }\nexport function JS_IsCatchOffset(v: JSValue): v is JSSpecial {\n return v instanceof JSSpecial && v.tag === JSTag.CATCH_OFFSET;\n}\n\n/* class ids (same order as quickjs.c) */\nexport const enum JSClassID {\n OBJECT = 1,\n ARRAY,\n ERROR,\n NUMBER,\n STRING,\n BOOLEAN,\n SYMBOL,\n ARGUMENTS,\n MAPPED_ARGUMENTS,\n DATE,\n MODULE_NS,\n C_FUNCTION,\n BYTECODE_FUNCTION,\n BOUND_FUNCTION,\n C_FUNCTION_DATA,\n GENERATOR_FUNCTION,\n FOR_IN_ITERATOR,\n REGEXP,\n ARRAY_BUFFER,\n SHARED_ARRAY_BUFFER,\n UINT8C_ARRAY,\n INT8_ARRAY,\n UINT8_ARRAY,\n INT16_ARRAY,\n UINT16_ARRAY,\n INT32_ARRAY,\n UINT32_ARRAY,\n BIG_INT64_ARRAY,\n BIG_UINT64_ARRAY,\n FLOAT32_ARRAY,\n FLOAT64_ARRAY,\n DATAVIEW,\n BIG_INT,\n MAP,\n SET,\n WEAKMAP,\n WEAKSET,\n MAP_ITERATOR,\n SET_ITERATOR,\n ARRAY_ITERATOR,\n STRING_ITERATOR,\n REGEXP_STRING_ITERATOR,\n GENERATOR,\n PROXY,\n PROMISE,\n PROMISE_RESOLVE_FUNCTION,\n PROMISE_REJECT_FUNCTION,\n ASYNC_FUNCTION,\n ASYNC_FUNCTION_RESOLVE,\n ASYNC_FUNCTION_REJECT,\n ASYNC_FROM_SYNC_ITERATOR,\n ASYNC_GENERATOR_FUNCTION,\n ASYNC_GENERATOR,\n WEAK_REF,\n FINALIZATION_REGISTRY,\n INIT_COUNT,\n}\n\n/* property flags */\nexport const JS_PROP_CONFIGURABLE = 1 << 0;\nexport const JS_PROP_WRITABLE = 1 << 1;\nexport const JS_PROP_ENUMERABLE = 1 << 2;\nexport const JS_PROP_C_W_E = JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE | JS_PROP_ENUMERABLE;\nexport const JS_PROP_LENGTH = 1 << 3; /* used internally in Arrays */\nexport const JS_PROP_TMASK = 3 << 4;\nexport const JS_PROP_NORMAL = 0 << 4;\nexport const JS_PROP_GETSET = 1 << 4;\nexport const JS_PROP_VARREF = 2 << 4; /* used internally */\nexport const JS_PROP_AUTOINIT = 3 << 4; /* used internally */\n\n/* flags for JS_DefineProperty */\nexport const JS_PROP_HAS_SHIFT = 8;\nexport const JS_PROP_HAS_CONFIGURABLE = 1 << 8;\nexport const JS_PROP_HAS_WRITABLE = 1 << 9;\nexport const JS_PROP_HAS_ENUMERABLE = 1 << 10;\nexport const JS_PROP_HAS_GET = 1 << 11;\nexport const JS_PROP_HAS_SET = 1 << 12;\nexport const JS_PROP_HAS_VALUE = 1 << 13;\n/* throw an exception if false would be returned (JS_DefineProperty/JS_SetProperty) */\nexport const JS_PROP_THROW = 1 << 14;\n/* throw an exception if false would be returned in strict mode */\nexport const JS_PROP_THROW_STRICT = 1 << 15;\nexport const JS_PROP_NO_ADD = 1 << 16; /* internal use */\nexport const JS_PROP_NO_EXOTIC = 1 << 17; /* internal use */\nexport const JS_PROP_DEFINE_PROPERTY = 1 << 18; /* internal use */\nexport const JS_PROP_REFLECT_DEFINE_PROPERTY = 1 << 19; /* internal use */\n\n/* JS_GetOwnPropertyNames flags */\nexport const JS_GPN_STRING_MASK = 1 << 0;\nexport const JS_GPN_SYMBOL_MASK = 1 << 1;\nexport const JS_GPN_PRIVATE_MASK = 1 << 2;\nexport const JS_GPN_ENUM_ONLY = 1 << 4;\nexport const JS_GPN_SET_ENUM = 1 << 5;\n\n/* JS_Eval flags */\nexport const JS_EVAL_TYPE_GLOBAL = 0 << 0;\nexport const JS_EVAL_TYPE_MODULE = 1 << 0;\nexport const JS_EVAL_TYPE_DIRECT = 2 << 0;\nexport const JS_EVAL_TYPE_INDIRECT = 3 << 0;\nexport const JS_EVAL_TYPE_MASK = 3 << 0;\nexport const JS_EVAL_FLAG_STRICT = 1 << 3;\nexport const JS_EVAL_FLAG_COMPILE_ONLY = 1 << 5;\nexport const JS_EVAL_FLAG_BACKTRACE_BARRIER = 1 << 6;\nexport const JS_EVAL_FLAG_ASYNC = 1 << 7;\n\n/* JS_CallInternal flags */\nexport const JS_CALL_FLAG_CONSTRUCTOR = 1 << 0;\nexport const JS_CALL_FLAG_COPY_ARGV = 1 << 1;\nexport const JS_CALL_FLAG_GENERATOR = 1 << 2;\n\nexport const JS_MODE_STRICT = 1 << 0;\nexport const JS_MODE_ASYNC = 1 << 2; /* async function */\nexport const JS_MODE_BACKTRACE_BARRIER = 1 << 3;\n\nexport const enum JSFunctionKind {\n NORMAL = 0,\n GENERATOR = 1 << 0,\n ASYNC = 1 << 1,\n ASYNC_GENERATOR = (1 << 0) | (1 << 1),\n}\n\nexport const enum JSVarKind {\n NORMAL,\n FUNCTION_DECL, /* lexical var with function declaration */\n NEW_FUNCTION_DECL, /* lexical var with async/generator function declaration */\n CATCH,\n FUNCTION_NAME, /* function expression name */\n PRIVATE_FIELD,\n PRIVATE_METHOD,\n PRIVATE_GETTER,\n PRIVATE_SETTER,\n PRIVATE_GETTER_SETTER,\n}\n\nexport const enum JSErrorEnum {\n EVAL_ERROR,\n RANGE_ERROR,\n REFERENCE_ERROR,\n SYNTAX_ERROR,\n TYPE_ERROR,\n URI_ERROR,\n INTERNAL_ERROR,\n AGGREGATE_ERROR,\n NATIVE_ERROR_COUNT,\n PLAIN_ERROR = NATIVE_ERROR_COUNT,\n}\n\nexport class JSVarDef {\n var_name: JSAtom;\n scope_level = 0;\n scope_next = 0;\n is_const = false;\n is_lexical = false;\n is_captured = false;\n is_static_private = false;\n var_kind: JSVarKind = JSVarKind.NORMAL;\n func_pool_idx = -1;\n constructor(var_name: JSAtom) { this.var_name = var_name; }\n}\n\nexport class JSClosureVar {\n is_local = false;\n is_arg = false;\n is_const = false;\n is_lexical = false;\n var_kind: JSVarKind = JSVarKind.NORMAL;\n var_idx = 0;\n var_name: JSAtom = 0;\n}\n\nexport class JSFunctionBytecode {\n js_mode = 0;\n has_prototype = false;\n has_simple_parameter_list = true;\n is_derived_class_constructor = false;\n need_home_object = false;\n func_kind: JSFunctionKind = JSFunctionKind.NORMAL;\n new_target_allowed = false;\n super_call_allowed = false;\n super_allowed = false;\n arguments_allowed = false;\n has_debug = false;\n is_direct_or_indirect_eval = false;\n byte_code_buf: Uint8Array = new Uint8Array(0);\n byte_code_len = 0;\n func_name: JSAtom = 0;\n vardefs: JSVarDef[] = []; /* arguments + local variables */\n closure_var: JSClosureVar[] = [];\n arg_count = 0;\n var_count = 0;\n defined_arg_count = 0;\n stack_size = 0;\n realm: any = null; /* JSContext */\n cpool: (JSValue | JSFunctionBytecode)[] = [];\n debug = { filename: 0 as JSAtom, source: null as string | null, pc2line: null as Uint8Array | null, source_len: 0 };\n /* compiled tier (src/jit.ts) */\n call_count = 0;\n no_jit = false; /* set when the compiler bailed on this function */\n compiled: any = null; /* JitCompiled (natural convention): see src/jit.ts */\n compiled_ctor: any = null; /* JitCompiled (explicit convention) for constructs through wrappers; false: the compiler bailed */\n /* factory of this function's retargetable wrappers (src/jit_runtime.ts), generated on its\n first closure: one copy of the wrapper code per function keeps the call site inside it\n monomorphic */\n wrapper_factory: any = null;\n /* lazily computed: the body reads `arguments` or a rest parameter (-1: unknown) */\n uses_args = -1;\n /* on-stack replacement (src/jit.ts): back-edges taken by interpreter frames, and the compiled\n OSR variants by loop header pc (null: the compiler bailed for that header) */\n loop_count = 0;\n osr: Map<number, any> | null = null;\n}\n\n/* A variable reference: aliases a stack slot while the frame is alive,\n then owns the value once the frame exits (detached). */\nexport class JSVarRef {\n is_detached = false;\n frame: JSStackFrame | null;\n is_arg: boolean;\n var_idx: number;\n value: JSValue = undefined; /* used when detached */\n constructor(frame: JSStackFrame | null, is_arg: boolean, var_idx: number) {\n this.frame = frame; this.is_arg = is_arg; this.var_idx = var_idx;\n }\n get(): JSValue {\n if (this.is_detached) return this.value;\n const f = this.frame!;\n return this.is_arg ? f.arg_buf[this.var_idx] : f.var_buf[this.var_idx];\n }\n set(v: JSValue): void {\n if (this.is_detached) { this.value = v; return; }\n const f = this.frame!;\n if (this.is_arg) f.arg_buf[this.var_idx] = v; else f.var_buf[this.var_idx] = v;\n }\n detach(): void {\n if (!this.is_detached) {\n this.value = this.get();\n this.is_detached = true;\n this.frame = null;\n }\n }\n}\n\n/* a detached variable reference holding 'value' (used by compiled functions\n for captured locals) */\nexport function new_var_ref_cell(value: JSValue): JSVarRef {\n const vr = new JSVarRef(null, false, 0);\n vr.is_detached = true;\n vr.value = value;\n return vr;\n}\n\n/* shared empty buffer: frames of C functions never write to their buffers,\n so a single frozen array avoids 4 allocations per call */\nexport const EMPTY_BUF: JSValue[] = Object.freeze([]) as unknown as JSValue[];\n\nexport const EMPTY_VAR_REFS: JSVarRef[] = Object.freeze([]) as unknown as JSVarRef[];\n\nexport class JSStackFrame {\n prev_frame: JSStackFrame | null = null;\n cur_func: JSValue = undefined; /* current function, JS_UNDEFINED if the frame is detached */\n arg_buf: JSValue[] = EMPTY_BUF;\n var_buf: JSValue[] = EMPTY_BUF;\n stack_buf: JSValue[] = EMPTY_BUF;\n sp = 0;\n cur_pc = 0;\n arg_count = 0;\n js_mode = 0;\n cur_sp = -1; /* only used in generators */\n var_refs: JSVarRef[] = EMPTY_VAR_REFS; /* var refs created in this frame (to detach on exit); replaced on first use */\n this_obj: JSValue = undefined;\n new_target: JSValue = undefined;\n /* the rest of this frame runs in compiled code (on-stack replacement): backtraces show the\n compiled frame instead of this one */\n osr = false;\n}\n\nexport const enum JSGeneratorState {\n SUSPENDED_START,\n SUSPENDED_YIELD,\n SUSPENDED_YIELD_STAR,\n EXECUTING,\n COMPLETED,\n}\n\nexport class JSAsyncFunctionState {\n this_val: JSValue = undefined;\n argc = 0;\n throw_flag = false;\n is_completed = false;\n frame: JSStackFrame = new JSStackFrame();\n func_obj: JSValue = undefined;\n /* for async functions */\n resolving_funcs: [JSValue, JSValue] = [undefined, undefined];\n promise: JSValue = undefined;\n}\n\nexport class JSGeneratorData {\n state: JSGeneratorState = JSGeneratorState.SUSPENDED_START;\n func_state: JSAsyncFunctionState | null = null;\n}\n\n/* bound function metadata (the object itself is a host bound function) */\nexport class JSBoundFunctionData {\n func_obj: JSObject;\n this_val: JSValue;\n argv: JSValue[];\n constructor(func_obj: JSObject, this_val: JSValue, argv: JSValue[]) {\n this.func_obj = func_obj; this.this_val = this_val; this.argv = argv;\n }\n}\n\nexport type JSCFunction = (ctx: any, this_val: JSValue, argv: JSValue[]) => JSValue;\nexport type JSCFunctionMagic = (ctx: any, this_val: JSValue, argv: JSValue[], magic: number) => JSValue;\nexport type JSCFunctionData = (ctx: any, this_val: JSValue, argv: JSValue[], magic: number, data: JSValue[]) => JSValue;\nexport type JSCFunctionConstructor = (ctx: any, new_target: JSValue, argv: JSValue[]) => JSValue;\nexport type JSCFunctionConstructorMagic = (ctx: any, new_target: JSValue, argv: JSValue[], magic: number) => JSValue;\n\nexport const enum JSCFunctionEnum {\n generic,\n generic_magic,\n constructor,\n constructor_magic,\n constructor_or_func,\n constructor_or_func_magic,\n f_f,\n f_f_f,\n getter,\n setter,\n getter_magic,\n setter_magic,\n iterator_next,\n}\n\nexport class JSCFunctionRecord {\n func: Function;\n length: number;\n cproto: JSCFunctionEnum;\n magic: number;\n constructor(func: Function, length: number, cproto: JSCFunctionEnum, magic: number) {\n this.func = func; this.length = length; this.cproto = cproto; this.magic = magic;\n }\n}\n\nexport class JSCFunctionDataRecord {\n func: JSCFunctionData;\n length: number;\n magic: number;\n data: JSValue[];\n constructor(func: JSCFunctionData, length: number, magic: number, data: JSValue[]) {\n this.func = func; this.length = length; this.magic = magic; this.data = data;\n }\n}\n\n/* for-in enumeration state: snapshot of the enumerable keys */\nexport class JSForInState {\n obj: JSValue = undefined;\n idx = 0;\n keys: (string | number)[] = [];\n own_count = 0; /* number of keys of 'obj' itself at the start of 'keys' */\n}\n\nexport class JSMapRecord {\n key: JSValue;\n value: JSValue;\n empty = false; /* true if the record was deleted */\n constructor(key: JSValue, value: JSValue) { this.key = key; this.value = value; }\n}\n\nexport class JSMapState {\n is_weak: boolean;\n /* records in insertion order; deleted records are marked empty and\n purged lazily when there are no active iterators */\n records: JSMapRecord[] = [];\n map = new Map<unknown, JSMapRecord>(); /* normalized key -> record */\n weak: WeakMap<object, JSMapRecord> | null = null;\n record_count = 0;\n iterator_count = 0;\n constructor(is_weak: boolean) {\n this.is_weak = is_weak;\n if (is_weak) this.weak = new WeakMap();\n }\n}\n\nexport class JSMapIteratorData {\n obj: JSValue;\n kind: number;\n idx = 0;\n constructor(obj: JSValue, kind: number) { this.obj = obj; this.kind = kind; }\n}\n\nexport class JSArrayIteratorData {\n obj: JSValue;\n kind: number;\n idx = 0;\n constructor(obj: JSValue, kind: number) { this.obj = obj; this.kind = kind; }\n}\n\nexport class JSRegExpStringIteratorData {\n iterating_regexp: JSValue;\n iterated_string: JSValue;\n global: boolean;\n unicode: boolean;\n done = false;\n constructor(re: JSValue, str: JSValue, global: boolean, unicode: boolean) {\n this.iterating_regexp = re; this.iterated_string = str; this.global = global; this.unicode = unicode;\n }\n}\n\nexport const enum JSPromiseState {\n PENDING,\n FULFILLED,\n REJECTED,\n}\n\nexport class JSPromiseReactionData {\n resolving_funcs: [JSValue, JSValue];\n handler: JSValue;\n constructor(resolving_funcs: [JSValue, JSValue], handler: JSValue) {\n this.resolving_funcs = resolving_funcs; this.handler = handler;\n }\n}\n\nexport class JSPromiseData {\n promise_state: JSPromiseState = JSPromiseState.PENDING;\n is_handled = false;\n promise_reactions: [JSPromiseReactionData[], JSPromiseReactionData[]] = [[], []];\n promise_result: JSValue = undefined;\n}\n\nexport class JSPromiseFunctionData {\n promise: JSValue;\n presolved: { already_resolved: boolean };\n constructor(promise: JSValue, presolved: { already_resolved: boolean }) {\n this.promise = promise; this.presolved = presolved;\n }\n}\n\nexport class JSProxyData {\n host_revoke: (() => void) | null = null;\n target: JSValue;\n handler: JSValue;\n is_func: boolean;\n is_revoked = false;\n constructor(target: JSValue, handler: JSValue, is_func: boolean) {\n this.target = target; this.handler = handler; this.is_func = is_func;\n }\n}\n\nexport class JSRegExp {\n pattern: string;\n flags: string;\n /* host regexp used as the matching engine */\n re: RegExp;\n constructor(pattern: string, flags: string, re: RegExp) {\n this.pattern = pattern; this.flags = flags; this.re = re;\n }\n}\n\n/* ArrayBuffer metadata: the guest object is the host ArrayBuffer itself */\nexport class JSArrayBuffer {\n buffer: ArrayBuffer | SharedArrayBuffer;\n data: Uint8Array; /* view over the whole buffer (empty when detached) */\n detached = false;\n shared: boolean;\n constructor(buffer: ArrayBuffer | SharedArrayBuffer, shared = false) {\n this.buffer = buffer;\n this.data = new Uint8Array(buffer as ArrayBuffer);\n this.shared = shared;\n }\n get byteLength(): number { return this.detached ? 0 : this.buffer.byteLength; }\n}\n\n/* typed array metadata: the guest object is the host typed array itself */\nexport class JSTypedArray {\n buffer: JSObject; /* guest ArrayBuffer object */\n offset: number;\n length: number; /* in bytes */\n track_rab = false;\n constructor(buffer: JSObject, offset: number, length: number) {\n this.buffer = buffer; this.offset = offset; this.length = length;\n }\n}\n\n/* function with closure variables */\nexport class JSFunctionData {\n function_bytecode: JSFunctionBytecode;\n var_refs: JSVarRef[];\n home_object: JSObject | null = null;\n /* compiled tier (see src/jit.ts and docs/JIT.md \"Tiering\"):\n compiled: the direct entry `(this, new_target, ...args)` of this closure, once compiled;\n priv: a private callable with the host convention and the host Function.prototype\n (never reachable from guest code): `priv.apply(this, args)` is the fast way for\n the engine and for retargetable wrappers to call the compiled body;\n mkpriv: creates `priv` on demand (closures created by compiled code);\n ctor: the explicit-convention body `(this | undefined, new_target, ...args)` used for\n construct calls through a retargetable wrapper (compiled on the first one). */\n compiled: Function | null = null;\n priv: Function | null = null;\n mkpriv: (() => Function) | null = null;\n ctor: Function | null = null;\n constructor(b: JSFunctionBytecode, var_refs: JSVarRef[]) {\n this.function_bytecode = b; this.var_refs = var_refs;\n }\n}\n\n/* engine metadata attached to guest objects that need it (JSRuntime.meta) */\nexport class JSObjectMeta {\n class_id: JSClassID;\n /* class specific data (the \"union\" of JSObject in quickjs.c) */\n u: any = null;\n /* bytecode function data */\n func: JSFunctionData | null = null;\n /* C function data */\n cfunc: JSCFunctionRecord | null = null;\n realm: any = null; /* JSContext of C functions */\n is_constructor = false;\n is_class = false;\n is_uncatchable_error = false;\n /* true once the QuickJS backtrace has been added to an error object */\n has_backtrace = false;\n constructor(class_id: JSClassID) { this.class_id = class_id; }\n}\n\nexport function JS_VALUE_GET_OBJ(v: JSValue): JSObject { return v as JSObject; }\nexport function JS_VALUE_GET_INT(v: JSValue): number { return v as number; }\nexport function JS_VALUE_GET_FLOAT64(v: JSValue): number { return v as number; }\nexport function JS_VALUE_GET_BOOL(v: JSValue): boolean { return v as boolean; }\nexport function JS_VALUE_GET_STRING(v: JSValue): string { return v as string; }\n\nexport function js_mkval_bool(v: boolean): JSValue { return v; }\n"]}
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Value and object representation (host-values model, see docs/HOST_VALUES.md).\n *\n * Primitive JS values are the host primitives (undefined, null, boolean,\n * number, string, bigint, symbol). Guest objects are host objects whose\n * prototype chains are entirely guest-owned; engine metadata for the\n * objects that need it (class id, internal slots, bytecode) lives in a\n * WeakMap (JSRuntime.meta). The special QuickJS tags (uninitialized,\n * exception, catch offset) are JSSpecial instances that never escape to\n * guest code.\n */\nimport { JSAtom } from './atoms.ts';\n\nexport const enum JSTag {\n UNINITIALIZED = 0,\n INT = 1,\n BOOL = 2,\n NULL = 3,\n UNDEFINED = 4,\n CATCH_OFFSET = 5,\n EXCEPTION = 6,\n FLOAT64 = 7,\n BIG_INT = 8,\n STRING = 9,\n SYMBOL = 10,\n OBJECT = 11,\n}\n\nexport class JSSpecial {\n constructor(public tag: JSTag, public v: number) {}\n}\n\nexport const JS_UNINITIALIZED = new JSSpecial(JSTag.UNINITIALIZED, 0);\nexport const JS_EXCEPTION = new JSSpecial(JSTag.EXCEPTION, 0);\nexport const JS_UNDEFINED = undefined;\nexport const JS_NULL = null;\nexport const JS_TRUE = true;\nexport const JS_FALSE = false;\n\n/* a guest object is any host object (or function) */\nexport type JSObject = object;\n\nexport type JSValue =\n | undefined\n | null\n | boolean\n | number\n | string\n | bigint\n | symbol\n | JSObject\n | JSSpecial;\n\nexport type JSValueConst = JSValue;\n\n/* catch offsets are stored on the stack; cache small ones */\nconst catchOffsetCache: JSSpecial[] = [];\nexport function JS_NewCatchOffset(v: number): JSSpecial {\n let r = catchOffsetCache[v];\n if (r === undefined) {\n r = new JSSpecial(JSTag.CATCH_OFFSET, v);\n if (v < 1024) catchOffsetCache[v] = r;\n }\n return r;\n}\n\nexport function JS_VALUE_GET_TAG(v: JSValue): JSTag {\n switch (typeof v) {\n case 'undefined': return JSTag.UNDEFINED;\n case 'boolean': return JSTag.BOOL;\n case 'number': return Number.isInteger(v) && v >= -2147483648 && v <= 2147483647 && !(v === 0 && 1 / v < 0) ? JSTag.INT : JSTag.FLOAT64;\n case 'string': return JSTag.STRING;\n case 'bigint': return JSTag.BIG_INT;\n case 'symbol': return JSTag.SYMBOL;\n case 'function': return JSTag.OBJECT;\n case 'object':\n if (v === null) return JSTag.NULL;\n if (v instanceof JSSpecial) return v.tag;\n return JSTag.OBJECT;\n }\n return JSTag.UNDEFINED;\n}\n\nexport function JS_IsException(v: JSValue): v is JSSpecial { return v === JS_EXCEPTION; }\nexport function JS_IsUninitialized(v: JSValue): boolean { return v === JS_UNINITIALIZED; }\nexport function JS_IsUndefined(v: JSValue): v is undefined { return v === undefined; }\nexport function JS_IsNull(v: JSValue): v is null { return v === null; }\n/* true for guest objects (including functions); the internal sentinels are excluded */\nexport function JS_IsObject(v: JSValue): v is JSObject {\n const t = typeof v;\n if (t === 'object') return v !== null && !(v instanceof JSSpecial);\n return t === 'function';\n}\nexport function JS_IsString(v: JSValue): v is string { return typeof v === 'string'; }\nexport function JS_IsSymbol(v: JSValue): v is symbol { return typeof v === 'symbol'; }\nexport function JS_IsNumber(v: JSValue): v is number { return typeof v === 'number'; }\nexport function JS_IsBigInt(v: JSValue): v is bigint { return typeof v === 'bigint'; }\nexport function JS_IsBool(v: JSValue): v is boolean { return typeof v === 'boolean'; }\nexport function JS_IsCatchOffset(v: JSValue): v is JSSpecial {\n return v instanceof JSSpecial && v.tag === JSTag.CATCH_OFFSET;\n}\n\n/* class ids (same order as quickjs.c) */\nexport const enum JSClassID {\n OBJECT = 1,\n ARRAY,\n ERROR,\n NUMBER,\n STRING,\n BOOLEAN,\n SYMBOL,\n ARGUMENTS,\n MAPPED_ARGUMENTS,\n DATE,\n MODULE_NS,\n C_FUNCTION,\n BYTECODE_FUNCTION,\n BOUND_FUNCTION,\n C_FUNCTION_DATA,\n GENERATOR_FUNCTION,\n FOR_IN_ITERATOR,\n REGEXP,\n ARRAY_BUFFER,\n SHARED_ARRAY_BUFFER,\n UINT8C_ARRAY,\n INT8_ARRAY,\n UINT8_ARRAY,\n INT16_ARRAY,\n UINT16_ARRAY,\n INT32_ARRAY,\n UINT32_ARRAY,\n BIG_INT64_ARRAY,\n BIG_UINT64_ARRAY,\n FLOAT32_ARRAY,\n FLOAT64_ARRAY,\n DATAVIEW,\n BIG_INT,\n MAP,\n SET,\n WEAKMAP,\n WEAKSET,\n MAP_ITERATOR,\n SET_ITERATOR,\n ARRAY_ITERATOR,\n STRING_ITERATOR,\n REGEXP_STRING_ITERATOR,\n GENERATOR,\n PROXY,\n PROMISE,\n PROMISE_RESOLVE_FUNCTION,\n PROMISE_REJECT_FUNCTION,\n ASYNC_FUNCTION,\n ASYNC_FUNCTION_RESOLVE,\n ASYNC_FUNCTION_REJECT,\n ASYNC_FROM_SYNC_ITERATOR,\n ASYNC_GENERATOR_FUNCTION,\n ASYNC_GENERATOR,\n WEAK_REF,\n FINALIZATION_REGISTRY,\n INIT_COUNT,\n}\n\n/* property flags */\nexport const JS_PROP_CONFIGURABLE = 1 << 0;\nexport const JS_PROP_WRITABLE = 1 << 1;\nexport const JS_PROP_ENUMERABLE = 1 << 2;\nexport const JS_PROP_C_W_E = JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE | JS_PROP_ENUMERABLE;\nexport const JS_PROP_LENGTH = 1 << 3; /* used internally in Arrays */\nexport const JS_PROP_TMASK = 3 << 4;\nexport const JS_PROP_NORMAL = 0 << 4;\nexport const JS_PROP_GETSET = 1 << 4;\nexport const JS_PROP_VARREF = 2 << 4; /* used internally */\nexport const JS_PROP_AUTOINIT = 3 << 4; /* used internally */\n\n/* flags for JS_DefineProperty */\nexport const JS_PROP_HAS_SHIFT = 8;\nexport const JS_PROP_HAS_CONFIGURABLE = 1 << 8;\nexport const JS_PROP_HAS_WRITABLE = 1 << 9;\nexport const JS_PROP_HAS_ENUMERABLE = 1 << 10;\nexport const JS_PROP_HAS_GET = 1 << 11;\nexport const JS_PROP_HAS_SET = 1 << 12;\nexport const JS_PROP_HAS_VALUE = 1 << 13;\n/* throw an exception if false would be returned (JS_DefineProperty/JS_SetProperty) */\nexport const JS_PROP_THROW = 1 << 14;\n/* throw an exception if false would be returned in strict mode */\nexport const JS_PROP_THROW_STRICT = 1 << 15;\nexport const JS_PROP_NO_ADD = 1 << 16; /* internal use */\nexport const JS_PROP_NO_EXOTIC = 1 << 17; /* internal use */\nexport const JS_PROP_DEFINE_PROPERTY = 1 << 18; /* internal use */\nexport const JS_PROP_REFLECT_DEFINE_PROPERTY = 1 << 19; /* internal use */\n\n/* JS_GetOwnPropertyNames flags */\nexport const JS_GPN_STRING_MASK = 1 << 0;\nexport const JS_GPN_SYMBOL_MASK = 1 << 1;\nexport const JS_GPN_PRIVATE_MASK = 1 << 2;\nexport const JS_GPN_ENUM_ONLY = 1 << 4;\nexport const JS_GPN_SET_ENUM = 1 << 5;\n\n/* JS_Eval flags */\nexport const JS_EVAL_TYPE_GLOBAL = 0 << 0;\nexport const JS_EVAL_TYPE_MODULE = 1 << 0;\nexport const JS_EVAL_TYPE_DIRECT = 2 << 0;\nexport const JS_EVAL_TYPE_INDIRECT = 3 << 0;\nexport const JS_EVAL_TYPE_MASK = 3 << 0;\nexport const JS_EVAL_FLAG_STRICT = 1 << 3;\nexport const JS_EVAL_FLAG_COMPILE_ONLY = 1 << 5;\nexport const JS_EVAL_FLAG_BACKTRACE_BARRIER = 1 << 6;\nexport const JS_EVAL_FLAG_ASYNC = 1 << 7;\n/* strip TypeScript's erasable syntax before compiling (Node's strip-only mode, see docs/TYPESCRIPT.md) */\nexport const JS_EVAL_FLAG_STRIP_TYPES = 1 << 8;\n/* compile JSX (see docs/JSX.md); with JS_EVAL_FLAG_STRIP_TYPES, TSX */\nexport const JS_EVAL_FLAG_JSX = 1 << 9;\n\n/* JS_CallInternal flags */\nexport const JS_CALL_FLAG_CONSTRUCTOR = 1 << 0;\nexport const JS_CALL_FLAG_COPY_ARGV = 1 << 1;\nexport const JS_CALL_FLAG_GENERATOR = 1 << 2;\n\nexport const JS_MODE_STRICT = 1 << 0;\nexport const JS_MODE_ASYNC = 1 << 2; /* async function */\nexport const JS_MODE_BACKTRACE_BARRIER = 1 << 3;\n\nexport const enum JSFunctionKind {\n NORMAL = 0,\n GENERATOR = 1 << 0,\n ASYNC = 1 << 1,\n ASYNC_GENERATOR = (1 << 0) | (1 << 1),\n}\n\nexport const enum JSVarKind {\n NORMAL,\n FUNCTION_DECL, /* lexical var with function declaration */\n NEW_FUNCTION_DECL, /* lexical var with async/generator function declaration */\n CATCH,\n FUNCTION_NAME, /* function expression name */\n PRIVATE_FIELD,\n PRIVATE_METHOD,\n PRIVATE_GETTER,\n PRIVATE_SETTER,\n PRIVATE_GETTER_SETTER,\n}\n\nexport const enum JSErrorEnum {\n EVAL_ERROR,\n RANGE_ERROR,\n REFERENCE_ERROR,\n SYNTAX_ERROR,\n TYPE_ERROR,\n URI_ERROR,\n INTERNAL_ERROR,\n AGGREGATE_ERROR,\n NATIVE_ERROR_COUNT,\n PLAIN_ERROR = NATIVE_ERROR_COUNT,\n}\n\nexport class JSVarDef {\n var_name: JSAtom;\n scope_level = 0;\n scope_next = 0;\n is_const = false;\n is_lexical = false;\n is_captured = false;\n is_static_private = false;\n var_kind: JSVarKind = JSVarKind.NORMAL;\n func_pool_idx = -1;\n constructor(var_name: JSAtom) { this.var_name = var_name; }\n}\n\nexport class JSClosureVar {\n is_local = false;\n is_arg = false;\n is_const = false;\n is_lexical = false;\n var_kind: JSVarKind = JSVarKind.NORMAL;\n var_idx = 0;\n var_name: JSAtom = 0;\n}\n\nexport class JSFunctionBytecode {\n js_mode = 0;\n has_prototype = false;\n has_simple_parameter_list = true;\n is_derived_class_constructor = false;\n need_home_object = false;\n func_kind: JSFunctionKind = JSFunctionKind.NORMAL;\n new_target_allowed = false;\n super_call_allowed = false;\n super_allowed = false;\n arguments_allowed = false;\n has_debug = false;\n is_direct_or_indirect_eval = false;\n byte_code_buf: Uint8Array = new Uint8Array(0);\n byte_code_len = 0;\n func_name: JSAtom = 0;\n vardefs: JSVarDef[] = []; /* arguments + local variables */\n closure_var: JSClosureVar[] = [];\n arg_count = 0;\n var_count = 0;\n defined_arg_count = 0;\n stack_size = 0;\n realm: any = null; /* JSContext */\n cpool: (JSValue | JSFunctionBytecode)[] = [];\n debug = { filename: 0 as JSAtom, source: null as string | null, pc2line: null as Uint8Array | null, source_len: 0 };\n /* compiled tier (src/jit.ts) */\n call_count = 0;\n no_jit = false; /* set when the compiler bailed on this function */\n compiled: any = null; /* JitCompiled (natural convention): see src/jit.ts */\n compiled_ctor: any = null; /* JitCompiled (explicit convention) for constructs through wrappers; false: the compiler bailed */\n /* factory of this function's retargetable wrappers (src/jit_runtime.ts), generated on its\n first closure: one copy of the wrapper code per function keeps the call site inside it\n monomorphic */\n wrapper_factory: any = null;\n /* lazily computed: the body reads `arguments` or a rest parameter (-1: unknown) */\n uses_args = -1;\n /* on-stack replacement (src/jit.ts): back-edges taken by interpreter frames, and the compiled\n OSR variants by loop header pc (null: the compiler bailed for that header) */\n loop_count = 0;\n osr: Map<number, any> | null = null;\n /* the module this function belongs to (its body or a function nested in it), or null */\n module: JSModuleDef | null = null;\n}\n\n/* A variable reference: aliases a stack slot while the frame is alive,\n then owns the value once the frame exits (detached). */\nexport class JSVarRef {\n is_detached = false;\n frame: JSStackFrame | null;\n is_arg: boolean;\n var_idx: number;\n value: JSValue = undefined; /* used when detached */\n constructor(frame: JSStackFrame | null, is_arg: boolean, var_idx: number) {\n this.frame = frame; this.is_arg = is_arg; this.var_idx = var_idx;\n }\n get(): JSValue {\n if (this.is_detached) return this.value;\n const f = this.frame!;\n return this.is_arg ? f.arg_buf[this.var_idx] : f.var_buf[this.var_idx];\n }\n set(v: JSValue): void {\n if (this.is_detached) { this.value = v; return; }\n const f = this.frame!;\n if (this.is_arg) f.arg_buf[this.var_idx] = v; else f.var_buf[this.var_idx] = v;\n }\n detach(): void {\n if (!this.is_detached) {\n this.value = this.get();\n this.is_detached = true;\n this.frame = null;\n }\n }\n}\n\n/* a detached variable reference holding 'value' (used by compiled functions\n for captured locals) */\nexport function new_var_ref_cell(value: JSValue): JSVarRef {\n const vr = new JSVarRef(null, false, 0);\n vr.is_detached = true;\n vr.value = value;\n return vr;\n}\n\n/* shared empty buffer: frames of C functions never write to their buffers,\n so a single frozen array avoids 4 allocations per call */\nexport const EMPTY_BUF: JSValue[] = Object.freeze([]) as unknown as JSValue[];\n\nexport const EMPTY_VAR_REFS: JSVarRef[] = Object.freeze([]) as unknown as JSVarRef[];\n\nexport class JSStackFrame {\n prev_frame: JSStackFrame | null = null;\n cur_func: JSValue = undefined; /* current function, JS_UNDEFINED if the frame is detached */\n arg_buf: JSValue[] = EMPTY_BUF;\n var_buf: JSValue[] = EMPTY_BUF;\n stack_buf: JSValue[] = EMPTY_BUF;\n sp = 0;\n cur_pc = 0;\n arg_count = 0;\n js_mode = 0;\n cur_sp = -1; /* only used in generators */\n var_refs: JSVarRef[] = EMPTY_VAR_REFS; /* var refs created in this frame (to detach on exit); replaced on first use */\n this_obj: JSValue = undefined;\n new_target: JSValue = undefined;\n /* the rest of this frame runs in compiled code (on-stack replacement): backtraces show the\n compiled frame instead of this one */\n osr = false;\n}\n\nexport const enum JSGeneratorState {\n SUSPENDED_START,\n SUSPENDED_YIELD,\n SUSPENDED_YIELD_STAR,\n EXECUTING,\n COMPLETED,\n}\n\nexport class JSAsyncFunctionState {\n this_val: JSValue = undefined;\n argc = 0;\n throw_flag = false;\n is_completed = false;\n frame: JSStackFrame = new JSStackFrame();\n func_obj: JSValue = undefined;\n /* for async functions */\n resolving_funcs: [JSValue, JSValue] = [undefined, undefined];\n promise: JSValue = undefined;\n}\n\nexport class JSGeneratorData {\n state: JSGeneratorState = JSGeneratorState.SUSPENDED_START;\n func_state: JSAsyncFunctionState | null = null;\n}\n\n/* bound function metadata (the object itself is a host bound function) */\nexport class JSBoundFunctionData {\n func_obj: JSObject;\n this_val: JSValue;\n argv: JSValue[];\n constructor(func_obj: JSObject, this_val: JSValue, argv: JSValue[]) {\n this.func_obj = func_obj; this.this_val = this_val; this.argv = argv;\n }\n}\n\nexport type JSCFunction = (ctx: any, this_val: JSValue, argv: JSValue[]) => JSValue;\nexport type JSCFunctionMagic = (ctx: any, this_val: JSValue, argv: JSValue[], magic: number) => JSValue;\nexport type JSCFunctionData = (ctx: any, this_val: JSValue, argv: JSValue[], magic: number, data: JSValue[]) => JSValue;\nexport type JSCFunctionConstructor = (ctx: any, new_target: JSValue, argv: JSValue[]) => JSValue;\nexport type JSCFunctionConstructorMagic = (ctx: any, new_target: JSValue, argv: JSValue[], magic: number) => JSValue;\n\nexport const enum JSCFunctionEnum {\n generic,\n generic_magic,\n constructor,\n constructor_magic,\n constructor_or_func,\n constructor_or_func_magic,\n f_f,\n f_f_f,\n getter,\n setter,\n getter_magic,\n setter_magic,\n iterator_next,\n}\n\nexport class JSCFunctionRecord {\n func: Function;\n length: number;\n cproto: JSCFunctionEnum;\n magic: number;\n constructor(func: Function, length: number, cproto: JSCFunctionEnum, magic: number) {\n this.func = func; this.length = length; this.cproto = cproto; this.magic = magic;\n }\n}\n\nexport class JSCFunctionDataRecord {\n func: JSCFunctionData;\n length: number;\n magic: number;\n data: JSValue[];\n constructor(func: JSCFunctionData, length: number, magic: number, data: JSValue[]) {\n this.func = func; this.length = length; this.magic = magic; this.data = data;\n }\n}\n\n/* for-in enumeration state: snapshot of the enumerable keys */\nexport class JSForInState {\n obj: JSValue = undefined;\n idx = 0;\n keys: (string | number)[] = [];\n own_count = 0; /* number of keys of 'obj' itself at the start of 'keys' */\n}\n\nexport class JSMapRecord {\n key: JSValue;\n value: JSValue;\n empty = false; /* true if the record was deleted */\n constructor(key: JSValue, value: JSValue) { this.key = key; this.value = value; }\n}\n\nexport class JSMapState {\n is_weak: boolean;\n /* records in insertion order; deleted records are marked empty and\n purged lazily when there are no active iterators */\n records: JSMapRecord[] = [];\n map = new Map<unknown, JSMapRecord>(); /* normalized key -> record */\n weak: WeakMap<object, JSMapRecord> | null = null;\n record_count = 0;\n iterator_count = 0;\n constructor(is_weak: boolean) {\n this.is_weak = is_weak;\n if (is_weak) this.weak = new WeakMap();\n }\n}\n\nexport class JSMapIteratorData {\n obj: JSValue;\n kind: number;\n idx = 0;\n constructor(obj: JSValue, kind: number) { this.obj = obj; this.kind = kind; }\n}\n\nexport class JSArrayIteratorData {\n obj: JSValue;\n kind: number;\n idx = 0;\n constructor(obj: JSValue, kind: number) { this.obj = obj; this.kind = kind; }\n}\n\nexport class JSRegExpStringIteratorData {\n iterating_regexp: JSValue;\n iterated_string: JSValue;\n global: boolean;\n unicode: boolean;\n done = false;\n constructor(re: JSValue, str: JSValue, global: boolean, unicode: boolean) {\n this.iterating_regexp = re; this.iterated_string = str; this.global = global; this.unicode = unicode;\n }\n}\n\nexport const enum JSPromiseState {\n PENDING,\n FULFILLED,\n REJECTED,\n}\n\nexport class JSPromiseReactionData {\n resolving_funcs: [JSValue, JSValue];\n handler: JSValue;\n constructor(resolving_funcs: [JSValue, JSValue], handler: JSValue) {\n this.resolving_funcs = resolving_funcs; this.handler = handler;\n }\n}\n\nexport class JSPromiseData {\n promise_state: JSPromiseState = JSPromiseState.PENDING;\n is_handled = false;\n promise_reactions: [JSPromiseReactionData[], JSPromiseReactionData[]] = [[], []];\n promise_result: JSValue = undefined;\n}\n\nexport class JSPromiseFunctionData {\n promise: JSValue;\n presolved: { already_resolved: boolean };\n constructor(promise: JSValue, presolved: { already_resolved: boolean }) {\n this.promise = promise; this.presolved = presolved;\n }\n}\n\nexport class JSProxyData {\n host_revoke: (() => void) | null = null;\n target: JSValue;\n handler: JSValue;\n is_func: boolean;\n is_revoked = false;\n constructor(target: JSValue, handler: JSValue, is_func: boolean) {\n this.target = target; this.handler = handler; this.is_func = is_func;\n }\n}\n\nexport class JSRegExp {\n pattern: string;\n flags: string;\n /* host regexp used as the matching engine */\n re: RegExp;\n constructor(pattern: string, flags: string, re: RegExp) {\n this.pattern = pattern; this.flags = flags; this.re = re;\n }\n}\n\n/* ArrayBuffer metadata: the guest object is the host ArrayBuffer itself */\nexport class JSArrayBuffer {\n buffer: ArrayBuffer | SharedArrayBuffer;\n data: Uint8Array; /* view over the whole buffer (empty when detached) */\n detached = false;\n shared: boolean;\n constructor(buffer: ArrayBuffer | SharedArrayBuffer, shared = false) {\n this.buffer = buffer;\n this.data = new Uint8Array(buffer as ArrayBuffer);\n this.shared = shared;\n }\n get byteLength(): number { return this.detached ? 0 : this.buffer.byteLength; }\n}\n\n/* typed array metadata: the guest object is the host typed array itself */\nexport class JSTypedArray {\n buffer: JSObject; /* guest ArrayBuffer object */\n offset: number;\n length: number; /* in bytes */\n track_rab = false;\n constructor(buffer: JSObject, offset: number, length: number) {\n this.buffer = buffer; this.offset = offset; this.length = length;\n }\n}\n\n/* function with closure variables */\nexport class JSFunctionData {\n function_bytecode: JSFunctionBytecode;\n var_refs: JSVarRef[];\n home_object: JSObject | null = null;\n /* compiled tier (see src/jit.ts and docs/JIT.md \"Tiering\"):\n compiled: the direct entry `(this, new_target, ...args)` of this closure, once compiled;\n priv: a private callable with the host convention and the host Function.prototype\n (never reachable from guest code): `priv.apply(this, args)` is the fast way for\n the engine and for retargetable wrappers to call the compiled body;\n mkpriv: creates `priv` on demand (closures created by compiled code);\n ctor: the explicit-convention body `(this | undefined, new_target, ...args)` used for\n construct calls through a retargetable wrapper (compiled on the first one). */\n compiled: Function | null = null;\n priv: Function | null = null;\n mkpriv: (() => Function) | null = null;\n ctor: Function | null = null;\n constructor(b: JSFunctionBytecode, var_refs: JSVarRef[]) {\n this.function_bytecode = b; this.var_refs = var_refs;\n }\n}\n\n/* engine metadata attached to guest objects that need it (JSRuntime.meta) */\nexport class JSObjectMeta {\n class_id: JSClassID;\n /* class specific data (the \"union\" of JSObject in quickjs.c) */\n u: any = null;\n /* bytecode function data */\n func: JSFunctionData | null = null;\n /* C function data */\n cfunc: JSCFunctionRecord | null = null;\n realm: any = null; /* JSContext of C functions */\n is_constructor = false;\n is_class = false;\n is_uncatchable_error = false;\n /* true once the QuickJS backtrace has been added to an error object */\n has_backtrace = false;\n constructor(class_id: JSClassID) { this.class_id = class_id; }\n}\n\nexport function JS_VALUE_GET_OBJ(v: JSValue): JSObject { return v as JSObject; }\nexport function JS_VALUE_GET_INT(v: JSValue): number { return v as number; }\nexport function JS_VALUE_GET_FLOAT64(v: JSValue): number { return v as number; }\nexport function JS_VALUE_GET_BOOL(v: JSValue): boolean { return v as boolean; }\nexport function JS_VALUE_GET_STRING(v: JSValue): string { return v as string; }\n\nexport function js_mkval_bool(v: boolean): JSValue { return v; }\n\n/* ---------------------------------------------------------------------\n Modules (quickjs.c JSModuleDef and its entries)\n --------------------------------------------------------------------- */\n\nexport const enum JSModuleStatus {\n UNLINKED,\n LINKING,\n LINKED,\n EVALUATING,\n EVALUATING_ASYNC,\n EVALUATED,\n}\n\n/* a module request: `from \"x\"` (with its import attributes) */\nexport class JSReqModuleEntry {\n module: JSModuleDef | null = null; /* set when the graph is loaded */\n constructor(public module_name: JSAtom, public attributes: Record<string, string> | null) {}\n}\n\nexport const enum JSExportType { LOCAL, INDIRECT }\n\nexport class JSExportEntry {\n export_type: JSExportType;\n /* LOCAL: closure variable index in the module function, and its reference once created */\n var_idx = -1;\n var_ref: JSVarRef | null = null;\n /* INDIRECT: the module request it comes from */\n req_module_idx = -1;\n /* LOCAL: the local name; INDIRECT: the imported name, '*' for `export * as ns from` */\n local_name: JSAtom;\n export_name: JSAtom;\n constructor(local_name: JSAtom, export_name: JSAtom, export_type: JSExportType) {\n this.local_name = local_name; this.export_name = export_name; this.export_type = export_type;\n }\n}\n\nexport class JSStarExportEntry {\n constructor(public req_module_idx: number) {}\n}\n\nexport class JSImportEntry {\n req_module_idx = -1;\n constructor(public var_idx: number, public is_star: boolean, public import_name: JSAtom) {}\n}\n\n/* what the module source is: JavaScript, JSON or host values provided by the embedder */\nexport const enum JSModuleKind { JS, JSON, HOST }\n\nexport class JSModuleDef {\n module_name: JSAtom; /* the normalized id */\n url: string | null = null; /* import.meta.url (defaults to the id) */\n kind: JSModuleKind = JSModuleKind.JS;\n req_module_entries: JSReqModuleEntry[] = [];\n export_entries: JSExportEntry[] = [];\n star_export_entries: JSStarExportEntry[] = [];\n import_entries: JSImportEntry[] = [];\n has_tla = false;\n status: JSModuleStatus = JSModuleStatus.UNLINKED;\n /* temporary, during linking and evaluation */\n dfs_index = 0;\n dfs_ancestor_index = 0;\n stack_prev: JSModuleDef | null = null;\n /* asynchronous evaluation (top-level await) */\n async_parent_modules: JSModuleDef[] = [];\n pending_async_dependencies = 0;\n async_evaluation = false;\n async_evaluation_timestamp = 0;\n cycle_root: JSModuleDef | null = null;\n promise: JSValue = undefined; /* capability of the evaluation */\n resolving_funcs: [JSValue, JSValue] = [undefined, undefined];\n eval_has_exception = false;\n eval_exception: JSValue = undefined;\n meta_obj: JSValue = undefined;\n module_ns: JSValue = undefined;\n func_bytecode: JSFunctionBytecode | null = null; /* JS: the module body */\n func_obj: JSValue = undefined; /* JS: the function object, once created */\n func_created = false;\n /* JSON and host modules: the value of each export, set at evaluation */\n synthetic_exports: Map<JSAtom, JSValue> | null = null;\n /* graph loading: true once every request has a module */\n requests_loaded = false;\n realm: any = null; /* JSContext */\n constructor(module_name: JSAtom) { this.module_name = module_name; }\n}\n"]}
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const JSEPTION_VERSION = "0.0.
|
|
1
|
+
export declare const JSEPTION_VERSION = "0.0.4";
|
package/dist/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* The jseption package version, kept equal to package.json by the npm "version" script
|
|
2
2
|
(scripts/sync-version.mjs) and checked by tests/bytecode.test.ts. Serialized bytecode
|
|
3
3
|
records it and only loads in the same version. */
|
|
4
|
-
export const JSEPTION_VERSION = '0.0.
|
|
4
|
+
export const JSEPTION_VERSION = '0.0.4';
|
|
5
5
|
//# sourceMappingURL=version.js.map
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;oDAEoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC","sourcesContent":["/* The jseption package version, kept equal to package.json by the npm \"version\" script\n (scripts/sync-version.mjs) and checked by tests/bytecode.test.ts. Serialized bytecode\n records it and only loads in the same version. */\nexport const JSEPTION_VERSION = '0.0.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;oDAEoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC","sourcesContent":["/* The jseption package version, kept equal to package.json by the npm \"version\" script\n (scripts/sync-version.mjs) and checked by tests/bytecode.test.ts. Serialized bytecode\n records it and only loads in the same version. */\nexport const JSEPTION_VERSION = '0.0.4';\n"]}
|
package/package.json
CHANGED