@php-wasm/node 0.5.5 → 0.6.0

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/php_7_3.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/7_3_33/php_7_3.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 11897714;
3
+ export const dependenciesTotalSize = 11900257;
4
4
  export function init(RuntimeName, PHPLoader) {
5
5
  /**
6
6
  * Overrides Emscripten's default ExitStatus object which gets
@@ -349,10 +349,10 @@ function createWasm() {
349
349
  var exports = instance.exports;
350
350
  exports = Asyncify.instrumentWasmExports(exports);
351
351
  Module["asm"] = exports;
352
- wasmMemory = Module["asm"]["Wa"];
352
+ wasmMemory = Module["asm"]["Ya"];
353
353
  updateMemoryViews();
354
- wasmTable = Module["asm"]["$a"];
355
- addOnInit(Module["asm"]["Xa"]);
354
+ wasmTable = Module["asm"]["bb"];
355
+ addOnInit(Module["asm"]["Za"]);
356
356
  removeRunDependency("wasm-instantiate");
357
357
  return exports;
358
358
  }
@@ -427,6 +427,8 @@ var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
427
427
 
428
428
  var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
429
429
 
430
+ Module["UTF8ToString"] = UTF8ToString;
431
+
430
432
  var ___assert_fail = (condition, filename, line, func) => {
431
433
  abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [ filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function" ]);
432
434
  };
@@ -585,6 +587,8 @@ var lengthBytesUTF8 = str => {
585
587
  return len;
586
588
  };
587
589
 
590
+ Module["lengthBytesUTF8"] = lengthBytesUTF8;
591
+
588
592
  var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
589
593
  if (!(maxBytesToWrite > 0)) return 0;
590
594
  var startIdx = outIdx;
@@ -2876,6 +2880,8 @@ var FS = {
2876
2880
  }
2877
2881
  };
2878
2882
 
2883
+ Module["FS"] = FS;
2884
+
2879
2885
  var SYSCALLS = {
2880
2886
  DEFAULT_POLLMASK: 5,
2881
2887
  calculateAt: function(dirfd, path, allowEmpty) {
@@ -3967,6 +3973,8 @@ function ___syscall_ftruncate64(fd, length_low, length_high) {
3967
3973
 
3968
3974
  var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
3969
3975
 
3976
+ Module["stringToUTF8"] = stringToUTF8;
3977
+
3970
3978
  function ___syscall_getcwd(buf, size) {
3971
3979
  try {
3972
3980
  if (size === 0) return -28;
@@ -5403,6 +5411,46 @@ var stringToUTF8OnStack = str => {
5403
5411
  var allocateUTF8OnStack = stringToUTF8OnStack;
5404
5412
 
5405
5413
  var PHPWASM = {
5414
+ init: function() {
5415
+ PHPWASM.EventEmitter = ENVIRONMENT_IS_NODE ? require("events").EventEmitter : class EventEmitter {
5416
+ constructor() {
5417
+ this.listeners = {};
5418
+ }
5419
+ emit(eventName, data) {
5420
+ if (this.listeners[eventName]) {
5421
+ this.listeners[eventName].forEach((callback => {
5422
+ callback(data);
5423
+ }));
5424
+ }
5425
+ }
5426
+ once(eventName, callback) {
5427
+ const self = this;
5428
+ function removedCallback() {
5429
+ callback(...arguments);
5430
+ self.removeListener(eventName, removedCallback);
5431
+ }
5432
+ this.on(eventName, removedCallback);
5433
+ }
5434
+ removeAllListeners(eventName) {
5435
+ if (eventName) {
5436
+ delete this.listeners[eventName];
5437
+ } else {
5438
+ this.listeners = {};
5439
+ }
5440
+ }
5441
+ removeListener(eventName, callback) {
5442
+ if (this.listeners[eventName]) {
5443
+ const idx = this.listeners[eventName].indexOf(callback);
5444
+ if (idx !== -1) {
5445
+ this.listeners[eventName].splice(idx, 1);
5446
+ }
5447
+ }
5448
+ }
5449
+ };
5450
+ PHPWASM.child_proc_by_fd = {};
5451
+ PHPWASM.child_proc_by_pid = {};
5452
+ PHPWASM.input_devices = {};
5453
+ },
5406
5454
  getAllWebSockets: function(sock) {
5407
5455
  const webSockets = new Set;
5408
5456
  if (sock.server) {
@@ -5432,27 +5480,27 @@ var PHPWASM = {
5432
5480
  return Array.from(peers);
5433
5481
  },
5434
5482
  awaitData: function(ws) {
5435
- return PHPWASM.awaitWsEvent(ws, "message");
5483
+ return PHPWASM.awaitEvent(ws, "message");
5436
5484
  },
5437
5485
  awaitConnection: function(ws) {
5438
5486
  if (ws.OPEN === ws.readyState) {
5439
5487
  return [ Promise.resolve(), PHPWASM.noop ];
5440
5488
  }
5441
- return PHPWASM.awaitWsEvent(ws, "open");
5489
+ return PHPWASM.awaitEvent(ws, "open");
5442
5490
  },
5443
5491
  awaitClose: function(ws) {
5444
5492
  if ([ ws.CLOSING, ws.CLOSED ].includes(ws.readyState)) {
5445
5493
  return [ Promise.resolve(), PHPWASM.noop ];
5446
5494
  }
5447
- return PHPWASM.awaitWsEvent(ws, "close");
5495
+ return PHPWASM.awaitEvent(ws, "close");
5448
5496
  },
5449
5497
  awaitError: function(ws) {
5450
5498
  if ([ ws.CLOSING, ws.CLOSED ].includes(ws.readyState)) {
5451
5499
  return [ Promise.resolve(), PHPWASM.noop ];
5452
5500
  }
5453
- return PHPWASM.awaitWsEvent(ws, "error");
5501
+ return PHPWASM.awaitEvent(ws, "error");
5454
5502
  },
5455
- awaitWsEvent: function(ws, event) {
5503
+ awaitEvent: function(ws, event) {
5456
5504
  let resolve;
5457
5505
  const listener = () => {
5458
5506
  resolve();
@@ -5468,13 +5516,15 @@ var PHPWASM = {
5468
5516
  return [ promise, cancel ];
5469
5517
  },
5470
5518
  noop: function() {},
5471
- spawnProcess: function(command) {
5519
+ spawnProcess: function(command, args) {
5472
5520
  if (Module["spawnProcess"]) {
5473
- const spawned = Module["spawnProcess"](command);
5474
- if (!spawned || !spawned.on) {
5475
- throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
5476
- }
5477
- return spawned;
5521
+ const spawnedPromise = Module["spawnProcess"](command, args);
5522
+ return Promise.resolve(spawnedPromise).then((function(spawned) {
5523
+ if (!spawned || !spawned.on) {
5524
+ throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
5525
+ }
5526
+ return spawned;
5527
+ }));
5478
5528
  }
5479
5529
  if (ENVIRONMENT_IS_NODE) {
5480
5530
  return require("child_process").spawn(command, [], {
@@ -5504,13 +5554,10 @@ var PHPWASM = {
5504
5554
  }
5505
5555
  };
5506
5556
 
5507
- function _js_create_input_device(procopenCallId) {
5508
- if (!PHPWASM.input_devices) {
5509
- PHPWASM.input_devices = {};
5510
- }
5557
+ function _js_create_input_device(deviceId) {
5511
5558
  let dataBuffer = [];
5512
5559
  let dataCallback;
5513
- const filename = "proc_id_" + procopenCallId;
5560
+ const filename = "proc_id_" + deviceId;
5514
5561
  const device = FS.createDevice("/dev", filename, (function() {}), (function(byte) {
5515
5562
  try {
5516
5563
  dataBuffer.push(byte);
@@ -5524,7 +5571,7 @@ function _js_create_input_device(procopenCallId) {
5524
5571
  }
5525
5572
  }));
5526
5573
  const devicePath = "/dev/" + filename;
5527
- PHPWASM.input_devices[procopenCallId] = {
5574
+ PHPWASM.input_devices[deviceId] = {
5528
5575
  devicePath: devicePath,
5529
5576
  onData: function(cb) {
5530
5577
  dataCallback = cb;
@@ -5549,7 +5596,7 @@ function _js_fd_read(fd, iov, iovcnt, pnum) {
5549
5596
  if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e;
5550
5597
  returnCode = e.errno;
5551
5598
  }
5552
- if (returnCode === 6 && stream?.fd in PHPWASM.proc_fds) {
5599
+ if (returnCode === 6 && stream?.fd in PHPWASM.child_proc_by_fd) {
5553
5600
  return Asyncify.handleSleep((function(wakeUp) {
5554
5601
  var retries = 0;
5555
5602
  var interval = 50;
@@ -5570,7 +5617,7 @@ function _js_fd_read(fd, iov, iovcnt, pnum) {
5570
5617
  }
5571
5618
  returnCode = e.errno;
5572
5619
  }
5573
- if (returnCode !== 6 || ++retries > maxRetries || !(stream?.fd in PHPWASM.proc_fds) || PHPWASM.proc_fds[stream?.fd]?.exited || FS.isClosed(stream) || !(PHPWASM.proc_fds[fd]?.stdinFd in (PHPWASM.input_devices || {}))) {
5620
+ if (returnCode !== 6 || ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream)) {
5574
5621
  wakeUp(returnCode);
5575
5622
  } else {
5576
5623
  setTimeout(poll, interval);
@@ -5608,10 +5655,7 @@ function _js_module_onMessage(data, bufPtr) {
5608
5655
  }
5609
5656
  }
5610
5657
 
5611
- function _js_open_process(command, stdinFd, stdoutChildFd, stdoutParentFd, stderrChildFd, stderrParentFd) {
5612
- if (!PHPWASM.proc_fds) {
5613
- PHPWASM.proc_fds = {};
5614
- }
5658
+ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength) {
5615
5659
  if (!command) {
5616
5660
  return 1;
5617
5661
  }
@@ -5619,104 +5663,122 @@ function _js_open_process(command, stdinFd, stdoutChildFd, stdoutParentFd, stder
5619
5663
  if (!cmdstr.length) {
5620
5664
  return 0;
5621
5665
  }
5622
- let cp;
5623
- try {
5624
- cp = PHPWASM.spawnProcess(cmdstr);
5625
- } catch (e) {
5626
- if (e.code === "SPAWN_UNSUPPORTED") {
5627
- return 1;
5666
+ let argsArray = [];
5667
+ if (argsLength) {
5668
+ for (var i = 0; i < argsLength; i++) {
5669
+ const charPointer = argsPtr + i * 4;
5670
+ argsArray.push(UTF8ToString(HEAPU32[charPointer >> 2]));
5628
5671
  }
5629
- throw e;
5630
5672
  }
5631
- let EventEmitter;
5632
- if (ENVIRONMENT_IS_NODE) {
5633
- EventEmitter = require("events").EventEmitter;
5634
- } else {
5635
- EventEmitter = function() {
5636
- this.listeners = {};
5637
- };
5638
- EventEmitter.prototype.emit = function(eventName, data) {
5639
- if (this.listeners[eventName]) {
5640
- this.listeners[eventName].forEach((function(callback) {
5641
- callback(data);
5642
- }));
5643
- }
5673
+ var std = {};
5674
+ for (var i = 0; i < descriptorsLength; i++) {
5675
+ const descriptorPtr = HEAPU32[descriptorsPtr + i * 4 >> 2];
5676
+ std[HEAPU32[descriptorPtr >> 2]] = {
5677
+ child: HEAPU32[descriptorPtr + 4 >> 2],
5678
+ parent: HEAPU32[descriptorPtr + 8 >> 2]
5644
5679
  };
5645
- EventEmitter.prototype.once = function(eventName, callback) {
5646
- const self = this;
5647
- function removedCallback() {
5648
- callback(...arguments);
5649
- self.removeListener(eventName, removedCallback);
5650
- }
5651
- this.on(eventName, removedCallback);
5652
- };
5653
- EventEmitter.prototype.on = function(eventName, callback) {
5654
- if (!this.listeners[eventName]) {
5655
- this.listeners[eventName] = [];
5656
- }
5657
- this.listeners[eventName].push(callback);
5658
- };
5659
- EventEmitter.prototype.removeListener = function(eventName, callback) {
5660
- const idx = this.listeners[eventName].indexOf(callback);
5661
- if (idx !== -1) {
5662
- this.listeners[eventName].splice(idx, 1);
5680
+ }
5681
+ return Asyncify.handleSleep((async wakeUp => {
5682
+ let cp;
5683
+ try {
5684
+ cp = await PHPWASM.spawnProcess(cmdstr, argsArray);
5685
+ } catch (e) {
5686
+ if (e.code === "SPAWN_UNSUPPORTED") {
5687
+ wakeUp(1);
5688
+ return;
5663
5689
  }
5690
+ console.error(e);
5691
+ wakeUp(1);
5692
+ throw e;
5693
+ }
5694
+ const ProcInfo = {
5695
+ pid: cp.pid,
5696
+ exited: false,
5697
+ stdinFd: std[0]?.child,
5698
+ stdinIsDevice: std[0]?.child in PHPWASM.input_devices,
5699
+ stdoutChildFd: std[1]?.child,
5700
+ stdoutParentFd: std[1]?.parent,
5701
+ stderrChildFd: std[2]?.child,
5702
+ stderrParentFd: std[2]?.parent,
5703
+ stdout: new PHPWASM.EventEmitter,
5704
+ stderr: new PHPWASM.EventEmitter
5664
5705
  };
5665
- }
5666
- PHPWASM.proc_fds[stdoutParentFd] = new EventEmitter;
5667
- PHPWASM.proc_fds[stdoutParentFd].stdinFd = stdinFd;
5668
- PHPWASM.proc_fds[stderrParentFd] = new EventEmitter;
5669
- PHPWASM.proc_fds[stderrParentFd].stdinFd = stdinFd;
5670
- const stdoutStream = SYSCALLS.getStreamFromFD(stdoutChildFd);
5671
- cp.on("exit", (function(data) {
5672
- PHPWASM.proc_fds[stdoutParentFd].exited = true;
5673
- PHPWASM.proc_fds[stdoutParentFd].emit("data");
5674
- PHPWASM.proc_fds[stderrParentFd].exited = true;
5675
- PHPWASM.proc_fds[stderrParentFd].emit("data");
5676
- }));
5677
- cp.stdout.on("data", (function(data) {
5678
- PHPWASM.proc_fds[stdoutParentFd].hasData = true;
5679
- PHPWASM.proc_fds[stdoutParentFd].emit("data");
5680
- stdoutStream.stream_ops.write(stdoutStream, data, 0, data.length, 0);
5681
- }));
5682
- const stderrStream = SYSCALLS.getStreamFromFD(stderrChildFd);
5683
- cp.stderr.on("data", (function(data) {
5684
- PHPWASM.proc_fds[stderrParentFd].hasData = true;
5685
- PHPWASM.proc_fds[stderrParentFd].emit("data");
5686
- stderrStream.stream_ops.write(stderrStream, data, 0, data.length, 0);
5687
- }));
5688
- if (PHPWASM.input_devices && stdinFd in PHPWASM.input_devices) {
5689
- PHPWASM.input_devices[stdinFd].onData((function(data) {
5690
- if (!data) return;
5691
- const dataStr = new TextDecoder("utf-8").decode(data);
5692
- cp.stdin.write(dataStr);
5706
+ if (ProcInfo.stdoutChildFd) PHPWASM.child_proc_by_fd[ProcInfo.stdoutChildFd] = ProcInfo;
5707
+ if (ProcInfo.stderrChildFd) PHPWASM.child_proc_by_fd[ProcInfo.stderrChildFd] = ProcInfo;
5708
+ if (ProcInfo.stdoutParentFd) PHPWASM.child_proc_by_fd[ProcInfo.stdoutParentFd] = ProcInfo;
5709
+ if (ProcInfo.stderrParentFd) PHPWASM.child_proc_by_fd[ProcInfo.stderrParentFd] = ProcInfo;
5710
+ PHPWASM.child_proc_by_pid[ProcInfo.pid] = ProcInfo;
5711
+ cp.on("exit", (function(code) {
5712
+ ProcInfo.exitCode = code;
5713
+ ProcInfo.exited = true;
5714
+ ProcInfo.stdout.emit("data");
5715
+ ProcInfo.stderr.emit("data");
5693
5716
  }));
5694
- return 0;
5695
- }
5696
- const stdinStream = SYSCALLS.getStreamFromFD(stdinFd);
5697
- if (!stdinStream.node) {
5698
- return 0;
5699
- }
5700
- const CHUNK_SIZE = 1024;
5701
- const buffer = Buffer.alloc(CHUNK_SIZE);
5702
- let offset = 0;
5703
- while (true) {
5704
- const bytesRead = stdinStream.stream_ops.read(stdinStream, buffer, 0, CHUNK_SIZE, offset);
5705
- if (bytesRead === null || bytesRead === 0) {
5706
- break;
5717
+ if (ProcInfo.stdoutChildFd) {
5718
+ const stdoutStream = SYSCALLS.getStreamFromFD(ProcInfo.stdoutChildFd);
5719
+ let stdoutAt = 0;
5720
+ cp.stdout.on("data", (function(data) {
5721
+ ProcInfo.stdout.emit("data", data);
5722
+ stdoutStream.stream_ops.write(stdoutStream, data, 0, data.length, stdoutAt);
5723
+ stdoutAt += data.length;
5724
+ }));
5725
+ }
5726
+ if (ProcInfo.stderrChildFd) {
5727
+ const stderrStream = SYSCALLS.getStreamFromFD(ProcInfo.stderrChildFd);
5728
+ let stderrAt = 0;
5729
+ cp.stderr.on("data", (function(data) {
5730
+ ProcInfo.stderr.emit("data", data);
5731
+ stderrStream.stream_ops.write(stderrStream, data, 0, data.length, stderrAt);
5732
+ stderrAt += data.length;
5733
+ }));
5707
5734
  }
5708
5735
  try {
5709
- cp.stdin.write(buffer.subarray(0, bytesRead));
5736
+ await new Promise(((resolve, reject) => {
5737
+ cp.on("spawn", resolve);
5738
+ cp.on("error", reject);
5739
+ }));
5710
5740
  } catch (e) {
5711
5741
  console.error(e);
5712
- return 1;
5742
+ wakeUp(1);
5743
+ return;
5713
5744
  }
5714
- if (bytesRead < CHUNK_SIZE) {
5715
- break;
5745
+ if (ProcInfo.stdinIsDevice) {
5746
+ PHPWASM.input_devices[ProcInfo.stdinFd].onData((function(data) {
5747
+ if (!data) return;
5748
+ const dataStr = new TextDecoder("utf-8").decode(data);
5749
+ cp.stdin.write(dataStr);
5750
+ }));
5751
+ wakeUp(ProcInfo.pid);
5752
+ return;
5716
5753
  }
5717
- offset += bytesRead;
5718
- }
5719
- return 0;
5754
+ if (ProcInfo.stdinFd) {
5755
+ const stdinStream = SYSCALLS.getStreamFromFD(ProcInfo.stdinFd);
5756
+ if (stdinStream.node) {
5757
+ const CHUNK_SIZE = 1024;
5758
+ const buffer = new Uint8Array(CHUNK_SIZE);
5759
+ let offset = 0;
5760
+ while (true) {
5761
+ const bytesRead = stdinStream.stream_ops.read(stdinStream, buffer, 0, CHUNK_SIZE, offset);
5762
+ if (bytesRead === null || bytesRead === 0) {
5763
+ break;
5764
+ }
5765
+ try {
5766
+ cp.stdin.write(buffer.subarray(0, bytesRead));
5767
+ } catch (e) {
5768
+ console.error(e);
5769
+ return 1;
5770
+ }
5771
+ if (bytesRead < CHUNK_SIZE) {
5772
+ break;
5773
+ }
5774
+ offset += bytesRead;
5775
+ }
5776
+ wakeUp(ProcInfo.pid);
5777
+ return;
5778
+ }
5779
+ }
5780
+ wakeUp(ProcInfo.pid);
5781
+ }));
5720
5782
  }
5721
5783
 
5722
5784
  function _js_popen_to_file(command, mode, exitCodePtr) {
@@ -5728,10 +5790,10 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5728
5790
  if (modestr === "w") {
5729
5791
  console.error('popen($cmd, "w") is not implemented yet');
5730
5792
  }
5731
- return Asyncify.handleSleep((wakeUp => {
5793
+ return Asyncify.handleSleep((async wakeUp => {
5732
5794
  let cp;
5733
5795
  try {
5734
- cp = PHPWASM.spawnProcess(cmdstr);
5796
+ cp = await PHPWASM.spawnProcess(cmdstr, []);
5735
5797
  } catch (e) {
5736
5798
  console.error(e);
5737
5799
  if (e.code === "SPAWN_UNSUPPORTED") {
@@ -5758,6 +5820,33 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5758
5820
  }));
5759
5821
  }
5760
5822
 
5823
+ function _js_process_status(pid) {
5824
+ if (!PHPWASM.child_proc_by_pid[pid]) {
5825
+ return -1;
5826
+ }
5827
+ if (PHPWASM.child_proc_by_pid[pid].exited) {
5828
+ return 1;
5829
+ }
5830
+ return 0;
5831
+ }
5832
+
5833
+ function _js_waitpid(pid, exitCodePtr) {
5834
+ if (!PHPWASM.child_proc_by_pid[pid]) {
5835
+ return -1;
5836
+ }
5837
+ return Asyncify.handleSleep((wakeUp => {
5838
+ const poll = function() {
5839
+ if (PHPWASM.child_proc_by_pid[pid]?.exited) {
5840
+ HEAPU8[exitCodePtr] = PHPWASM.child_proc_by_pid[pid].exitCode;
5841
+ wakeUp(0);
5842
+ } else {
5843
+ setTimeout(poll, 50);
5844
+ }
5845
+ };
5846
+ poll();
5847
+ }));
5848
+ }
5849
+
5761
5850
  var arraySum = (array, index) => {
5762
5851
  var sum = 0;
5763
5852
  for (var i = 0; i <= index; sum += array[i++]) {}
@@ -6200,13 +6289,13 @@ function _wasm_poll_socket(socketd, events, timeout) {
6200
6289
  const POLLNVAL = 32;
6201
6290
  return Asyncify.handleSleep((wakeUp => {
6202
6291
  const polls = [];
6203
- if (PHPWASM.proc_fds && socketd in PHPWASM.proc_fds) {
6204
- const emitter = PHPWASM.proc_fds[socketd];
6205
- if (emitter.exited) {
6292
+ if (socketd in PHPWASM.child_proc_by_fd) {
6293
+ const procInfo = PHPWASM.child_proc_by_fd[socketd];
6294
+ if (procInfo.exited) {
6206
6295
  wakeUp(0);
6207
6296
  return;
6208
6297
  }
6209
- polls.push(PHPWASM.awaitWsEvent(emitter, "data"));
6298
+ polls.push(PHPWASM.awaitEvent(procInfo.stdout, "data"));
6210
6299
  } else {
6211
6300
  const sock = getSocketFromFD(socketd);
6212
6301
  if (!sock) {
@@ -6313,7 +6402,7 @@ function runAndAbortIfError(func) {
6313
6402
 
6314
6403
  var Asyncify = {
6315
6404
  instrumentWasmImports: function(imports) {
6316
- var importPatterns = [ /^_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_popen_to_file$/, /^js_fd_read$/, /^js_module_onMessage$/, /^wasm_poll_socket$/, /^wasm_shutdown$/, /^fd_sync$/, /^__wasi_fd_sync$/, /^__asyncjs__.*$/, /^emscripten_promise_await$/, /^emscripten_idb_load$/, /^emscripten_idb_store$/, /^emscripten_idb_delete$/, /^emscripten_idb_exists$/, /^emscripten_idb_load_blob$/, /^emscripten_idb_store_blob$/, /^emscripten_sleep$/, /^emscripten_wget_data$/, /^emscripten_scan_registers$/, /^emscripten_lazy_load_code$/, /^_load_secondary_module$/, /^emscripten_fiber_swap$/, /^SDL_Delay$/ ];
6405
+ var importPatterns = [ /^_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_popen_to_file$/, /^js_fd_read$/, /^js_module_onMessage$/, /^js_waitpid$/, /^wasm_poll_socket$/, /^wasm_shutdown$/, /^fd_sync$/, /^__wasi_fd_sync$/, /^__asyncjs__.*$/, /^emscripten_promise_await$/, /^emscripten_idb_load$/, /^emscripten_idb_store$/, /^emscripten_idb_delete$/, /^emscripten_idb_exists$/, /^emscripten_idb_load_blob$/, /^emscripten_idb_store_blob$/, /^emscripten_sleep$/, /^emscripten_wget_data$/, /^emscripten_scan_registers$/, /^emscripten_lazy_load_code$/, /^_load_secondary_module$/, /^emscripten_fiber_swap$/, /^SDL_Delay$/ ];
6317
6406
  for (var x in imports) {
6318
6407
  (function(x) {
6319
6408
  var original = imports[x];
@@ -6734,80 +6823,82 @@ ERRNO_CODES = {
6734
6823
  "ESTRPIPE": 135
6735
6824
  };
6736
6825
 
6826
+ PHPWASM.init();
6827
+
6737
6828
  var wasmImports = {
6738
6829
  k: ___assert_fail,
6739
- Va: ___call_sighandler,
6740
- Ua: ___syscall__newselect,
6741
- Ta: ___syscall_accept4,
6742
- Sa: ___syscall_bind,
6743
- Ra: ___syscall_chdir,
6830
+ Xa: ___call_sighandler,
6831
+ Wa: ___syscall__newselect,
6832
+ Va: ___syscall_accept4,
6833
+ Ua: ___syscall_bind,
6834
+ Ta: ___syscall_chdir,
6744
6835
  T: ___syscall_chmod,
6745
- Qa: ___syscall_connect,
6746
- Pa: ___syscall_dup,
6747
- Oa: ___syscall_dup3,
6748
- Na: ___syscall_faccessat,
6749
- Ma: ___syscall_fchmod,
6750
- La: ___syscall_fchown32,
6836
+ Sa: ___syscall_connect,
6837
+ Ra: ___syscall_dup,
6838
+ Qa: ___syscall_dup3,
6839
+ Pa: ___syscall_faccessat,
6840
+ Oa: ___syscall_fchmod,
6841
+ Na: ___syscall_fchown32,
6751
6842
  S: ___syscall_fchownat,
6752
6843
  n: ___syscall_fcntl64,
6753
- Ka: ___syscall_fstat64,
6844
+ Ma: ___syscall_fstat64,
6754
6845
  $: ___syscall_ftruncate64,
6755
- Ja: ___syscall_getcwd,
6756
- Ia: ___syscall_getdents64,
6757
- Ha: ___syscall_getpeername,
6758
- Ga: ___syscall_getsockname,
6759
- Fa: ___syscall_getsockopt,
6846
+ La: ___syscall_getcwd,
6847
+ Ka: ___syscall_getdents64,
6848
+ Ja: ___syscall_getpeername,
6849
+ Ia: ___syscall_getsockname,
6850
+ Ha: ___syscall_getsockopt,
6760
6851
  R: ___syscall_ioctl,
6761
- Ea: ___syscall_listen,
6762
- Da: ___syscall_lstat64,
6763
- Ca: ___syscall_mkdirat,
6764
- Ba: ___syscall_newfstatat,
6852
+ Ga: ___syscall_listen,
6853
+ Fa: ___syscall_lstat64,
6854
+ Ea: ___syscall_mkdirat,
6855
+ Da: ___syscall_newfstatat,
6765
6856
  x: ___syscall_openat,
6766
- Aa: ___syscall_pipe,
6767
- za: ___syscall_poll,
6768
- ya: ___syscall_readlinkat,
6769
- xa: ___syscall_recvfrom,
6770
- wa: ___syscall_renameat,
6857
+ Ca: ___syscall_pipe,
6858
+ Ba: ___syscall_poll,
6859
+ Aa: ___syscall_readlinkat,
6860
+ za: ___syscall_recvfrom,
6861
+ ya: ___syscall_renameat,
6771
6862
  Q: ___syscall_rmdir,
6772
- va: ___syscall_sendto,
6863
+ xa: ___syscall_sendto,
6773
6864
  P: ___syscall_socket,
6774
- ua: ___syscall_stat64,
6775
- ta: ___syscall_statfs64,
6776
- sa: ___syscall_symlink,
6865
+ wa: ___syscall_stat64,
6866
+ va: ___syscall_statfs64,
6867
+ ua: ___syscall_symlink,
6777
6868
  E: ___syscall_unlinkat,
6778
- ra: ___syscall_utimensat,
6779
- ma: __emscripten_get_now_is_monotonic,
6780
- la: __emscripten_throw_longjmp,
6869
+ ta: ___syscall_utimensat,
6870
+ oa: __emscripten_get_now_is_monotonic,
6871
+ na: __emscripten_throw_longjmp,
6781
6872
  Z: __gmtime_js,
6782
6873
  Y: __localtime_js,
6783
6874
  X: __mktime_js,
6784
6875
  W: __mmap_js,
6785
6876
  V: __munmap_js,
6786
6877
  M: __setitimer_js,
6787
- ka: __tzset_js,
6878
+ ma: __tzset_js,
6788
6879
  e: _abort,
6789
6880
  C: _emscripten_date_now,
6790
- ja: _emscripten_get_heap_max,
6881
+ la: _emscripten_get_heap_max,
6791
6882
  v: _emscripten_get_now,
6792
- ia: _emscripten_memcpy_big,
6793
- ha: _emscripten_resize_heap,
6883
+ ka: _emscripten_memcpy_big,
6884
+ ja: _emscripten_resize_heap,
6794
6885
  L: _emscripten_sleep,
6795
- qa: _environ_get,
6796
- pa: _environ_sizes_get,
6886
+ sa: _environ_get,
6887
+ ra: _environ_sizes_get,
6797
6888
  p: _exit,
6798
6889
  r: _fd_close,
6799
6890
  O: _fd_fdstat_get,
6800
6891
  N: _fd_read,
6801
6892
  _: _fd_seek,
6802
- oa: _fd_sync,
6893
+ qa: _fd_sync,
6803
6894
  D: _fd_write,
6804
- ga: _getaddrinfo,
6895
+ ia: _getaddrinfo,
6805
6896
  K: _gethostbyaddr,
6806
6897
  J: _gethostbyname_r,
6807
- fa: _getloadavg,
6898
+ ha: _getloadavg,
6808
6899
  I: _getnameinfo,
6809
- ea: _getprotobyname,
6810
- da: _getprotobynumber,
6900
+ ga: _getprotobyname,
6901
+ fa: _getprotobynumber,
6811
6902
  i: invoke_i,
6812
6903
  d: invoke_ii,
6813
6904
  b: invoke_iii,
@@ -6827,11 +6918,13 @@ var wasmImports = {
6827
6918
  j: invoke_viiiiii,
6828
6919
  z: invoke_viiiiiiiii,
6829
6920
  H: _js_create_input_device,
6830
- ca: _js_fd_read,
6831
- ba: _js_module_onMessage,
6921
+ ea: _js_fd_read,
6922
+ da: _js_module_onMessage,
6832
6923
  G: _js_open_process,
6833
- aa: _js_popen_to_file,
6834
- na: _proc_exit,
6924
+ ca: _js_popen_to_file,
6925
+ ba: _js_process_status,
6926
+ aa: _js_waitpid,
6927
+ pa: _proc_exit,
6835
6928
  F: _strftime,
6836
6929
  U: _strptime,
6837
6930
  s: _wasm_close,
@@ -6842,175 +6935,179 @@ var wasmImports = {
6842
6935
  var asm = createWasm();
6843
6936
 
6844
6937
  var ___wasm_call_ctors = function() {
6845
- return (___wasm_call_ctors = Module["asm"]["Xa"]).apply(null, arguments);
6938
+ return (___wasm_call_ctors = Module["asm"]["Za"]).apply(null, arguments);
6846
6939
  };
6847
6940
 
6848
6941
  var _memcpy = function() {
6849
- return (_memcpy = Module["asm"]["Ya"]).apply(null, arguments);
6942
+ return (_memcpy = Module["asm"]["_a"]).apply(null, arguments);
6850
6943
  };
6851
6944
 
6852
6945
  var _malloc = function() {
6853
- return (_malloc = Module["asm"]["Za"]).apply(null, arguments);
6946
+ return (_malloc = Module["asm"]["$a"]).apply(null, arguments);
6854
6947
  };
6855
6948
 
6856
6949
  var _free = function() {
6857
- return (_free = Module["asm"]["_a"]).apply(null, arguments);
6950
+ return (_free = Module["asm"]["ab"]).apply(null, arguments);
6858
6951
  };
6859
6952
 
6860
6953
  var setTempRet0 = function() {
6861
- return (setTempRet0 = Module["asm"]["ab"]).apply(null, arguments);
6954
+ return (setTempRet0 = Module["asm"]["cb"]).apply(null, arguments);
6862
6955
  };
6863
6956
 
6864
6957
  var ___errno_location = function() {
6865
- return (___errno_location = Module["asm"]["bb"]).apply(null, arguments);
6958
+ return (___errno_location = Module["asm"]["db"]).apply(null, arguments);
6866
6959
  };
6867
6960
 
6868
6961
  var _wasm_read = Module["_wasm_read"] = function() {
6869
- return (_wasm_read = Module["_wasm_read"] = Module["asm"]["cb"]).apply(null, arguments);
6962
+ return (_wasm_read = Module["_wasm_read"] = Module["asm"]["eb"]).apply(null, arguments);
6870
6963
  };
6871
6964
 
6872
6965
  var _fflush = Module["_fflush"] = function() {
6873
- return (_fflush = Module["_fflush"] = Module["asm"]["db"]).apply(null, arguments);
6966
+ return (_fflush = Module["_fflush"] = Module["asm"]["fb"]).apply(null, arguments);
6874
6967
  };
6875
6968
 
6876
6969
  var _wasm_popen = Module["_wasm_popen"] = function() {
6877
- return (_wasm_popen = Module["_wasm_popen"] = Module["asm"]["eb"]).apply(null, arguments);
6970
+ return (_wasm_popen = Module["_wasm_popen"] = Module["asm"]["gb"]).apply(null, arguments);
6878
6971
  };
6879
6972
 
6880
6973
  var _wasm_php_exec = Module["_wasm_php_exec"] = function() {
6881
- return (_wasm_php_exec = Module["_wasm_php_exec"] = Module["asm"]["fb"]).apply(null, arguments);
6974
+ return (_wasm_php_exec = Module["_wasm_php_exec"] = Module["asm"]["hb"]).apply(null, arguments);
6882
6975
  };
6883
6976
 
6884
6977
  var _php_pollfd_for = Module["_php_pollfd_for"] = function() {
6885
- return (_php_pollfd_for = Module["_php_pollfd_for"] = Module["asm"]["gb"]).apply(null, arguments);
6978
+ return (_php_pollfd_for = Module["_php_pollfd_for"] = Module["asm"]["ib"]).apply(null, arguments);
6886
6979
  };
6887
6980
 
6888
6981
  var _htons = function() {
6889
- return (_htons = Module["asm"]["hb"]).apply(null, arguments);
6982
+ return (_htons = Module["asm"]["jb"]).apply(null, arguments);
6890
6983
  };
6891
6984
 
6892
6985
  var _ntohs = function() {
6893
- return (_ntohs = Module["asm"]["ib"]).apply(null, arguments);
6986
+ return (_ntohs = Module["asm"]["kb"]).apply(null, arguments);
6894
6987
  };
6895
6988
 
6896
6989
  var _htonl = function() {
6897
- return (_htonl = Module["asm"]["jb"]).apply(null, arguments);
6990
+ return (_htonl = Module["asm"]["lb"]).apply(null, arguments);
6898
6991
  };
6899
6992
 
6900
6993
  var _wasm_sleep = Module["_wasm_sleep"] = function() {
6901
- return (_wasm_sleep = Module["_wasm_sleep"] = Module["asm"]["kb"]).apply(null, arguments);
6994
+ return (_wasm_sleep = Module["_wasm_sleep"] = Module["asm"]["mb"]).apply(null, arguments);
6902
6995
  };
6903
6996
 
6904
6997
  var _wasm_select = Module["_wasm_select"] = function() {
6905
- return (_wasm_select = Module["_wasm_select"] = Module["asm"]["lb"]).apply(null, arguments);
6998
+ return (_wasm_select = Module["_wasm_select"] = Module["asm"]["nb"]).apply(null, arguments);
6906
6999
  };
6907
7000
 
6908
7001
  var _wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = function() {
6909
- return (_wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = Module["asm"]["mb"]).apply(null, arguments);
7002
+ return (_wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = Module["asm"]["ob"]).apply(null, arguments);
6910
7003
  };
6911
7004
 
6912
7005
  var _run_cli = Module["_run_cli"] = function() {
6913
- return (_run_cli = Module["_run_cli"] = Module["asm"]["nb"]).apply(null, arguments);
7006
+ return (_run_cli = Module["_run_cli"] = Module["asm"]["pb"]).apply(null, arguments);
7007
+ };
7008
+
7009
+ var _wasm_set_sapi_name = Module["_wasm_set_sapi_name"] = function() {
7010
+ return (_wasm_set_sapi_name = Module["_wasm_set_sapi_name"] = Module["asm"]["qb"]).apply(null, arguments);
6914
7011
  };
6915
7012
 
6916
7013
  var _wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = function() {
6917
- return (_wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = Module["asm"]["ob"]).apply(null, arguments);
7014
+ return (_wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = Module["asm"]["rb"]).apply(null, arguments);
6918
7015
  };
6919
7016
 
6920
7017
  var _wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = function() {
6921
- return (_wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = Module["asm"]["pb"]).apply(null, arguments);
7018
+ return (_wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = Module["asm"]["sb"]).apply(null, arguments);
6922
7019
  };
6923
7020
 
6924
7021
  var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
6925
- return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["qb"]).apply(null, arguments);
7022
+ return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["tb"]).apply(null, arguments);
6926
7023
  };
6927
7024
 
6928
7025
  var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
6929
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["rb"]).apply(null, arguments);
7026
+ return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["ub"]).apply(null, arguments);
6930
7027
  };
6931
7028
 
6932
7029
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
6933
- return (_wasm_set_query_string = Module["_wasm_set_query_string"] = Module["asm"]["sb"]).apply(null, arguments);
7030
+ return (_wasm_set_query_string = Module["_wasm_set_query_string"] = Module["asm"]["vb"]).apply(null, arguments);
6934
7031
  };
6935
7032
 
6936
7033
  var _wasm_set_path_translated = Module["_wasm_set_path_translated"] = function() {
6937
- return (_wasm_set_path_translated = Module["_wasm_set_path_translated"] = Module["asm"]["tb"]).apply(null, arguments);
7034
+ return (_wasm_set_path_translated = Module["_wasm_set_path_translated"] = Module["asm"]["wb"]).apply(null, arguments);
6938
7035
  };
6939
7036
 
6940
7037
  var _wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = function() {
6941
- return (_wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = Module["asm"]["ub"]).apply(null, arguments);
7038
+ return (_wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = Module["asm"]["xb"]).apply(null, arguments);
6942
7039
  };
6943
7040
 
6944
7041
  var _wasm_set_request_uri = Module["_wasm_set_request_uri"] = function() {
6945
- return (_wasm_set_request_uri = Module["_wasm_set_request_uri"] = Module["asm"]["vb"]).apply(null, arguments);
7042
+ return (_wasm_set_request_uri = Module["_wasm_set_request_uri"] = Module["asm"]["yb"]).apply(null, arguments);
6946
7043
  };
6947
7044
 
6948
7045
  var _wasm_set_request_method = Module["_wasm_set_request_method"] = function() {
6949
- return (_wasm_set_request_method = Module["_wasm_set_request_method"] = Module["asm"]["wb"]).apply(null, arguments);
7046
+ return (_wasm_set_request_method = Module["_wasm_set_request_method"] = Module["asm"]["zb"]).apply(null, arguments);
6950
7047
  };
6951
7048
 
6952
7049
  var _wasm_set_request_host = Module["_wasm_set_request_host"] = function() {
6953
- return (_wasm_set_request_host = Module["_wasm_set_request_host"] = Module["asm"]["xb"]).apply(null, arguments);
7050
+ return (_wasm_set_request_host = Module["_wasm_set_request_host"] = Module["asm"]["Ab"]).apply(null, arguments);
6954
7051
  };
6955
7052
 
6956
7053
  var _wasm_set_content_type = Module["_wasm_set_content_type"] = function() {
6957
- return (_wasm_set_content_type = Module["_wasm_set_content_type"] = Module["asm"]["yb"]).apply(null, arguments);
7054
+ return (_wasm_set_content_type = Module["_wasm_set_content_type"] = Module["asm"]["Bb"]).apply(null, arguments);
6958
7055
  };
6959
7056
 
6960
7057
  var _wasm_set_request_body = Module["_wasm_set_request_body"] = function() {
6961
- return (_wasm_set_request_body = Module["_wasm_set_request_body"] = Module["asm"]["zb"]).apply(null, arguments);
7058
+ return (_wasm_set_request_body = Module["_wasm_set_request_body"] = Module["asm"]["Cb"]).apply(null, arguments);
6962
7059
  };
6963
7060
 
6964
7061
  var _wasm_set_content_length = Module["_wasm_set_content_length"] = function() {
6965
- return (_wasm_set_content_length = Module["_wasm_set_content_length"] = Module["asm"]["Ab"]).apply(null, arguments);
7062
+ return (_wasm_set_content_length = Module["_wasm_set_content_length"] = Module["asm"]["Db"]).apply(null, arguments);
6966
7063
  };
6967
7064
 
6968
7065
  var _wasm_set_cookies = Module["_wasm_set_cookies"] = function() {
6969
- return (_wasm_set_cookies = Module["_wasm_set_cookies"] = Module["asm"]["Bb"]).apply(null, arguments);
7066
+ return (_wasm_set_cookies = Module["_wasm_set_cookies"] = Module["asm"]["Eb"]).apply(null, arguments);
6970
7067
  };
6971
7068
 
6972
7069
  var _wasm_set_php_code = Module["_wasm_set_php_code"] = function() {
6973
- return (_wasm_set_php_code = Module["_wasm_set_php_code"] = Module["asm"]["Cb"]).apply(null, arguments);
7070
+ return (_wasm_set_php_code = Module["_wasm_set_php_code"] = Module["asm"]["Fb"]).apply(null, arguments);
6974
7071
  };
6975
7072
 
6976
7073
  var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
6977
- return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Db"]).apply(null, arguments);
7074
+ return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Gb"]).apply(null, arguments);
6978
7075
  };
6979
7076
 
6980
7077
  var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
6981
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Eb"]).apply(null, arguments);
7078
+ return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Hb"]).apply(null, arguments);
6982
7079
  };
6983
7080
 
6984
7081
  var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
6985
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Fb"]).apply(null, arguments);
7082
+ return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Ib"]).apply(null, arguments);
6986
7083
  };
6987
7084
 
6988
7085
  var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
6989
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Gb"]).apply(null, arguments);
7086
+ return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Jb"]).apply(null, arguments);
6990
7087
  };
6991
7088
 
6992
7089
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
6993
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Hb"]).apply(null, arguments);
7090
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Kb"]).apply(null, arguments);
6994
7091
  };
6995
7092
 
6996
7093
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
6997
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Ib"]).apply(null, arguments);
7094
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Lb"]).apply(null, arguments);
6998
7095
  };
6999
7096
 
7000
7097
  var ___funcs_on_exit = function() {
7001
- return (___funcs_on_exit = Module["asm"]["Jb"]).apply(null, arguments);
7098
+ return (___funcs_on_exit = Module["asm"]["Mb"]).apply(null, arguments);
7002
7099
  };
7003
7100
 
7004
7101
  var _emscripten_builtin_memalign = function() {
7005
- return (_emscripten_builtin_memalign = Module["asm"]["Kb"]).apply(null, arguments);
7102
+ return (_emscripten_builtin_memalign = Module["asm"]["Nb"]).apply(null, arguments);
7006
7103
  };
7007
7104
 
7008
7105
  var __emscripten_timeout = function() {
7009
- return (__emscripten_timeout = Module["asm"]["Lb"]).apply(null, arguments);
7106
+ return (__emscripten_timeout = Module["asm"]["Ob"]).apply(null, arguments);
7010
7107
  };
7011
7108
 
7012
7109
  var _setThrew = function() {
7013
- return (_setThrew = Module["asm"]["Mb"]).apply(null, arguments);
7110
+ return (_setThrew = Module["asm"]["Pb"]).apply(null, arguments);
7014
7111
  };
7015
7112
 
7016
7113
  var _emscripten_stack_set_limits = function() {
@@ -7026,103 +7123,103 @@ var _emscripten_stack_get_end = function() {
7026
7123
  };
7027
7124
 
7028
7125
  var stackSave = function() {
7029
- return (stackSave = Module["asm"]["Nb"]).apply(null, arguments);
7126
+ return (stackSave = Module["asm"]["Qb"]).apply(null, arguments);
7030
7127
  };
7031
7128
 
7032
7129
  var stackRestore = function() {
7033
- return (stackRestore = Module["asm"]["Ob"]).apply(null, arguments);
7130
+ return (stackRestore = Module["asm"]["Rb"]).apply(null, arguments);
7034
7131
  };
7035
7132
 
7036
7133
  var stackAlloc = function() {
7037
- return (stackAlloc = Module["asm"]["Pb"]).apply(null, arguments);
7134
+ return (stackAlloc = Module["asm"]["Sb"]).apply(null, arguments);
7038
7135
  };
7039
7136
 
7040
7137
  var dynCall_vi = Module["dynCall_vi"] = function() {
7041
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Qb"]).apply(null, arguments);
7138
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Tb"]).apply(null, arguments);
7042
7139
  };
7043
7140
 
7044
7141
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
7045
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Rb"]).apply(null, arguments);
7142
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Ub"]).apply(null, arguments);
7046
7143
  };
7047
7144
 
7048
7145
  var dynCall_ii = Module["dynCall_ii"] = function() {
7049
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Sb"]).apply(null, arguments);
7146
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Vb"]).apply(null, arguments);
7050
7147
  };
7051
7148
 
7052
7149
  var dynCall_vii = Module["dynCall_vii"] = function() {
7053
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Tb"]).apply(null, arguments);
7150
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Wb"]).apply(null, arguments);
7054
7151
  };
7055
7152
 
7056
7153
  var dynCall_iii = Module["dynCall_iii"] = function() {
7057
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Ub"]).apply(null, arguments);
7154
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Xb"]).apply(null, arguments);
7058
7155
  };
7059
7156
 
7060
7157
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
7061
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Vb"]).apply(null, arguments);
7158
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Yb"]).apply(null, arguments);
7062
7159
  };
7063
7160
 
7064
7161
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
7065
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7162
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7066
7163
  };
7067
7164
 
7068
7165
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
7069
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["Xb"]).apply(null, arguments);
7166
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["_b"]).apply(null, arguments);
7070
7167
  };
7071
7168
 
7072
7169
  var dynCall_viii = Module["dynCall_viii"] = function() {
7073
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["Yb"]).apply(null, arguments);
7170
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["$b"]).apply(null, arguments);
7074
7171
  };
7075
7172
 
7076
7173
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
7077
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7174
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["ac"]).apply(null, arguments);
7078
7175
  };
7079
7176
 
7080
7177
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
7081
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7178
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7082
7179
  };
7083
7180
 
7084
7181
  var dynCall_i = Module["dynCall_i"] = function() {
7085
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["$b"]).apply(null, arguments);
7182
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["cc"]).apply(null, arguments);
7086
7183
  };
7087
7184
 
7088
7185
  var dynCall_v = Module["dynCall_v"] = function() {
7089
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["ac"]).apply(null, arguments);
7186
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["dc"]).apply(null, arguments);
7090
7187
  };
7091
7188
 
7092
7189
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
7093
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7190
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7094
7191
  };
7095
7192
 
7096
7193
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
7097
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
7194
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["fc"]).apply(null, arguments);
7098
7195
  };
7099
7196
 
7100
7197
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
7101
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["dc"]).apply(null, arguments);
7198
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["gc"]).apply(null, arguments);
7102
7199
  };
7103
7200
 
7104
7201
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
7105
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7202
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["hc"]).apply(null, arguments);
7106
7203
  };
7107
7204
 
7108
7205
  var dynCall_viidii = Module["dynCall_viidii"] = function() {
7109
- return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["fc"]).apply(null, arguments);
7206
+ return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["ic"]).apply(null, arguments);
7110
7207
  };
7111
7208
 
7112
7209
  var _asyncify_start_unwind = function() {
7113
- return (_asyncify_start_unwind = Module["asm"]["gc"]).apply(null, arguments);
7210
+ return (_asyncify_start_unwind = Module["asm"]["jc"]).apply(null, arguments);
7114
7211
  };
7115
7212
 
7116
7213
  var _asyncify_stop_unwind = function() {
7117
- return (_asyncify_stop_unwind = Module["asm"]["hc"]).apply(null, arguments);
7214
+ return (_asyncify_stop_unwind = Module["asm"]["kc"]).apply(null, arguments);
7118
7215
  };
7119
7216
 
7120
7217
  var _asyncify_start_rewind = function() {
7121
- return (_asyncify_start_rewind = Module["asm"]["ic"]).apply(null, arguments);
7218
+ return (_asyncify_start_rewind = Module["asm"]["lc"]).apply(null, arguments);
7122
7219
  };
7123
7220
 
7124
7221
  var _asyncify_stop_rewind = function() {
7125
- return (_asyncify_stop_rewind = Module["asm"]["jc"]).apply(null, arguments);
7222
+ return (_asyncify_stop_rewind = Module["asm"]["mc"]).apply(null, arguments);
7126
7223
  };
7127
7224
 
7128
7225
  function invoke_vii(index, a1, a2) {
@@ -7339,14 +7436,8 @@ Module["FS_unlink"] = FS.unlink;
7339
7436
 
7340
7437
  Module["ccall"] = ccall;
7341
7438
 
7342
- Module["UTF8ToString"] = UTF8ToString;
7343
-
7344
- Module["lengthBytesUTF8"] = lengthBytesUTF8;
7345
-
7346
7439
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7347
7440
 
7348
- Module["FS"] = FS;
7349
-
7350
7441
  var calledRun;
7351
7442
 
7352
7443
  dependenciesFulfilled = function runCaller() {
@@ -7430,6 +7521,9 @@ PHPLoader['removeRunDependency'] = function (...args) {
7430
7521
  }
7431
7522
  }
7432
7523
 
7524
+ PHPLoader['malloc'] = _malloc;
7525
+ PHPLoader['free'] = _free;
7526
+
7433
7527
  return PHPLoader;
7434
7528
 
7435
7529
  // Close the opening bracket from esm-prefix.js: