quickjs-wasi-reactor 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 CHANGED
@@ -31,8 +31,8 @@ import { loadQuickJS, buildFileSystem } from 'quickjs-wasi-reactor'
31
31
  // Load QuickJS from a URL or buffer
32
32
  const qjs = await loadQuickJS('/path/to/qjs-wasi.wasm')
33
33
 
34
- // Initialize with std module
35
- qjs.initArgv()
34
+ // Initialize with std module (provides std, os, bjson globals)
35
+ qjs.initStdModule()
36
36
 
37
37
  // Evaluate JavaScript code
38
38
  qjs.eval(`console.log("Hello from QuickJS!")`)
@@ -44,6 +44,24 @@ await qjs.runLoop()
44
44
  qjs.destroy()
45
45
  ```
46
46
 
47
+ ### Initialization Options
48
+
49
+ There are three ways to initialize QuickJS:
50
+
51
+ ```typescript
52
+ // Option 1: init() - Basic runtime with std modules available for import
53
+ qjs.init()
54
+ qjs.eval(`import * as std from 'qjs:std'; std.printf("Hello\\n")`, true)
55
+
56
+ // Option 2: initStdModule() - Like init() but also exposes std, os, bjson as globals
57
+ qjs.initStdModule()
58
+ qjs.eval(`std.printf("Hello\\n")`) // std is already global
59
+
60
+ // Option 3: initArgv(args) - Like init() but sets up scriptArgs
61
+ qjs.initArgv(['qjs', 'script.js', '--verbose'])
62
+ qjs.eval(`console.log(scriptArgs)`) // ['qjs', 'script.js', '--verbose']
63
+ ```
64
+
47
65
  ### With Virtual Filesystem
48
66
 
49
67
  ```typescript
@@ -57,12 +75,13 @@ const fs = buildFileSystem(
57
75
  ]),
58
76
  )
59
77
 
60
- const qjs = await loadQuickJS('/path/to/qjs-wasi.wasm', {
61
- args: ['qjs', '--std', 'script.js'],
62
- fs,
63
- })
78
+ const qjs = await loadQuickJS('/path/to/qjs-wasi.wasm', { fs })
64
79
 
65
- qjs.initArgv()
80
+ qjs.initStdModule()
81
+ qjs.eval(`
82
+ import { greet } from './lib/utils.js'
83
+ console.log(greet('World'))
84
+ `, true)
66
85
  await qjs.runLoop()
67
86
  qjs.destroy()
68
87
  ```
@@ -81,7 +100,7 @@ const qjs = await loadQuickJS('/path/to/qjs-wasi.wasm', {
81
100
  },
82
101
  })
83
102
 
84
- qjs.initArgv()
103
+ qjs.init()
85
104
  qjs.eval(`console.log("This goes to custom stdout")`)
86
105
  await qjs.runLoop()
87
106
  qjs.destroy()
@@ -96,7 +115,7 @@ const stdin = new PollableStdin()
96
115
 
97
116
  const qjs = await loadQuickJS('/path/to/qjs-wasi.wasm', { stdin })
98
117
 
99
- qjs.initArgv()
118
+ qjs.initStdModule()
100
119
 
101
120
  // Push data to stdin
102
121
  qjs.pushStdin(new TextEncoder().encode('Hello from stdin\n'))
@@ -106,6 +125,67 @@ await qjs.runLoop()
106
125
  qjs.destroy()
107
126
  ```
108
127
 
