@php-wasm/node 1.1.2 → 1.1.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.
Files changed (40) hide show
  1. package/asyncify/7_2_34/php_7_2.wasm +0 -0
  2. package/asyncify/7_3_33/php_7_3.wasm +0 -0
  3. package/asyncify/7_4_33/php_7_4.wasm +0 -0
  4. package/asyncify/8_0_30/php_8_0.wasm +0 -0
  5. package/asyncify/8_1_23/php_8_1.wasm +0 -0
  6. package/asyncify/8_2_10/php_8_2.wasm +0 -0
  7. package/asyncify/8_3_0/php_8_3.wasm +0 -0
  8. package/asyncify/8_4_0/php_8_4.wasm +0 -0
  9. package/asyncify/php_7_2.js +351 -157
  10. package/asyncify/php_7_3.js +350 -156
  11. package/asyncify/php_7_4.js +349 -155
  12. package/asyncify/php_8_0.js +353 -159
  13. package/asyncify/php_8_1.js +352 -158
  14. package/asyncify/php_8_2.js +353 -159
  15. package/asyncify/php_8_3.js +353 -159
  16. package/asyncify/php_8_4.js +352 -158
  17. package/fs_ext.node +0 -0
  18. package/index.cjs +9896 -2782
  19. package/index.js +9780 -2782
  20. package/jspi/7_2_34/php_7_2.wasm +0 -0
  21. package/jspi/7_3_33/php_7_3.wasm +0 -0
  22. package/jspi/7_4_33/php_7_4.wasm +0 -0
  23. package/jspi/8_0_30/php_8_0.wasm +0 -0
  24. package/jspi/8_1_23/php_8_1.wasm +0 -0
  25. package/jspi/8_2_10/php_8_2.wasm +0 -0
  26. package/jspi/8_3_0/php_8_3.wasm +0 -0
  27. package/jspi/8_4_0/php_8_4.wasm +0 -0
  28. package/jspi/php_7_2.js +1130 -340
  29. package/jspi/php_7_3.js +1130 -340
  30. package/jspi/php_7_4.js +1130 -340
  31. package/jspi/php_8_0.js +1130 -340
  32. package/jspi/php_8_1.js +1129 -339
  33. package/jspi/php_8_2.js +1129 -339
  34. package/jspi/php_8_3.js +1129 -339
  35. package/jspi/php_8_4.js +1129 -339
  36. package/lib/file-lock-manager-for-node.d.ts +149 -0
  37. package/lib/file-lock-manager.d.ts +96 -0
  38. package/lib/index.d.ts +2 -0
  39. package/lib/load-runtime.d.ts +31 -2
  40. package/package.json +10 -9
@@ -8,7 +8,7 @@ import path from 'path';
8
8
 
9
9
  const dependencyFilename = path.join(__dirname, '8_4_0', 'php_8_4.wasm');
10
10
  export { dependencyFilename };
11
- export const dependenciesTotalSize = 21471547;
11
+ export const dependenciesTotalSize = 21815449;
12
12
  export function init(RuntimeName, PHPLoader) {
13
13
  // The rest of the code comes from the built php.js file and esm-suffix.js
14
14
  // include: shell.js
@@ -228,7 +228,7 @@ export function init(RuntimeName, PHPLoader) {
228
228
  if (!Module['noFSInit'] && !FS.initialized) FS.init();
229
229
  TTY.init();
230
230
  PIPEFS.root = FS.mount(PIPEFS, {}, null);
231
- wasmExports['jb']();
231
+ wasmExports['kb']();
232
232
  FS.ignorePermissions = false;
233
233
  }
234
234
 
@@ -396,9 +396,9 @@ export function init(RuntimeName, PHPLoader) {
396
396
  wasmExports = instance.exports;
397
397
  wasmExports = Asyncify.instrumentWasmExports(wasmExports);
398
398
  Module['wasmExports'] = wasmExports;
399
- wasmMemory = wasmExports['ib'];
399
+ wasmMemory = wasmExports['jb'];
400
400
  updateMemoryViews();
401
- wasmTable = wasmExports['kb'];
401
+ wasmTable = wasmExports['lb'];
402
402
  removeRunDependency('wasm-instantiate');
403
403
  return wasmExports;
404
404
  }
@@ -7020,6 +7020,16 @@ export function init(RuntimeName, PHPLoader) {
7020
7020
 
7021
7021
  var allocateUTF8OnStack = stringToUTF8OnStack;
7022
7022
 
7023
+ function _js_getpid() {
7024
+ return PHPLoader.processId ?? 42;
7025
+ }
7026
+
7027
+ function _js_wasm_trace(format, ...args) {
7028
+ if (PHPLoader.trace instanceof Function) {
7029
+ PHPLoader.trace(_js_getpid(), format, ...args);
7030
+ }
7031
+ }
7032
+
7023
7033
  var PHPWASM = {
7024
7034
  init: function () {
7025
7035
  // The /internal directory is required by the C module. It's where the
@@ -7032,6 +7042,44 @@ export function init(RuntimeName, PHPLoader) {
7032
7042
  // The files from the preload directory are preloaded using the
7033
7043
  // auto_prepend_file php.ini directive.
7034
7044
  FS.mkdir('/internal/shared/preload');
7045
+ // Create stdout and stderr devices. We can't just use Emscripten's
7046
+ // default stdout and stderr devices because they stop processing data
7047
+ // on the first null byte. However, when dealing with binary data,
7048
+ // null bytes are valid and common.
7049
+ FS.registerDevice(FS.makedev(64, 0), {
7050
+ open: () => {},
7051
+ close: () => {},
7052
+ read: () => 0,
7053
+ write: (stream, buffer, offset, length, pos) => {
7054
+ const chunk = buffer.subarray(offset, offset + length);
7055
+ PHPWASM.onStdout(chunk);
7056
+ return length;
7057
+ },
7058
+ });
7059
+ FS.mkdev('/internal/stdout', FS.makedev(64, 0));
7060
+ FS.registerDevice(FS.makedev(63, 0), {
7061
+ open: () => {},
7062
+ close: () => {},
7063
+ read: () => 0,
7064
+ write: (stream, buffer, offset, length, pos) => {
7065
+ const chunk = buffer.subarray(offset, offset + length);
7066
+ PHPWASM.onStderr(chunk);
7067
+ return length;
7068
+ },
7069
+ });
7070
+ FS.mkdev('/internal/stderr', FS.makedev(63, 0));
7071
+ FS.registerDevice(FS.makedev(62, 0), {
7072
+ open: () => {},
7073
+ close: () => {},
7074
+ read: () => 0,
7075
+ write: (stream, buffer, offset, length, pos) => {
7076
+ const chunk = buffer.subarray(offset, offset + length);
7077
+ PHPWASM.onHeaders(chunk);
7078
+ return length;
7079
+ },
7080
+ });
7081
+ FS.mkdev('/internal/headers', FS.makedev(62, 0));
7082
+ // Handle events.
7035
7083
  PHPWASM.EventEmitter = ENVIRONMENT_IS_NODE
7036
7084
  ? require('events').EventEmitter
7037
7085
  : class EventEmitter {
@@ -7072,9 +7120,71 @@ export function init(RuntimeName, PHPLoader) {
7072
7120
  }
7073
7121
  }
7074
7122
  };
7123
+ // Clean up the fd -> childProcess mapping when the fd is closed:
7124
+ const originalClose = FS.close;
7125
+ FS.close = function (stream) {
7126
+ originalClose(stream);
7127
+ delete PHPWASM.child_proc_by_fd[stream.fd];
7128
+ };
7075
7129
  PHPWASM.child_proc_by_fd = {};
7076
7130
  PHPWASM.child_proc_by_pid = {};
7077
7131
  PHPWASM.input_devices = {};
7132
+ const originalWrite = TTY.stream_ops.write;
7133
+ TTY.stream_ops.write = function (stream, ...rest) {
7134
+ const retval = originalWrite(stream, ...rest);
7135
+ // Implicit flush since PHP's fflush() doesn't seem to trigger the fsync event
7136
+ // @TODO: Fix this at the wasm level
7137
+ stream.tty.ops.fsync(stream.tty);
7138
+ return retval;
7139
+ };
7140
+ const originalPutChar = TTY.stream_ops.put_char;
7141
+ TTY.stream_ops.put_char = function (tty, val) {
7142
+ /**
7143
+ * Buffer newlines that Emscripten normally ignores.
7144
+ *
7145
+ * Emscripten doesn't do it by default because its default
7146
+ * print function is console.log that implicitly adds a newline. We are overwriting
7147
+ * it with an environment-specific function that outputs exaclty what it was given,
7148
+ * e.g. in Node.js it's process.stdout.write(). Therefore, we need to mak sure
7149
+ * all the newlines make it to the output buffer.
7150
+ */ if (val === 10) tty.output.push(val);
7151
+ return originalPutChar(tty, val);
7152
+ };
7153
+ },
7154
+ onHeaders: function (chunk) {
7155
+ if (Module['onHeaders']) {
7156
+ Module['onHeaders'](chunk);
7157
+ return;
7158
+ }
7159
+ console.log('headers', {
7160
+ chunk,
7161
+ });
7162
+ },
7163
+ onStdout: function (chunk) {
7164
+ if (Module['onStdout']) {
7165
+ Module['onStdout'](chunk);
7166
+ return;
7167
+ }
7168
+ if (ENVIRONMENT_IS_NODE) {
7169
+ process.stdout.write(chunk);
7170
+ } else {
7171
+ console.log('stdout', {
7172
+ chunk,
7173
+ });
7174
+ }
7175
+ },
7176
+ onStderr: function (chunk) {
7177
+ if (Module['onStderr']) {
7178
+ Module['onStderr'](chunk);
7179
+ return;
7180
+ }
7181
+ if (ENVIRONMENT_IS_NODE) {
7182
+ process.stderr.write(chunk);
7183
+ } else {
7184
+ console.warn('stderr', {
7185
+ chunk,
7186
+ });
7187
+ }
7078
7188
  },
7079
7189
  getAllWebSockets: function (sock) {
7080
7190
  const webSockets = new Set();
@@ -7256,7 +7366,7 @@ export function init(RuntimeName, PHPLoader) {
7256
7366
  argsArray.push(UTF8ToString(HEAPU32[charPointer >> 2]));
7257
7367
  }
7258
7368
  }
7259
- const cwdstr = cwdPtr ? UTF8ToString(cwdPtr) : null;
7369
+ const cwdstr = cwdPtr ? UTF8ToString(cwdPtr) : FS.cwd();
7260
7370
  let envObject = null;
7261
7371
  if (envLength) {
7262
7372
  envObject = {};
@@ -7329,6 +7439,15 @@ export function init(RuntimeName, PHPLoader) {
7329
7439
  PHPWASM.child_proc_by_fd[ProcInfo.stderrParentFd] = ProcInfo;
7330
7440
  PHPWASM.child_proc_by_pid[ProcInfo.pid] = ProcInfo;
7331
7441
  cp.on('exit', function (code) {
7442
+ for (const fd of [
7443
+ // The child process exited. Let's clean up its output streams:
7444
+ ProcInfo.stdoutChildFd,
7445
+ ProcInfo.stderrChildFd,
7446
+ ]) {
7447
+ if (FS.streams[fd] && !FS.isClosed(FS.streams[fd])) {
7448
+ FS.close(FS.streams[fd]);
7449
+ }
7450
+ }
7332
7451
  ProcInfo.exitCode = code;
7333
7452
  ProcInfo.exited = true;
7334
7453
  // Emit events for the wasm_poll_socket function.
@@ -7379,12 +7498,52 @@ export function init(RuntimeName, PHPLoader) {
7379
7498
  * listen to the 'exit' event.
7380
7499
  */ try {
7381
7500
  await new Promise((resolve, reject) => {
7382
- cp.on('spawn', resolve);
7383
- cp.on('error', reject);
7501
+ /**
7502
+ * There was no `await` between the `spawnProcess` call
7503
+ * and the `await` below so the process haven't had a chance
7504
+ * to run any of the exit-related callbacks yet.
7505
+ *
7506
+ * Good.
7507
+ *
7508
+ * Let's listen to all the lifecycle events and resolve
7509
+ * the promise when the process starts or immediately crashes.
7510
+ */ let resolved = false;
7511
+ cp.on('spawn', () => {
7512
+ if (resolved) return;
7513
+ resolved = true;
7514
+ resolve();
7515
+ });
7516
+ cp.on('error', (e) => {
7517
+ if (resolved) return;
7518
+ resolved = true;
7519
+ reject(e);
7520
+ });
7521
+ cp.on('exit', function (code) {
7522
+ if (resolved) return;
7523
+ resolved = true;
7524
+ if (code === 0) {
7525
+ resolve();
7526
+ } else {
7527
+ reject(
7528
+ new Error(`Process exited with code ${code}`)
7529
+ );
7530
+ }
7531
+ });
7532
+ /**
7533
+ * If the process haven't even started after 5 seconds, something
7534
+ * is wrong. Perhaps we're missing an event listener, or perhaps
7535
+ * the `spawnProcess` implementation failed to dispatch the relevant
7536
+ * event. Either way, let's crash to avoid blocking the proc_open()
7537
+ * call indefinitely.
7538
+ */ setTimeout(() => {
7539
+ if (resolved) return;
7540
+ resolved = true;
7541
+ reject(new Error('Process timed out'));
7542
+ }, 5e3);
7384
7543
  });
7385
7544
  } catch (e) {
7386
7545
  console.error(e);
7387
- wakeUp(1);
7546
+ wakeUp(ProcInfo.pid);
7388
7547
  return;
7389
7548
  }
7390
7549
  // Now we want to pass data from the STDIN source supplied by PHP
@@ -7884,7 +8043,7 @@ export function init(RuntimeName, PHPLoader) {
7884
8043
  var Asyncify = {
7885
8044
  instrumentWasmImports(imports) {
7886
8045
  var importPattern =
7887
- /^(_dlopen_js|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|js_fd_read|_js_fd_read|js_module_onMessage|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|wasm_shutdown|_wasm_shutdown|_asyncjs__wasm_shutdown|__asyncjs__.*)$/;
8046
+ /^(_dlopen_js|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_iij|invoke_iiji|invoke_iijii|invoke_iijiji|invoke_jii|invoke_jiii|invoke_viijii|invoke_vji|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|__syscall_fcntl64|js_release_file_locks|js_flock|js_fd_read|_js_fd_read|_fd_close|js_module_onMessage|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|_wasm_shutdown|_asyncjs__wasm_shutdown|__asyncjs__.*)$/;
7888
8047
  for (let [x, original] of Object.entries(imports)) {
7889
8048
  if (typeof original == 'function') {
7890
8049
  let isAsyncifyImport =
@@ -8277,14 +8436,7 @@ export function init(RuntimeName, PHPLoader) {
8277
8436
  const POLLNVAL = 32;
8278
8437
  return returnCallback((wakeUp) => {
8279
8438
  const polls = [];
8280
- if (socketd in PHPWASM.child_proc_by_fd) {
8281
- const procInfo = PHPWASM.child_proc_by_fd[socketd];
8282
- if (procInfo.exited) {
8283
- wakeUp(0);
8284
- return;
8285
- }
8286
- polls.push(PHPWASM.awaitEvent(procInfo.stdout, 'data'));
8287
- } else if (FS.isSocket(FS.getStream(socketd)?.node.mode)) {
8439
+ if (FS.isSocket(FS.getStream(socketd)?.node.mode)) {
8288
8440
  const sock = getSocketFromFD(socketd);
8289
8441
  if (!sock) {
8290
8442
  wakeUp(0);
@@ -8318,7 +8470,12 @@ export function init(RuntimeName, PHPLoader) {
8318
8470
  polls.push(PHPWASM.awaitConnection(ws));
8319
8471
  lookingFor.add('POLLOUT');
8320
8472
  }
8321
- if (events & POLLHUP) {
8473
+ if (
8474
+ events & POLLHUP ||
8475
+ events & POLLIN ||
8476
+ events & POLLOUT ||
8477
+ events & POLLERR
8478
+ ) {
8322
8479
  polls.push(PHPWASM.awaitClose(ws));
8323
8480
  lookingFor.add('POLLHUP');
8324
8481
  }
@@ -8327,6 +8484,13 @@ export function init(RuntimeName, PHPLoader) {
8327
8484
  lookingFor.add('POLLERR');
8328
8485
  }
8329
8486
  }
8487
+ } else if (socketd in PHPWASM.child_proc_by_fd) {
8488
+ const procInfo = PHPWASM.child_proc_by_fd[socketd];
8489
+ if (procInfo.exited) {
8490
+ wakeUp(0);
8491
+ return;
8492
+ }
8493
+ polls.push(PHPWASM.awaitEvent(procInfo.stdout, 'data'));
8330
8494
  } else {
8331
8495
  setTimeout(function () {
8332
8496
  wakeUp(1);
@@ -8470,81 +8634,81 @@ export function init(RuntimeName, PHPLoader) {
8470
8634
 
8471
8635
  var wasmImports = {
8472
8636
  /** @export */ o: ___assert_fail,
8473
- /** @export */ ca: __asyncjs__js_module_onMessage,
8474
- /** @export */ hb: ___call_sighandler,
8637
+ /** @export */ da: __asyncjs__js_module_onMessage,
8638
+ /** @export */ ib: ___call_sighandler,
8475
8639
  /** @export */ W: ___cxa_throw,
8476
- /** @export */ gb: ___syscall_accept4,
8477
- /** @export */ fb: ___syscall_bind,
8478
- /** @export */ eb: ___syscall_chdir,
8640
+ /** @export */ hb: ___syscall_accept4,
8641
+ /** @export */ gb: ___syscall_bind,
8642
+ /** @export */ fb: ___syscall_chdir,
8479
8643
  /** @export */ V: ___syscall_chmod,
8480
- /** @export */ db: ___syscall_connect,
8481
- /** @export */ cb: ___syscall_dup,
8482
- /** @export */ bb: ___syscall_dup3,
8483
- /** @export */ ab: ___syscall_faccessat,
8484
- /** @export */ $a: ___syscall_fallocate,
8485
- /** @export */ _a: ___syscall_fchmod,
8486
- /** @export */ Za: ___syscall_fchown32,
8644
+ /** @export */ eb: ___syscall_connect,
8645
+ /** @export */ db: ___syscall_dup,
8646
+ /** @export */ cb: ___syscall_dup3,
8647
+ /** @export */ bb: ___syscall_faccessat,
8648
+ /** @export */ ab: ___syscall_fallocate,
8649
+ /** @export */ $a: ___syscall_fchmod,
8650
+ /** @export */ _a: ___syscall_fchown32,
8487
8651
  /** @export */ U: ___syscall_fchownat,
8488
8652
  /** @export */ n: ___syscall_fcntl64,
8489
- /** @export */ Ya: ___syscall_fdatasync,
8490
- /** @export */ Xa: ___syscall_fstat64,
8491
- /** @export */ Wa: ___syscall_ftruncate64,
8492
- /** @export */ Va: ___syscall_getcwd,
8493
- /** @export */ Ua: ___syscall_getdents64,
8494
- /** @export */ Ta: ___syscall_getpeername,
8495
- /** @export */ Sa: ___syscall_getsockname,
8496
- /** @export */ Ra: ___syscall_getsockopt,
8653
+ /** @export */ Za: ___syscall_fdatasync,
8654
+ /** @export */ Ya: ___syscall_fstat64,
8655
+ /** @export */ Xa: ___syscall_ftruncate64,
8656
+ /** @export */ Wa: ___syscall_getcwd,
8657
+ /** @export */ Va: ___syscall_getdents64,
8658
+ /** @export */ Ua: ___syscall_getpeername,
8659
+ /** @export */ Ta: ___syscall_getsockname,
8660
+ /** @export */ Sa: ___syscall_getsockopt,
8497
8661
  /** @export */ E: ___syscall_ioctl,
8498
- /** @export */ Qa: ___syscall_listen,
8499
- /** @export */ Pa: ___syscall_lstat64,
8500
- /** @export */ Oa: ___syscall_mkdirat,
8501
- /** @export */ Na: ___syscall_newfstatat,
8662
+ /** @export */ Ra: ___syscall_listen,
8663
+ /** @export */ Qa: ___syscall_lstat64,
8664
+ /** @export */ Pa: ___syscall_mkdirat,
8665
+ /** @export */ Oa: ___syscall_newfstatat,
8502
8666
  /** @export */ y: ___syscall_openat,
8503
- /** @export */ Ma: ___syscall_pipe,
8504
- /** @export */ La: ___syscall_poll,
8505
- /** @export */ Ka: ___syscall_readlinkat,
8506
- /** @export */ Ja: ___syscall_recvfrom,
8507
- /** @export */ Ia: ___syscall_renameat,
8667
+ /** @export */ Na: ___syscall_pipe,
8668
+ /** @export */ Ma: ___syscall_poll,
8669
+ /** @export */ La: ___syscall_readlinkat,
8670
+ /** @export */ Ka: ___syscall_recvfrom,
8671
+ /** @export */ Ja: ___syscall_renameat,
8508
8672
  /** @export */ T: ___syscall_rmdir,
8509
- /** @export */ Ha: ___syscall_sendto,
8673
+ /** @export */ Ia: ___syscall_sendto,
8510
8674
  /** @export */ S: ___syscall_socket,
8511
- /** @export */ Ga: ___syscall_stat64,
8512
- /** @export */ Fa: ___syscall_statfs64,
8513
- /** @export */ Ea: ___syscall_symlinkat,
8675
+ /** @export */ Ha: ___syscall_stat64,
8676
+ /** @export */ Ga: ___syscall_statfs64,
8677
+ /** @export */ Fa: ___syscall_symlinkat,
8514
8678
  /** @export */ D: ___syscall_unlinkat,
8515
- /** @export */ Da: ___syscall_utimensat,
8516
- /** @export */ wa: __abort_js,
8517
- /** @export */ va: __emscripten_lookup_name,
8518
- /** @export */ ua: __emscripten_runtime_keepalive_clear,
8519
- /** @export */ ta: __emscripten_throw_longjmp,
8520
- /** @export */ sa: __gmtime_js,
8521
- /** @export */ ra: __localtime_js,
8522
- /** @export */ qa: __mktime_js,
8523
- /** @export */ pa: __mmap_js,
8524
- /** @export */ oa: __munmap_js,
8679
+ /** @export */ Ea: ___syscall_utimensat,
8680
+ /** @export */ xa: __abort_js,
8681
+ /** @export */ wa: __emscripten_lookup_name,
8682
+ /** @export */ va: __emscripten_runtime_keepalive_clear,
8683
+ /** @export */ ua: __emscripten_throw_longjmp,
8684
+ /** @export */ ta: __gmtime_js,
8685
+ /** @export */ sa: __localtime_js,
8686
+ /** @export */ ra: __mktime_js,
8687
+ /** @export */ qa: __mmap_js,
8688
+ /** @export */ pa: __munmap_js,
8525
8689
  /** @export */ P: __setitimer_js,
8526
- /** @export */ na: __tzset_js,
8527
- /** @export */ Ca: _clock_time_get,
8690
+ /** @export */ oa: __tzset_js,
8691
+ /** @export */ Da: _clock_time_get,
8528
8692
  /** @export */ O: _emscripten_date_now,
8529
- /** @export */ ma: _emscripten_get_heap_max,
8693
+ /** @export */ na: _emscripten_get_heap_max,
8530
8694
  /** @export */ x: _emscripten_get_now,
8531
- /** @export */ la: _emscripten_resize_heap,
8695
+ /** @export */ ma: _emscripten_resize_heap,
8532
8696
  /** @export */ N: _emscripten_sleep,
8533
- /** @export */ Ba: _environ_get,
8534
- /** @export */ Aa: _environ_sizes_get,
8697
+ /** @export */ Ca: _environ_get,
8698
+ /** @export */ Ba: _environ_sizes_get,
8535
8699
  /** @export */ q: _exit,
8536
8700
  /** @export */ r: _fd_close,
8537
8701
  /** @export */ R: _fd_fdstat_get,
8538
8702
  /** @export */ Q: _fd_read,
8539
- /** @export */ za: _fd_seek,
8540
- /** @export */ ya: _fd_sync,
8703
+ /** @export */ Aa: _fd_seek,
8704
+ /** @export */ za: _fd_sync,
8541
8705
  /** @export */ C: _fd_write,
8542
8706
  /** @export */ M: _getaddrinfo,
8543
- /** @export */ ka: _getcontext,
8544
- /** @export */ ja: _getdtablesize,
8707
+ /** @export */ la: _getcontext,
8708
+ /** @export */ ka: _getdtablesize,
8545
8709
  /** @export */ w: _getnameinfo,
8546
- /** @export */ ia: _getprotobyname,
8547
- /** @export */ ha: _getprotobynumber,
8710
+ /** @export */ ja: _getprotobyname,
8711
+ /** @export */ ia: _getprotobynumber,
8548
8712
  /** @export */ k: invoke_i,
8549
8713
  /** @export */ c: invoke_ii,
8550
8714
  /** @export */ b: invoke_iii,
@@ -8556,8 +8720,8 @@ export function init(RuntimeName, PHPLoader) {
8556
8720
  /** @export */ L: invoke_iiiiiiiiii,
8557
8721
  /** @export */ B: invoke_iij,
8558
8722
  /** @export */ K: invoke_iiji,
8559
- /** @export */ ga: invoke_iijii,
8560
- /** @export */ fa: invoke_iijiji,
8723
+ /** @export */ ha: invoke_iijii,
8724
+ /** @export */ ga: invoke_iijiji,
8561
8725
  /** @export */ J: invoke_jii,
8562
8726
  /** @export */ I: invoke_jiii,
8563
8727
  /** @export */ e: invoke_v,
@@ -8567,18 +8731,19 @@ export function init(RuntimeName, PHPLoader) {
8567
8731
  /** @export */ f: invoke_viii,
8568
8732
  /** @export */ l: invoke_viiii,
8569
8733
  /** @export */ j: invoke_viiiii,
8570
- /** @export */ ea: invoke_viiiiiii,
8734
+ /** @export */ fa: invoke_viiiiiii,
8571
8735
  /** @export */ z: invoke_viiiiiiiii,
8572
8736
  /** @export */ i: invoke_viijii,
8573
8737
  /** @export */ H: invoke_vji,
8574
8738
  /** @export */ G: _js_create_input_device,
8575
- /** @export */ da: js_fd_read,
8739
+ /** @export */ ea: js_fd_read,
8576
8740
  /** @export */ F: _js_open_process,
8577
- /** @export */ ba: js_popen_to_file,
8578
- /** @export */ aa: _js_process_status,
8579
- /** @export */ $: _js_waitpid,
8741
+ /** @export */ ca: js_popen_to_file,
8742
+ /** @export */ ba: _js_process_status,
8743
+ /** @export */ aa: _js_waitpid,
8744
+ /** @export */ $: _js_wasm_trace,
8580
8745
  /** @export */ _: _makecontext,
8581
- /** @export */ xa: _proc_exit,
8746
+ /** @export */ ya: _proc_exit,
8582
8747
  /** @export */ Z: _strptime,
8583
8748
  /** @export */ Y: _swapcontext,
8584
8749
  /** @export */ s: _wasm_close,
@@ -8591,17 +8756,17 @@ export function init(RuntimeName, PHPLoader) {
8591
8756
 
8592
8757
  createWasm();
8593
8758
 
8594
- var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports['jb'])();
8759
+ var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports['kb'])();
8595
8760
 
8596
- var _free = (a0) => (_free = wasmExports['lb'])(a0);
8761
+ var _free = (a0) => (_free = wasmExports['mb'])(a0);
8597
8762
 
8598
- var _malloc = (a0) => (_malloc = wasmExports['mb'])(a0);
8763
+ var _malloc = (a0) => (_malloc = wasmExports['nb'])(a0);
8599
8764
 
8600
8765
  var _wasm_popen = (Module['_wasm_popen'] = (a0, a1) =>
8601
- (_wasm_popen = Module['_wasm_popen'] = wasmExports['nb'])(a0, a1));
8766
+ (_wasm_popen = Module['_wasm_popen'] = wasmExports['ob'])(a0, a1));
8602
8767
 
8603
8768
  var _wasm_php_exec = (Module['_wasm_php_exec'] = (a0, a1, a2, a3) =>
8604
- (_wasm_php_exec = Module['_wasm_php_exec'] = wasmExports['ob'])(
8769
+ (_wasm_php_exec = Module['_wasm_php_exec'] = wasmExports['pb'])(
8605
8770
  a0,
8606
8771
  a1,
8607
8772
  a2,
@@ -8609,28 +8774,28 @@ export function init(RuntimeName, PHPLoader) {
8609
8774
  ));
8610
8775
 
8611
8776
  var _php_pollfd_for = (Module['_php_pollfd_for'] = (a0, a1, a2) =>
8612
- (_php_pollfd_for = Module['_php_pollfd_for'] = wasmExports['pb'])(
8777
+ (_php_pollfd_for = Module['_php_pollfd_for'] = wasmExports['qb'])(
8613
8778
  a0,
8614
8779
  a1,
8615
8780
  a2
8616
8781
  ));
8617
8782
 
8618
- var _htons = (a0) => (_htons = wasmExports['qb'])(a0);
8783
+ var _htons = (a0) => (_htons = wasmExports['rb'])(a0);
8619
8784
 
8620
- var _ntohs = (a0) => (_ntohs = wasmExports['rb'])(a0);
8785
+ var _ntohs = (a0) => (_ntohs = wasmExports['sb'])(a0);
8621
8786
 
8622
- var _htonl = (a0) => (_htonl = wasmExports['sb'])(a0);
8787
+ var _htonl = (a0) => (_htonl = wasmExports['tb'])(a0);
8623
8788
 
8624
8789
  var _wasm_sleep = (Module['_wasm_sleep'] = (a0) =>
8625
- (_wasm_sleep = Module['_wasm_sleep'] = wasmExports['tb'])(a0));
8790
+ (_wasm_sleep = Module['_wasm_sleep'] = wasmExports['ub'])(a0));
8626
8791
 
8627
- var _fflush = (a0) => (_fflush = wasmExports['ub'])(a0);
8792
+ var _fflush = (a0) => (_fflush = wasmExports['vb'])(a0);
8628
8793
 
8629
8794
  var _wasm_read = (Module['_wasm_read'] = (a0, a1, a2) =>
8630
- (_wasm_read = Module['_wasm_read'] = wasmExports['vb'])(a0, a1, a2));
8795
+ (_wasm_read = Module['_wasm_read'] = wasmExports['wb'])(a0, a1, a2));
8631
8796
 
8632
8797
  var ___wrap_select = (Module['___wrap_select'] = (a0, a1, a2, a3, a4) =>
8633
- (___wrap_select = Module['___wrap_select'] = wasmExports['wb'])(
8798
+ (___wrap_select = Module['___wrap_select'] = wasmExports['xb'])(
8634
8799
  a0,
8635
8800
  a1,
8636
8801
  a2,
@@ -8638,115 +8803,118 @@ export function init(RuntimeName, PHPLoader) {
8638
8803
  a4
8639
8804
  ));
8640
8805
 
8641
- var _wasm_add_cli_arg = (Module['_wasm_add_cli_arg'] = (a0) =>
8642
- (_wasm_add_cli_arg = Module['_wasm_add_cli_arg'] = wasmExports['xb'])(
8643
- a0
8644
- ));
8645
-
8646
- var _run_cli = (Module['_run_cli'] = () =>
8647
- (_run_cli = Module['_run_cli'] = wasmExports['yb'])());
8648
-
8649
8806
  var _wasm_set_sapi_name = (Module['_wasm_set_sapi_name'] = (a0) =>
8650
8807
  (_wasm_set_sapi_name = Module['_wasm_set_sapi_name'] =
8651
- wasmExports['zb'])(a0));
8808
+ wasmExports['yb'])(a0));
8652
8809
 
8653
8810
  var _wasm_set_phpini_path = (Module['_wasm_set_phpini_path'] = (a0) =>
8654
8811
  (_wasm_set_phpini_path = Module['_wasm_set_phpini_path'] =
8655
- wasmExports['Ab'])(a0));
8812
+ wasmExports['zb'])(a0));
8813
+
8814
+ var _wasm_add_cli_arg = (Module['_wasm_add_cli_arg'] = (a0) =>
8815
+ (_wasm_add_cli_arg = Module['_wasm_add_cli_arg'] = wasmExports['Ab'])(
8816
+ a0
8817
+ ));
8818
+
8819
+ var _run_cli = (Module['_run_cli'] = () =>
8820
+ (_run_cli = Module['_run_cli'] = wasmExports['Bb'])());
8656
8821
 
8657
8822
  var _wasm_add_SERVER_entry = (Module['_wasm_add_SERVER_entry'] = (a0, a1) =>
8658
8823
  (_wasm_add_SERVER_entry = Module['_wasm_add_SERVER_entry'] =
8659
- wasmExports['Bb'])(a0, a1));
8824
+ wasmExports['Cb'])(a0, a1));
8660
8825
 
8661
8826
  var _wasm_add_ENV_entry = (Module['_wasm_add_ENV_entry'] = (a0, a1) =>
8662
8827
  (_wasm_add_ENV_entry = Module['_wasm_add_ENV_entry'] =
8663
- wasmExports['Cb'])(a0, a1));
8828
+ wasmExports['Db'])(a0, a1));
8664
8829
 
8665
8830
  var _wasm_set_query_string = (Module['_wasm_set_query_string'] = (a0) =>
8666
8831
  (_wasm_set_query_string = Module['_wasm_set_query_string'] =
8667
- wasmExports['Db'])(a0));
8832
+ wasmExports['Eb'])(a0));
8668
8833
 
8669
8834
  var _wasm_set_path_translated = (Module['_wasm_set_path_translated'] = (
8670
8835
  a0
8671
8836
  ) =>
8672
8837
  (_wasm_set_path_translated = Module['_wasm_set_path_translated'] =
8673
- wasmExports['Eb'])(a0));
8838
+ wasmExports['Fb'])(a0));
8674
8839
 
8675
8840
  var _wasm_set_skip_shebang = (Module['_wasm_set_skip_shebang'] = (a0) =>
8676
8841
  (_wasm_set_skip_shebang = Module['_wasm_set_skip_shebang'] =
8677
- wasmExports['Fb'])(a0));
8842
+ wasmExports['Gb'])(a0));
8678
8843
 
8679
8844
  var _wasm_set_request_uri = (Module['_wasm_set_request_uri'] = (a0) =>
8680
8845
  (_wasm_set_request_uri = Module['_wasm_set_request_uri'] =
8681
- wasmExports['Gb'])(a0));
8846
+ wasmExports['Hb'])(a0));
8682
8847
 
8683
8848
  var _wasm_set_request_method = (Module['_wasm_set_request_method'] = (a0) =>
8684
8849
  (_wasm_set_request_method = Module['_wasm_set_request_method'] =
8685
- wasmExports['Hb'])(a0));
8850
+ wasmExports['Ib'])(a0));
8686
8851
 
8687
8852
  var _wasm_set_request_host = (Module['_wasm_set_request_host'] = (a0) =>
8688
8853
  (_wasm_set_request_host = Module['_wasm_set_request_host'] =
8689
- wasmExports['Ib'])(a0));
8854
+ wasmExports['Jb'])(a0));
8690
8855
 
8691
8856
  var _wasm_set_content_type = (Module['_wasm_set_content_type'] = (a0) =>
8692
8857
  (_wasm_set_content_type = Module['_wasm_set_content_type'] =
8693
- wasmExports['Jb'])(a0));
8858
+ wasmExports['Kb'])(a0));
8694
8859
 
8695
8860
  var _wasm_set_request_body = (Module['_wasm_set_request_body'] = (a0) =>
8696
8861
  (_wasm_set_request_body = Module['_wasm_set_request_body'] =
8697
- wasmExports['Kb'])(a0));
8862
+ wasmExports['Lb'])(a0));
8698
8863
 
8699
8864
  var _wasm_set_content_length = (Module['_wasm_set_content_length'] = (a0) =>
8700
8865
  (_wasm_set_content_length = Module['_wasm_set_content_length'] =
8701
- wasmExports['Lb'])(a0));
8866
+ wasmExports['Mb'])(a0));
8702
8867
 