128
+ ### Non-Blocking Event Loop Control
129
+
130
+ For fine-grained control over JavaScript execution, use `loopOnce()` instead of `runLoop()`:
131
+
132
+ ```typescript
133
+ import { loadQuickJS, LOOP_IDLE, LOOP_ERROR } from 'quickjs-wasi-reactor'
134
+
135
+ const qjs = await loadQuickJS('/path/to/qjs-wasi.wasm')
136
+ qjs.initStdModule()
137
+
138
+ qjs.eval(`
139
+ os.setTimeout(() => console.log("timer fired"), 100)
140
+ console.log("scheduled timer")
141
+ `)
142
+
143
+ // Manual event loop - integrate with your own scheduling
144
+ while (true) {
145
+ const result = qjs.loopOnce()
146
+
147
+ if (result === LOOP_ERROR) throw new Error("JavaScript error")
148
+ if (result === LOOP_IDLE) break // No more work
149
+
150
+ if (result === 0) {
151
+ // More microtasks pending - yield to browser then continue
152
+ await new Promise(r => queueMicrotask(r))
153
+ } else if (result > 0) {
154
+ // Timer pending in N ms - do other work or wait
155
+ await new Promise(r => setTimeout(r, result))
156
+ }
157
+ }
158
+
159
+ qjs.destroy()
160
+ ```
161
+
162
+ ### Browser Integration with Animation Frames
163
+
164
+ ```typescript
165
+ const qjs = await loadQuickJS('/path/to/qjs-wasi.wasm')
166
+ qjs.initStdModule()
167
+
168
+ qjs.eval(`
169
+ let frame = 0
170
+ function tick() {
171
+ console.log("Frame:", frame++)
172
+ if (frame < 60) os.setTimeout(tick, 16)
173
+ }
174
+ tick()
175
+ `)
176
+
177
+ // Cooperative scheduling with browser
178
+ function runFrame() {
179
+ const result = qjs.loopOnce()
180
+ if (result >= 0) {
181
+ requestAnimationFrame(runFrame)
182
+ } else {
183
+ qjs.destroy()
184
+ }
185
+ }
186
+ requestAnimationFrame(runFrame)
187
+ ```
188
+
109
189
  ## API
110
190
 
111
191
  ### `loadQuickJS(wasmSource, options?)`
@@ -134,7 +214,7 @@ Create a QuickJS instance from a pre-compiled WebAssembly module.
134
214
 
135
215
  | Option | Type | Default | Description |
136
216
  | ---------- | --------------------------- | ------------------------- | ---------------------------------- |
137
- | `args` | `string[]` | `['qjs', '--std']` | WASI command-line arguments |
217
+ | `args` | `string[]` | `['qjs']` | WASI command-line arguments |
138
218
  | `env` | `string[]` | `[]` | Environment variables (key=value) |
139
219
  | `debug` | `boolean` | `false` | Enable WASI debug logging |
140
220
  | `stdout` | `(line: string) => void` | `console.log` | Custom stdout line handler |
@@ -145,13 +225,20 @@ Create a QuickJS instance from a pre-compiled WebAssembly module.
145
225
 
146
226
  ### `QuickJS` Methods
147
227
 
148
- #### `initArgv()`
228
+ #### `init()`
229
+
230
+ Initialize QuickJS runtime and context with std modules available for import.
231
+ Modules `qjs:std`, `qjs:os`, and `qjs:bjson` can be imported in evaluated code.
149
232
 
150
- Initialize QuickJS with command-line arguments. Call this after creating the instance.
233
+ #### `initStdModule()`
151
234
 
152
- #### `init()`
235
+ Like `init()` but also exposes `std`, `os`, and `bjson` as global objects.
236
+ Convenient for REPL-style usage where you want immediate access to std library.
153
237
 
154
- Initialize QuickJS with an empty context (without loading scripts via args).
238
+ #### `initArgv(args)`
239
+
240
+ Like `init()` but also sets up `scriptArgs` global with the provided arguments.
241
+ Use this when your JavaScript code needs to access command-line arguments.
155
242
 
156
243
  #### `eval(code, isModule?, filename?)`
157
244
 