8703
8868
  var _wasm_set_cookies = (Module['_wasm_set_cookies'] = (a0) =>
8704
- (_wasm_set_cookies = Module['_wasm_set_cookies'] = wasmExports['Mb'])(
8869
+ (_wasm_set_cookies = Module['_wasm_set_cookies'] = wasmExports['Nb'])(
8705
8870
  a0
8706
8871
  ));
8707
8872
 
8708
8873
  var _wasm_set_request_port = (Module['_wasm_set_request_port'] = (a0) =>
8709
8874
  (_wasm_set_request_port = Module['_wasm_set_request_port'] =
8710
- wasmExports['Nb'])(a0));
8875
+ wasmExports['Ob'])(a0));
8711
8876
 
8712
8877
  var _wasm_sapi_request_shutdown = (Module['_wasm_sapi_request_shutdown'] =
8713
8878
  () =>
8714
8879
  (_wasm_sapi_request_shutdown = Module[
8715
8880
  '_wasm_sapi_request_shutdown'
8716
8881
  ] =
8717
- wasmExports['Ob'])());
8882
+ wasmExports['Pb'])());
8718
8883
 
8719
8884
  var _wasm_sapi_handle_request = (Module['_wasm_sapi_handle_request'] = () =>
8720
8885
  (_wasm_sapi_handle_request = Module['_wasm_sapi_handle_request'] =
8721
- wasmExports['Pb'])());
8886
+ wasmExports['Qb'])());
8722
8887
 