@@ -217,17 +304,28 @@ const fs = buildFileSystem(
217
304
 
218
305
  ## Reactor Model
219
306
 
220
- Unlike the standard WASI "command" model that blocks in `_start()`, the reactor model exports functions that the host calls:
307
+ Unlike the standard WASI "command" model that blocks in `_start()`, the reactor model exports the raw QuickJS C API functions that the host calls directly:
308
+
309
+ **Core Runtime:**
310
+ - `JS_NewRuntime()` / `JS_FreeRuntime(rt)` - Create/destroy runtime
311
+ - `JS_NewContext(rt)` / `JS_FreeContext(ctx)` - Create/destroy context
312
+ - `JS_Eval(ctx, input, len, filename, flags)` - Evaluate JavaScript code
313
+ - `JS_FreeValue(ctx, val)` - Free a JSValue
314
+
315
+ **Standard Library:**
316
+ - `js_std_init_handlers(rt)` / `js_std_free_handlers(rt)` - Initialize/cleanup std handlers
317
+ - `js_init_module_std(ctx, name)` - Register qjs:std module
318
+ - `js_init_module_os(ctx, name)` - Register qjs:os module
319
+ - `js_init_module_bjson(ctx, name)` - Register qjs:bjson module
320
+ - `js_std_add_helpers(ctx, argc, argv)` - Add console.log, print, scriptArgs, etc.
321
+ - `js_std_loop_once(ctx)` - Run one event loop iteration (non-blocking)
322
+ - `js_std_poll_io(ctx, timeout_ms)` - Poll for I/O events
323
+ - `js_std_dump_error(ctx)` - Dump exception to stderr
221
324
 
222
- - `qjs_init()` - Initialize empty runtime
223
- - `qjs_init_argv(argc, argv)` - Initialize with CLI args
224
- - `qjs_eval(code, len, filename, is_module)` - Evaluate JS code
225
- - `qjs_loop_once()` - Run one event loop iteration
226
- - `qjs_poll_io(timeout_ms)` - Poll for I/O events
227
- - `qjs_destroy()` - Cleanup runtime
228
- - `malloc/free` - Memory allocation
325
+ **Memory:**
326
+ - `malloc(size)` / `free(ptr)` - Memory allocation
229
327
 
230
- This enables re-entrant execution in JavaScript host environments where blocking is not possible.
328
+ This enables re-entrant execution in JavaScript host environments where blocking is not possible. The raw C API also enables advanced use cases like multiple contexts, custom module loaders, and fine-grained resource control.
231
329
 
232
330
  ## License
233
331
 
package/dist/quickjs.d.ts CHANGED
@@ -1,33 +1,34 @@
1
1
  import { PollableStdin, File, Directory } from "./fs-mem.js";
2
- /** Loop result constants from qjs_loop_once() */
2
+ /** Loop result constants from js_std_loop_once() */
3
3
  export declare const LOOP_IDLE = -1;
4
4
  export declare const LOOP_ERROR = -2;
5
- /** QuickJS reactor exports interface */
5
+ /** QuickJS reactor exports interface - raw C API */
6
6
  export interface QuickJSReactorExports {
7
7
  /** Standard WASI reactor initialization */
8
8
  _initialize(): void;
9
9
  /** WebAssembly memory */
10
10
  memory: WebAssembly.Memory;
11
- /** Initialize with CLI arguments */
12
- qjs_init_argv(argc: number, argv: number): number;
13
- /** Initialize empty runtime */
14
- qjs_init(): number;
15
- /** Evaluate JavaScript code */
16
- qjs_eval(code: number, len: number, filename: number, is_module: number): number;
17
- /** Run one iteration of the event loop */
18
- qjs_loop_once(): number;
19
- /** Poll for I/O events */
20
- qjs_poll_io(timeout_ms: number): number;
21
- /** Cleanup runtime */
22
- qjs_destroy(): void;
23
- /** Allocate memory */
24
11
  malloc(size: number): number;
25
- /** Free memory */
26
12
  free(ptr: number): void;
13
+ JS_NewRuntime(): number;
14
+ JS_FreeRuntime(rt: number): void;
15
+ JS_NewContext(rt: number): number;
16
+ JS_FreeContext(ctx: number): void;
17
+ JS_Eval(ctx: number, input: number, input_len: number, filename: number, eval_flags: number): bigint;
18
+ JS_FreeValue(ctx: number, val: bigint): void;
19
+ js_init_module_std(ctx: number, module_name: number): number;
20
+ js_init_module_os(ctx: number, module_name: number): number;
21
+ js_init_module_bjson(ctx: number, module_name: number): number;
22
+ js_std_init_handlers(rt: number): void;
23
+ js_std_free_handlers(rt: number): void;
24
+ js_std_add_helpers(ctx: number, argc: number, argv: number): void;
25
+ js_std_loop_once(ctx: number): number;
26
+ js_std_poll_io(ctx: number, timeout_ms: number): number;
27
+ js_std_dump_error(ctx: number): void;
27
28
  }
28
29
  /** Options for creating a QuickJS instance */
29
30
  export interface QuickJSOptions {
30
- /** WASI arguments (default: ['qjs', '--std']) */
31
+ /** WASI arguments (default: ['qjs']) */
31
32
  args?: string[];
32
33
  /** Environment variables as key=value strings */
33
34
  env?: string[];
@@ -54,16 +55,29 @@ export declare class QuickJS {
54
55
  private running;
55
56
  private exitCode;
56
57
  private stdin;
58
+ private rtPtr;
59
+ private ctxPtr;
57
60
  constructor(wasmModule: WebAssembly.Module, options?: QuickJSOptions);
61
+ /** Allocate a null-terminated string in WASM memory */
62
+ private allocString;
63
+ /** Free a pointer */
64
+ private freePtr;
65
+ /** Check if a JSValue is an exception */
66
+ private isException;
58
67
  /**
59
- * Initialize QuickJS with command-line arguments.
60
- * The args should match the WASI args passed to the constructor.
68
+ * Initialize QuickJS runtime and context.
61
69
  */
62
- initArgv(): void;
70
+ init(): void;
63
71
  /**
64
- * Initialize QuickJS with an empty context.
72
+ * Initialize QuickJS and import std modules as globals.
73
+ * This makes std, os, and bjson available as global objects.
65
74
  */
66
- init(): void;
75
+ initStdModule(): void;
76
+ /**
77
+ * Initialize QuickJS with command-line arguments.
78
+ * Sets up scriptArgs for the JavaScript code.
79
+ */
80
+ initArgv(args: string[]): void;
67
81
  /**
68
82
  * Evaluate JavaScript code.
69
83
  * @param code The JavaScript code to evaluate
@@ -1 +1 @@
1
- {"version":3,"file":"quickjs.d.ts","sourceRoot":"","sources":["../src/quickjs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quickjs.d.ts","sourceRoot":"","sources":["../src/quickjs.ts"],"names":[],"mappings":"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"}
package/dist/quickjs.js CHANGED
@@ -2,9 +2,14 @@
2
2
  // This module provides a high-level API for running QuickJS in reactor mode.
3
3
  import { WASI, WASIProcExit } from "./wasi.js";
4
4
  import { ConsoleStdout, PollableStdin, PreopenDirectory, File, Directory, DevOut, DevDirectory, } from "./fs-mem.js";
5
- /** Loop result constants from qjs_loop_once() */
5
+ /** Loop result constants from js_std_loop_once() */
6
6
  export const LOOP_IDLE = -1;
7
7
  export const LOOP_ERROR = -2;
8
+ /** JS_EVAL flags */
9
+ const JS_EVAL_TYPE_GLOBAL = 0;
10
+ const JS_EVAL_TYPE_MODULE = 1;
11
+ /** JSValue tag constants */
12
+ const JS_TAG_EXCEPTION = 6;
8
13
  /**
9
14
  * QuickJS provides a high-level API for running JavaScript in QuickJS WASI reactor mode.
10
15
  */
@@ -15,8 +20,11 @@ export class QuickJS {
15
20
  running = false;
16
21
  exitCode = 0;
17
22
  stdin;
23
+ // Runtime state
24
+ rtPtr = 0;
25
+ ctxPtr = 0;
18
26
  constructor(wasmModule, options = {}) {
19
- const args = options.args ?? ["qjs", "--std"];
27
+ const args = options.args ?? ["qjs"];
20
28
  const env = options.env ?? [];
21
29
  const debug = options.debug ?? false;
22
30
  // Create stdin
@@ -49,44 +57,114 @@ export class QuickJS {
49
57
  // Initialize the WASI reactor
50
58
  this.wasi.initialize(this.instance);
51
59
  }
60
+ /** Allocate a null-terminated string in WASM memory */
61
+ allocString(s) {
62
+ if (!this.exports)
63
+ throw new Error("QuickJS not initialized");
64
+ const bytes = new TextEncoder().encode(s);
65
+ const ptr = this.exports.malloc(bytes.length + 1);
66
+ if (ptr === 0)
67
+ throw new Error("malloc failed");
68
+ const memory = new Uint8Array(this.exports.memory.buffer);
69
+ memory.set(bytes, ptr);
70
+ memory[ptr + bytes.length] = 0;
71
+ return ptr;
72
+ }
73
+ /** Free a pointer */
74
+ freePtr(ptr) {
75
+ if (ptr !== 0 && this.exports) {
76
+ this.exports.free(ptr);
77
+ }
78
+ }
79
+ /** Check if a JSValue is an exception */
80
+ isException(val) {
81
+ const tag = Number(val >> 32n);
82
+ return tag === JS_TAG_EXCEPTION;
83
+ }
52
84
  /**
53
- * Initialize QuickJS with command-line arguments.
54
- * The args should match the WASI args passed to the constructor.
85
+ * Initialize QuickJS runtime and context.
55
86
  */
56
- initArgv() {
87
+ init() {
57
88
  if (!this.exports)
58
89
  throw new Error("QuickJS not initialized");
59
- const args = this.wasi.args;
60
- const memory = this.exports.memory;
61
- const encoder = new TextEncoder();
62
- // Allocate space for argv array and strings
63
- const ARGV_BASE = 65536;
64
- const STRINGS_BASE = ARGV_BASE + args.length * 4 + 4;
65
- const view = new DataView(memory.buffer);
66
- const bytes = new Uint8Array(memory.buffer);
67
- let stringOffset = STRINGS_BASE;
68
- for (let i = 0; i < args.length; i++) {
69
- view.setUint32(ARGV_BASE + i * 4, stringOffset, true);
70
- const encoded = encoder.encode(args[i]);
71
- bytes.set(encoded, stringOffset);
72
- bytes[stringOffset + encoded.length] = 0;
73
- stringOffset += encoded.length + 1;
90
+ // Create runtime
91
+ this.rtPtr = this.exports.JS_NewRuntime();
92
+ if (this.rtPtr === 0) {
93
+ throw new Error("JS_NewRuntime failed");
74
94
  }
75
- view.setUint32(ARGV_BASE + args.length * 4, 0, true);
76
- const result = this.exports.qjs_init_argv(args.length, ARGV_BASE);
77
- if (result !== 0) {
78
- throw new Error(`qjs_init_argv failed with code ${result}`);
95
+ // Initialize std handlers
96
+ this.exports.js_std_init_handlers(this.rtPtr);
97
+ // Create context
98
+ this.ctxPtr = this.exports.JS_NewContext(this.rtPtr);
99
+ if (this.ctxPtr === 0) {
100
+ this.exports.js_std_free_handlers(this.rtPtr);
101
+ this.exports.JS_FreeRuntime(this.rtPtr);
102
+ this.rtPtr = 0;
103
+ throw new Error("JS_NewContext failed");
79
104
  }
105
+ // Initialize std modules
106
+ const stdName = this.allocString("qjs:std");
107
+ this.exports.js_init_module_std(this.ctxPtr, stdName);
108
+ this.freePtr(stdName);
109
+ const osName = this.allocString("qjs:os");
110
+ this.exports.js_init_module_os(this.ctxPtr, osName);
111
+ this.freePtr(osName);
112
+ const bjsonName = this.allocString("qjs:bjson");
113
+ this.exports.js_init_module_bjson(this.ctxPtr, bjsonName);
114
+ this.freePtr(bjsonName);
115
+ // Add std helpers (console.log, print, etc.)
116
+ this.exports.js_std_add_helpers(this.ctxPtr, 0, 0);
80
117
  }
81
118
  /**
82
- * Initialize QuickJS with an empty context.
119
+ * Initialize QuickJS and import std modules as globals.
120
+ * This makes std, os, and bjson available as global objects.
83
121
  */
84
- init() {
122
+ initStdModule() {
123
+ this.init();
124
+ // Import and expose std modules globally
125
+ const code = `import * as bjson from 'qjs:bjson';
126
+ import * as std from 'qjs:std';
127
+ import * as os from 'qjs:os';
128
+ globalThis.bjson = bjson;
129
+ globalThis.std = std;
130
+ globalThis.os = os;
131
+ `;
132
+ this.eval(code, true);
133
+ }
134
+ /**
135
+ * Initialize QuickJS with command-line arguments.
136
+ * Sets up scriptArgs for the JavaScript code.
137
+ */
138
+ initArgv(args) {
85
139
  if (!this.exports)
86
140
  throw new Error("QuickJS not initialized");
87
- const result = this.exports.qjs_init();
88
- if (result !== 0) {
89
- throw new Error(`qjs_init failed with code ${result}`);
141
+ this.init();
142
+ if (args.length > 0) {
143
+ // Allocate argv strings
144
+ const argPtrs = [];
145
+ for (const arg of args) {
146
+ argPtrs.push(this.allocString(arg));
147
+ }
148
+ // Allocate argv array
149
+ const argvPtr = this.exports.malloc(args.length * 4);
150
+ if (argvPtr === 0) {
151
+ for (const ptr of argPtrs) {
152
+ this.freePtr(ptr);
153
+ }
154
+ throw new Error("malloc failed for argv");
155
+ }
156
+ // Write argv pointers
157
+ const view = new DataView(this.exports.memory.buffer);
158
+ for (let i = 0; i < argPtrs.length; i++) {
159
+ view.setUint32(argvPtr + i * 4, argPtrs[i], true);
160
+ }
161
+ // Call js_std_add_helpers with argv
162
+ this.exports.js_std_add_helpers(this.ctxPtr, args.length, argvPtr);
163
+ // Free argv
164
+ this.freePtr(argvPtr);
165
+ for (const ptr of argPtrs) {
166
+ this.freePtr(ptr);
167
+ }
90
168
  }
91
169
  }
92
170
  /**
@@ -96,45 +174,38 @@ export class QuickJS {
96
174
  * @param filename Optional filename for error messages
97
175
  */
98
176
  eval(code, isModule = false, filename = "<eval>") {
99
- if (!this.exports)
177
+ if (!this.exports || this.ctxPtr === 0) {
100
178
  throw new Error("QuickJS not initialized");
101
- const codeBytes = new TextEncoder().encode(code);
102
- const filenameBytes = new TextEncoder().encode(filename);
103
- // Allocate memory for code
104
- const codePtr = this.exports.malloc(codeBytes.length + 1);
105
- if (codePtr === 0)
106
- throw new Error("malloc failed for code");
107
- // Allocate memory for filename
108
- const filenamePtr = this.exports.malloc(filenameBytes.length + 1);
109
- if (filenamePtr === 0) {
110
- this.exports.free(codePtr);
111
- throw new Error("malloc failed for filename");
112
179
  }
113
- const memory = new Uint8Array(this.exports.memory.buffer);
114
- // Write code with null terminator
115
- memory.set(codeBytes, codePtr);
116
- memory[codePtr + codeBytes.length] = 0;
117
- // Write filename with null terminator
118
- memory.set(filenameBytes, filenamePtr);
119
- memory[filenamePtr + filenameBytes.length] = 0;
120
- // Call qjs_eval
121
- const result = this.exports.qjs_eval(codePtr, codeBytes.length, filenamePtr, isModule ? 1 : 0);
180
+ // Allocate code string (with null terminator)
181
+ const codePtr = this.allocString(code);
182
+ // Allocate filename string
183
+ const filenamePtr = this.allocString(filename);
184
+ // Determine eval flags
185
+ const evalFlags = isModule ? JS_EVAL_TYPE_MODULE : JS_EVAL_TYPE_GLOBAL;
186
+ // Call JS_Eval
187
+ const result = this.exports.JS_Eval(this.ctxPtr, codePtr, code.length, filenamePtr, evalFlags);
122
188
  // Free allocated memory
123
- this.exports.free(codePtr);
124
- this.exports.free(filenamePtr);
125
- if (result !== 0) {
126
- throw new Error("eval failed");
189
+ this.freePtr(codePtr);
190
+ this.freePtr(filenamePtr);
191
+ // Check for exception
192
+ if (this.isException(result)) {
193
+ this.exports.js_std_dump_error(this.ctxPtr);
194
+ throw new Error("JavaScript exception");
127
195
  }
196
+ // Free the result value
197
+ this.exports.JS_FreeValue(this.ctxPtr, result);
128
198
  }
129
199
  /**
130
200
  * Run one iteration of the event loop.
131
201
  * @returns Loop result: >0 = timer ms, 0 = more work, -1 = idle, -2 = error
132
202
  */
133
203
  loopOnce() {
134
- if (!this.exports)
204
+ if (!this.exports || this.ctxPtr === 0) {
135
205
  throw new Error("QuickJS not initialized");
206
+ }
136
207
  try {
137
- return this.exports.qjs_loop_once();
208
+ return this.exports.js_std_loop_once(this.ctxPtr);
138
209
  }
139
210
  catch (e) {
140
211
  if (e instanceof WASIProcExit) {
@@ -150,10 +221,11 @@ export class QuickJS {
150
221
  * @param timeoutMs Poll timeout in milliseconds (0 = non-blocking)
151
222
  */
152
223
  pollIO(timeoutMs = 0) {
153
- if (!this.exports)
224
+ if (!this.exports || this.ctxPtr === 0) {
154
225
  throw new Error("QuickJS not initialized");
226
+ }
155
227
  try {
156
- return this.exports.qjs_poll_io(timeoutMs);
228
+ return this.exports.js_std_poll_io(this.ctxPtr, timeoutMs);
157
229
  }
158
230
  catch (e) {
159
231
  if (e instanceof WASIProcExit) {
@@ -263,7 +335,15 @@ export class QuickJS {
263
335
  */
264
336
  destroy() {
265
337
  if (this.exports) {
266
- this.exports.qjs_destroy();
338
+ if (this.ctxPtr !== 0) {
339
+ this.exports.JS_FreeContext(this.ctxPtr);
340
+ this.ctxPtr = 0;
341
+ }
342
+ if (this.rtPtr !== 0) {
343
+ this.exports.js_std_free_handlers(this.rtPtr);
344
+ this.exports.JS_FreeRuntime(this.rtPtr);
345
+ this.rtPtr = 0;
346
+ }
267
347
  }
268
348
  this.stdin.close();
269
349
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quickjs.js","sourceRoot":"","sources":["../src/quickjs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quickjs.js","sourceRoot":"","sources":["../src/quickjs.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /** QuickJS-NG version string */
2
- export declare const VERSION = "v0.11.0-wasi29-reactor-r3";
2
+ export declare const VERSION = "v0.11.0-wasi29-reactor-r4";
3
3
  /** Download URL for the WASM binary */
4
- export declare const DOWNLOAD_URL = "https://github.com/paralin/quickjs/releases/download/v0.11.0-wasi29-reactor-r3/qjs-wasi-reactor.wasm";
4
+ export declare const DOWNLOAD_URL = "https://github.com/paralin/quickjs/releases/download/v0.11.0-wasi29-reactor-r4/qjs-wasi-reactor.wasm";
5
5
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA,gCAAgC;AAChC,eAAO,MAAM,OAAO,8BAA8B,CAAC;AAEnD,uCAAuC;AACvC,eAAO,MAAM,YAAY,yGAC+E,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA,gCAAgC;AAChC,eAAO,MAAM,OAAO,8BAA8B,CAAA;AAElD,uCAAuC;AACvC,eAAO,MAAM,YAAY,yGAAyG,CAAA"}
package/dist/version.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // Auto-generated by update-quickjs.bash
2
2
  // Do not edit manually
3
3
  /** QuickJS-NG version string */
4
- export const VERSION = "v0.11.0-wasi29-reactor-r3";
4
+ export const VERSION = 'v0.11.0-wasi29-reactor-r4';
5
5
  /** Download URL for the WASM binary */
6
- export const DOWNLOAD_URL = "https://github.com/paralin/quickjs/releases/download/v0.11.0-wasi29-reactor-r3/qjs-wasi-reactor.wasm";
6
+ export const DOWNLOAD_URL = 'https://github.com/paralin/quickjs/releases/download/v0.11.0-wasi29-reactor-r4/qjs-wasi-reactor.wasm';
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,uBAAuB;AAEvB,gCAAgC;AAChC,MAAM,CAAC,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAEnD,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GACvB,sGAAsG,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,uBAAuB;AAEvB,gCAAgC;AAChC,MAAM,CAAC,MAAM,OAAO,GAAG,2BAA2B,CAAA;AAElD,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,sGAAsG,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quickjs-wasi-reactor",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "JavaScript harness for QuickJS-NG WASI reactor model",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/qjs-wasi.wasm CHANGED
Binary file