8723
8888
  var _php_wasm_init = (Module['_php_wasm_init'] = () =>
8724
- (_php_wasm_init = Module['_php_wasm_init'] = wasmExports['Qb'])());
8889
+ (_php_wasm_init = Module['_php_wasm_init'] = wasmExports['Rb'])());
8725
8890
 
8726
8891
  var _wasm_free = (Module['_wasm_free'] = (a0) =>
8727
- (_wasm_free = Module['_wasm_free'] = wasmExports['Rb'])(a0));
8892
+ (_wasm_free = Module['_wasm_free'] = wasmExports['Sb'])(a0));
8728
8893
 
8729
- var ___funcs_on_exit = () => (___funcs_on_exit = wasmExports['Sb'])();
8894
+ var _wasm_trace = (Module['_wasm_trace'] = (a0, a1) =>
8895
+ (_wasm_trace = Module['_wasm_trace'] = wasmExports['Tb'])(a0, a1));
8896
+
8897
+ var ___funcs_on_exit = () => (___funcs_on_exit = wasmExports['Ub'])();
8730
8898
 
8731
8899
  var _emscripten_builtin_memalign = (a0, a1) =>
8732
- (_emscripten_builtin_memalign = wasmExports['Tb'])(a0, a1);
8900
+ (_emscripten_builtin_memalign = wasmExports['Vb'])(a0, a1);
8733
8901
 
8734
8902
  var __emscripten_timeout = (a0, a1) =>
8735
- (__emscripten_timeout = wasmExports['Ub'])(a0, a1);
8903
+ (__emscripten_timeout = wasmExports['Wb'])(a0, a1);
8736
8904
 
8737
- var _setThrew = (a0, a1) => (_setThrew = wasmExports['Vb'])(a0, a1);
8905
+ var _setThrew = (a0, a1) => (_setThrew = wasmExports['Xb'])(a0, a1);
8738
8906
 
8739
8907
  var __emscripten_stack_restore = (a0) =>
8740
- (__emscripten_stack_restore = wasmExports['Wb'])(a0);
8908
+ (__emscripten_stack_restore = wasmExports['Yb'])(a0);
8741
8909
 
8742
8910
  var __emscripten_stack_alloc = (a0) =>
8743
- (__emscripten_stack_alloc = wasmExports['Xb'])(a0);
8911
+ (__emscripten_stack_alloc = wasmExports['Zb'])(a0);
8744
8912
 
8745
8913
  var _emscripten_stack_get_current = () =>
8746
- (_emscripten_stack_get_current = wasmExports['Yb'])();
8914
+ (_emscripten_stack_get_current = wasmExports['_b'])();
8747
8915
 
8748
8916
  var dynCall_iiii = (Module['dynCall_iiii'] = (a0, a1, a2, a3) =>
8749
- (dynCall_iiii = Module['dynCall_iiii'] = wasmExports['Zb'])(
8917
+ (dynCall_iiii = Module['dynCall_iiii'] = wasmExports['$b'])(
8750
8918
  a0,
8751
8919
  a1,
8752
8920
  a2,
@@ -8754,16 +8922,16 @@ export function init(RuntimeName, PHPLoader) {
8754
8922
  ));
8755
8923
 
8756
8924
  var dynCall_ii = (Module['dynCall_ii'] = (a0, a1) =>
8757
- (dynCall_ii = Module['dynCall_ii'] = wasmExports['_b'])(a0, a1));
8925
+ (dynCall_ii = Module['dynCall_ii'] = wasmExports['ac'])(a0, a1));
8758
8926
 
8759
8927
  var dynCall_vi = (Module['dynCall_vi'] = (a0, a1) =>
8760
- (dynCall_vi = Module['dynCall_vi'] = wasmExports['$b'])(a0, a1));
8928
+ (dynCall_vi = Module['dynCall_vi'] = wasmExports['bc'])(a0, a1));
8761
8929
 
8762
8930
  var dynCall_vii = (Module['dynCall_vii'] = (a0, a1, a2) =>
8763
- (dynCall_vii = Module['dynCall_vii'] = wasmExports['ac'])(a0, a1, a2));
8931
+ (dynCall_vii = Module['dynCall_vii'] = wasmExports['cc'])(a0, a1, a2));
8764
8932
 
8765
8933
  var dynCall_viiiii = (Module['dynCall_viiiii'] = (a0, a1, a2, a3, a4, a5) =>
8766
- (dynCall_viiiii = Module['dynCall_viiiii'] = wasmExports['bc'])(
8934
+ (dynCall_viiiii = Module['dynCall_viiiii'] = wasmExports['dc'])(
8767
8935
  a0,
8768
8936
  a1,
8769
8937
  a2,
@@ -8773,10 +8941,10 @@ export function init(RuntimeName, PHPLoader) {
8773
8941
  ));
8774
8942
 
8775
8943
  var dynCall_iii = (Module['dynCall_iii'] = (a0, a1, a2) =>
8776
- (dynCall_iii = Module['dynCall_iii'] = wasmExports['cc'])(a0, a1, a2));
8944
+ (dynCall_iii = Module['dynCall_iii'] = wasmExports['ec'])(a0, a1, a2));
8777
8945
 
8778
8946
  var dynCall_iiiii = (Module['dynCall_iiiii'] = (a0, a1, a2, a3, a4) =>
8779
- (dynCall_iiiii = Module['dynCall_iiiii'] = wasmExports['dc'])(
8947
+ (dynCall_iiiii = Module['dynCall_iiiii'] = wasmExports['fc'])(
8780
8948
  a0,
8781
8949
  a1,
8782
8950
  a2,
@@ -8785,7 +8953,7 @@ export function init(RuntimeName, PHPLoader) {
8785
8953
  ));
8786
8954
 
8787
8955
  var dynCall_iiiiii = (Module['dynCall_iiiiii'] = (a0, a1, a2, a3, a4, a5) =>
8788
- (dynCall_iiiiii = Module['dynCall_iiiiii'] = wasmExports['ec'])(
8956
+ (dynCall_iiiiii = Module['dynCall_iiiiii'] = wasmExports['gc'])(
8789
8957
  a0,
8790
8958
  a1,
8791
8959
  a2,
@@ -8795,7 +8963,7 @@ export function init(RuntimeName, PHPLoader) {
8795
8963
  ));
8796
8964
 
8797
8965
  var dynCall_viii = (Module['dynCall_viii'] = (a0, a1, a2, a3) =>
8798
- (dynCall_viii = Module['dynCall_viii'] = wasmExports['fc'])(
8966
+ (dynCall_viii = Module['dynCall_viii'] = wasmExports['hc'])(
8799
8967
  a0,
8800
8968
  a1,
8801
8969
  a2,
@@ -8803,16 +8971,16 @@ export function init(RuntimeName, PHPLoader) {
8803
8971
  ));
8804
8972
 
8805
8973
  var dynCall_iij = (Module['dynCall_iij'] = (a0, a1, a2) =>
8806
- (dynCall_iij = Module['dynCall_iij'] = wasmExports['gc'])(a0, a1, a2));
8974
+ (dynCall_iij = Module['dynCall_iij'] = wasmExports['ic'])(a0, a1, a2));
8807
8975
 
8808
8976
  var dynCall_v = (Module['dynCall_v'] = (a0) =>
8809
- (dynCall_v = Module['dynCall_v'] = wasmExports['hc'])(a0));
8977
+ (dynCall_v = Module['dynCall_v'] = wasmExports['jc'])(a0));
8810
8978
 
8811
8979
  var dynCall_i = (Module['dynCall_i'] = (a0) =>
8812
- (dynCall_i = Module['dynCall_i'] = wasmExports['ic'])(a0));
8980
+ (dynCall_i = Module['dynCall_i'] = wasmExports['kc'])(a0));
8813
8981
 
8814
8982
  var dynCall_viiii = (Module['dynCall_viiii'] = (a0, a1, a2, a3, a4) =>
8815
- (dynCall_viiii = Module['dynCall_viiii'] = wasmExports['jc'])(
8983
+ (dynCall_viiii = Module['dynCall_viiii'] = wasmExports['lc'])(
8816
8984
  a0,
8817
8985
  a1,
8818
8986
  a2,
@@ -8829,7 +8997,7 @@ export function init(RuntimeName, PHPLoader) {
8829
8997
  a5,
8830
8998
  a6
8831
8999
  ) =>
8832
- (dynCall_iiiiiii = Module['dynCall_iiiiiii'] = wasmExports['kc'])(
9000
+ (dynCall_iiiiiii = Module['dynCall_iiiiiii'] = wasmExports['mc'])(
8833
9001
  a0,
8834
9002
  a1,
8835
9003
  a2,
@@ -8840,7 +9008,7 @@ export function init(RuntimeName, PHPLoader) {
8840
9008
  ));
8841
9009
 
8842
9010
  var dynCall_iijii = (Module['dynCall_iijii'] = (a0, a1, a2, a3, a4) =>
8843
- (dynCall_iijii = Module['dynCall_iijii'] = wasmExports['lc'])(
9011
+ (dynCall_iijii = Module['dynCall_iijii'] = wasmExports['nc'])(
8844
9012
  a0,
8845
9013
  a1,
8846
9014
  a2,
@@ -8849,10 +9017,10 @@ export function init(RuntimeName, PHPLoader) {
8849
9017
  ));
8850
9018
 
8851
9019
  var dynCall_jii = (Module['dynCall_jii'] = (a0, a1, a2) =>
8852
- (dynCall_jii = Module['dynCall_jii'] = wasmExports['mc'])(a0, a1, a2));
9020
+ (dynCall_jii = Module['dynCall_jii'] = wasmExports['oc'])(a0, a1, a2));
8853
9021
 
8854
9022
  var dynCall_jiii = (Module['dynCall_jiii'] = (a0, a1, a2, a3) =>
8855
- (dynCall_jiii = Module['dynCall_jiii'] = wasmExports['nc'])(
9023
+ (dynCall_jiii = Module['dynCall_jiii'] = wasmExports['pc'])(
8856
9024
  a0,
8857
9025
  a1,
8858
9026
  a2,
@@ -8871,7 +9039,7 @@ export function init(RuntimeName, PHPLoader) {
8871
9039
  a8,
8872
9040
  a9
8873
9041
  ) =>
8874
- (dynCall_viiiiiiiii = Module['dynCall_viiiiiiiii'] = wasmExports['oc'])(
9042
+ (dynCall_viiiiiiiii = Module['dynCall_viiiiiiiii'] = wasmExports['qc'])(
8875
9043
  a0,
8876
9044
  a1,
8877
9045
  a2,
@@ -8894,7 +9062,7 @@ export function init(RuntimeName, PHPLoader) {
8894
9062
  a6,
8895
9063
  a7
8896
9064
  ) =>
8897
- (dynCall_viiiiiii = Module['dynCall_viiiiiii'] = wasmExports['pc'])(
9065
+ (dynCall_viiiiiii = Module['dynCall_viiiiiii'] = wasmExports['rc'])(
8898
9066
  a0,
8899
9067
  a1,
8900
9068
  a2,
@@ -8915,7 +9083,7 @@ export function init(RuntimeName, PHPLoader) {
8915
9083
  a6,
8916
9084
  a7
8917
9085
  ) =>
8918
- (dynCall_iiiiiiii = Module['dynCall_iiiiiiii'] = wasmExports['qc'])(
9086
+ (dynCall_iiiiiiii = Module['dynCall_iiiiiiii'] = wasmExports['sc'])(
8919
9087
  a0,
8920
9088
  a1,
8921
9089
  a2,
@@ -8938,7 +9106,7 @@ export function init(RuntimeName, PHPLoader) {
8938
9106
  a8,
8939
9107
  a9
8940
9108
  ) =>
8941
- (dynCall_iiiiiiiiii = Module['dynCall_iiiiiiiiii'] = wasmExports['rc'])(
9109
+ (dynCall_iiiiiiiiii = Module['dynCall_iiiiiiiiii'] = wasmExports['tc'])(
8942
9110
  a0,
8943
9111
  a1,
8944
9112
  a2,
@@ -8952,7 +9120,7 @@ export function init(RuntimeName, PHPLoader) {
8952
9120
  ));
8953
9121
 
8954
9122
  var dynCall_iiji = (Module['dynCall_iiji'] = (a0, a1, a2, a3) =>
8955
- (dynCall_iiji = Module['dynCall_iiji'] = wasmExports['sc'])(
9123
+ (dynCall_iiji = Module['dynCall_iiji'] = wasmExports['uc'])(
8956
9124
  a0,
8957
9125
  a1,
8958
9126
  a2,
@@ -8960,7 +9128,7 @@ export function init(RuntimeName, PHPLoader) {
8960
9128
  ));
8961
9129
 
8962
9130
  var dynCall_viijii = (Module['dynCall_viijii'] = (a0, a1, a2, a3, a4, a5) =>
8963
- (dynCall_viijii = Module['dynCall_viijii'] = wasmExports['tc'])(
9131
+ (dynCall_viijii = Module['dynCall_viijii'] = wasmExports['vc'])(
8964
9132
  a0,
8965
9133
  a1,
8966
9134
  a2,
@@ -8970,7 +9138,7 @@ export function init(RuntimeName, PHPLoader) {
8970
9138
  ));
8971
9139
 
8972
9140
  var dynCall_iijiji = (Module['dynCall_iijiji'] = (a0, a1, a2, a3, a4, a5) =>
8973
- (dynCall_iijiji = Module['dynCall_iijiji'] = wasmExports['uc'])(
9141
+ (dynCall_iijiji = Module['dynCall_iijiji'] = wasmExports['wc'])(
8974
9142
  a0,
8975
9143
  a1,
8976
9144
  a2,
@@ -8980,10 +9148,10 @@ export function init(RuntimeName, PHPLoader) {
8980
9148
  ));
8981
9149
 
8982
9150
  var dynCall_vji = (Module['dynCall_vji'] = (a0, a1, a2) =>
8983
- (dynCall_vji = Module['dynCall_vji'] = wasmExports['vc'])(a0, a1, a2));
9151
+ (dynCall_vji = Module['dynCall_vji'] = wasmExports['xc'])(a0, a1, a2));
8984
9152
 
8985
9153
  var dynCall_viidii = (Module['dynCall_viidii'] = (a0, a1, a2, a3, a4, a5) =>
8986
- (dynCall_viidii = Module['dynCall_viidii'] = wasmExports['wc'])(
9154
+ (dynCall_viidii = Module['dynCall_viidii'] = wasmExports['yc'])(
8987
9155
  a0,
8988
9156
  a1,
8989
9157
  a2,
@@ -8993,16 +9161,16 @@ export function init(RuntimeName, PHPLoader) {
8993
9161
  ));
8994
9162
 
8995
9163
  var _asyncify_start_unwind = (a0) =>
8996
- (_asyncify_start_unwind = wasmExports['xc'])(a0);
9164
+ (_asyncify_start_unwind = wasmExports['zc'])(a0);
8997
9165
 
8998
9166
  var _asyncify_stop_unwind = () =>
8999
- (_asyncify_stop_unwind = wasmExports['yc'])();
9167
+ (_asyncify_stop_unwind = wasmExports['Ac'])();
9000
9168
 
9001
9169
  var _asyncify_start_rewind = (a0) =>
9002
- (_asyncify_start_rewind = wasmExports['zc'])(a0);
9170
+ (_asyncify_start_rewind = wasmExports['Bc'])(a0);
9003
9171
 
9004
9172
  var _asyncify_stop_rewind = () =>
9005
- (_asyncify_stop_rewind = wasmExports['Ac'])();
9173
+ (_asyncify_stop_rewind = wasmExports['Cc'])();
9006
9174
 
9007
9175
  function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) {
9008
9176
  var sp = stackSave();
@@ -9426,6 +9594,32 @@ export function init(RuntimeName, PHPLoader) {
9426
9594
  PHPLoader['free'] =
9427
9595
  typeof _free === 'function' ? _free : PHPLoader['_wasm_free'];
9428
9596
 
9597
+ if (typeof NODEFS === 'object') {
9598
+ // We override NODEFS.createNode() to add an `isSharedFS` flag to all NODEFS
9599
+ // nodes. This way we can tell whether file-locking is needed and possible
9600
+ // for an FS node, even if wrapped with PROXYFS.
9601
+ const originalCreateNode = NODEFS.createNode;
9602
+ NODEFS.createNode = function createNodeWithSharedFlag() {
9603
+ const node = originalCreateNode.apply(NODEFS, arguments);
9604
+ node.isSharedFS = true;
9605
+ return node;
9606
+ };
9607
+
9608
+ var originalHashAddNode = FS.hashAddNode;
9609
+ FS.hashAddNode = function hashAddNodeIfNotSharedFS(node) {
9610
+ if (
9611
+ typeof locking === 'object' &&
9612
+ locking?.is_shared_fs_node(node)
9613
+ ) {
9614
+ // Avoid caching shared VFS nodes so multiple instances
9615
+ // can access the same underlying filesystem without
9616
+ // conflicting caches.
9617
+ return;
9618
+ }
9619
+ return originalHashAddNode.apply(FS, arguments);
9620
+ };
9621
+ }
9622
+
9429
9623
  return PHPLoader;
9430
9624
 
9431
9625
  // Close the opening bracket from esm-prefix.js: