@php-wasm/node 0.5.6 → 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_8_1.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/8_1_23/php_8_1.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 10991664;
3
+ export const dependenciesTotalSize = 10994169;
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"]["ab"];
352
+ wasmMemory = Module["asm"]["cb"];
353
353
  updateMemoryViews();
354
- wasmTable = Module["asm"]["eb"];
355
- addOnInit(Module["asm"]["bb"]);
354
+ wasmTable = Module["asm"]["gb"];
355
+ addOnInit(Module["asm"]["db"]);
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) {
@@ -3991,6 +3997,8 @@ function ___syscall_ftruncate64(fd, length_low, length_high) {
3991
3997
 
3992
3998
  var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
3993
3999
 
4000
+ Module["stringToUTF8"] = stringToUTF8;
4001
+
3994
4002
  function ___syscall_getcwd(buf, size) {
3995
4003
  try {
3996
4004
  if (size === 0) return -28;
@@ -5418,6 +5426,46 @@ var stringToUTF8OnStack = str => {
5418
5426
  var allocateUTF8OnStack = stringToUTF8OnStack;
5419
5427
 
5420
5428
  var PHPWASM = {
5429
+ init: function() {
5430
+ PHPWASM.EventEmitter = ENVIRONMENT_IS_NODE ? require("events").EventEmitter : class EventEmitter {
5431
+ constructor() {
5432
+ this.listeners = {};
5433
+ }
5434
+ emit(eventName, data) {
5435
+ if (this.listeners[eventName]) {
5436
+ this.listeners[eventName].forEach((callback => {
5437
+ callback(data);
5438
+ }));
5439
+ }
5440
+ }
5441
+ once(eventName, callback) {
5442
+ const self = this;
5443
+ function removedCallback() {
5444
+ callback(...arguments);
5445
+ self.removeListener(eventName, removedCallback);
5446
+ }
5447
+ this.on(eventName, removedCallback);
5448
+ }
5449
+ removeAllListeners(eventName) {
5450
+ if (eventName) {
5451
+ delete this.listeners[eventName];
5452
+ } else {
5453
+ this.listeners = {};
5454
+ }
5455
+ }
5456
+ removeListener(eventName, callback) {
5457
+ if (this.listeners[eventName]) {
5458
+ const idx = this.listeners[eventName].indexOf(callback);
5459
+ if (idx !== -1) {
5460
+ this.listeners[eventName].splice(idx, 1);
5461
+ }
5462
+ }
5463
+ }
5464
+ };
5465
+ PHPWASM.child_proc_by_fd = {};
5466
+ PHPWASM.child_proc_by_pid = {};
5467
+ PHPWASM.input_devices = {};
5468
+ },
5421
5469
  getAllWebSockets: function(sock) {
5422
5470
  const webSockets = new Set;
5423
5471
  if (sock.server) {
@@ -5447,27 +5495,27 @@ var PHPWASM = {
5447
5495
  return Array.from(peers);
5448
5496
  },
5449
5497
  awaitData: function(ws) {
5450
- return PHPWASM.awaitWsEvent(ws, "message");
5498
+ return PHPWASM.awaitEvent(ws, "message");
5451
5499
  },
5452
5500
  awaitConnection: function(ws) {
5453
5501
  if (ws.OPEN === ws.readyState) {
5454
5502
  return [ Promise.resolve(), PHPWASM.noop ];
5455
5503
  }
5456
- return PHPWASM.awaitWsEvent(ws, "open");
5504
+ return PHPWASM.awaitEvent(ws, "open");
5457
5505
  },
5458
5506
  awaitClose: function(ws) {
5459
5507
  if ([ ws.CLOSING, ws.CLOSED ].includes(ws.readyState)) {
5460
5508
  return [ Promise.resolve(), PHPWASM.noop ];
5461
5509
  }
5462
- return PHPWASM.awaitWsEvent(ws, "close");
5510
+ return PHPWASM.awaitEvent(ws, "close");
5463
5511
  },
5464
5512
  awaitError: function(ws) {
5465
5513
  if ([ ws.CLOSING, ws.CLOSED ].includes(ws.readyState)) {
5466
5514
  return [ Promise.resolve(), PHPWASM.noop ];
5467
5515
  }
5468
- return PHPWASM.awaitWsEvent(ws, "error");
5516
+ return PHPWASM.awaitEvent(ws, "error");
5469
5517
  },
5470
- awaitWsEvent: function(ws, event) {
5518
+ awaitEvent: function(ws, event) {
5471
5519
  let resolve;
5472
5520
  const listener = () => {
5473
5521
  resolve();
@@ -5483,13 +5531,15 @@ var PHPWASM = {
5483
5531
  return [ promise, cancel ];
5484
5532
  },
5485
5533
  noop: function() {},
5486
- spawnProcess: function(command) {
5534
+ spawnProcess: function(command, args) {
5487
5535
  if (Module["spawnProcess"]) {
5488
- const spawned = Module["spawnProcess"](command);
5489
- if (!spawned || !spawned.on) {
5490
- throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
5491
- }
5492
- return spawned;
5536
+ const spawnedPromise = Module["spawnProcess"](command, args);
5537
+ return Promise.resolve(spawnedPromise).then((function(spawned) {
5538
+ if (!spawned || !spawned.on) {
5539
+ throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
5540
+ }
5541
+ return spawned;
5542
+ }));
5493
5543
  }
5494
5544
  if (ENVIRONMENT_IS_NODE) {
5495
5545
  return require("child_process").spawn(command, [], {
@@ -5519,13 +5569,10 @@ var PHPWASM = {
5519
5569
  }
5520
5570
  };
5521
5571
 
5522
- function _js_create_input_device(procopenCallId) {
5523
- if (!PHPWASM.input_devices) {
5524
- PHPWASM.input_devices = {};
5525
- }
5572
+ function _js_create_input_device(deviceId) {
5526
5573
  let dataBuffer = [];
5527
5574
  let dataCallback;
5528
- const filename = "proc_id_" + procopenCallId;
5575
+ const filename = "proc_id_" + deviceId;
5529
5576
  const device = FS.createDevice("/dev", filename, (function() {}), (function(byte) {
5530
5577
  try {
5531
5578
  dataBuffer.push(byte);
@@ -5539,7 +5586,7 @@ function _js_create_input_device(procopenCallId) {
5539
5586
  }
5540
5587
  }));
5541
5588
  const devicePath = "/dev/" + filename;
5542
- PHPWASM.input_devices[procopenCallId] = {
5589
+ PHPWASM.input_devices[deviceId] = {
5543
5590
  devicePath: devicePath,
5544
5591
  onData: function(cb) {
5545
5592
  dataCallback = cb;
@@ -5564,7 +5611,7 @@ function _js_fd_read(fd, iov, iovcnt, pnum) {
5564
5611
  if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e;
5565
5612
  returnCode = e.errno;
5566
5613
  }
5567
- if (returnCode === 6 && stream?.fd in PHPWASM.proc_fds) {
5614
+ if (returnCode === 6 && stream?.fd in PHPWASM.child_proc_by_fd) {
5568
5615
  return Asyncify.handleSleep((function(wakeUp) {
5569
5616
  var retries = 0;
5570
5617
  var interval = 50;
@@ -5585,7 +5632,7 @@ function _js_fd_read(fd, iov, iovcnt, pnum) {
5585
5632
  }
5586
5633
  returnCode = e.errno;
5587
5634
  }
5588
- 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 || {}))) {
5635
+ if (returnCode !== 6 || ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream)) {
5589
5636
  wakeUp(returnCode);
5590
5637
  } else {
5591
5638
  setTimeout(poll, interval);
@@ -5623,10 +5670,7 @@ function _js_module_onMessage(data, bufPtr) {
5623
5670
  }
5624
5671
  }
5625
5672
 
5626
- function _js_open_process(command, stdinFd, stdoutChildFd, stdoutParentFd, stderrChildFd, stderrParentFd) {
5627
- if (!PHPWASM.proc_fds) {
5628
- PHPWASM.proc_fds = {};
5629
- }
5673
+ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength) {
5630
5674
  if (!command) {
5631
5675
  return 1;
5632
5676
  }
@@ -5634,104 +5678,122 @@ function _js_open_process(command, stdinFd, stdoutChildFd, stdoutParentFd, stder
5634
5678
  if (!cmdstr.length) {
5635
5679
  return 0;
5636
5680
  }
5637
- let cp;
5638
- try {
5639
- cp = PHPWASM.spawnProcess(cmdstr);
5640
- } catch (e) {
5641
- if (e.code === "SPAWN_UNSUPPORTED") {
5642
- return 1;
5681
+ let argsArray = [];
5682
+ if (argsLength) {
5683
+ for (var i = 0; i < argsLength; i++) {
5684
+ const charPointer = argsPtr + i * 4;
5685
+ argsArray.push(UTF8ToString(HEAPU32[charPointer >> 2]));
5643
5686
  }
5644
- throw e;
5645
5687
  }
5646
- let EventEmitter;
5647
- if (ENVIRONMENT_IS_NODE) {
5648
- EventEmitter = require("events").EventEmitter;
5649
- } else {
5650
- EventEmitter = function() {
5651
- this.listeners = {};
5652
- };
5653
- EventEmitter.prototype.emit = function(eventName, data) {
5654
- if (this.listeners[eventName]) {
5655
- this.listeners[eventName].forEach((function(callback) {
5656
- callback(data);
5657
- }));
5658
- }
5688
+ var std = {};
5689
+ for (var i = 0; i < descriptorsLength; i++) {
5690
+ const descriptorPtr = HEAPU32[descriptorsPtr + i * 4 >> 2];
5691
+ std[HEAPU32[descriptorPtr >> 2]] = {
5692
+ child: HEAPU32[descriptorPtr + 4 >> 2],
5693
+ parent: HEAPU32[descriptorPtr + 8 >> 2]
5659
5694
  };
5660
- EventEmitter.prototype.once = function(eventName, callback) {
5661
- const self = this;
5662
- function removedCallback() {
5663
- callback(...arguments);
5664
- self.removeListener(eventName, removedCallback);
5665
- }
5666
- this.on(eventName, removedCallback);
5667
- };
5668
- EventEmitter.prototype.on = function(eventName, callback) {
5669
- if (!this.listeners[eventName]) {
5670
- this.listeners[eventName] = [];
5671
- }
5672
- this.listeners[eventName].push(callback);
5673
- };
5674
- EventEmitter.prototype.removeListener = function(eventName, callback) {
5675
- const idx = this.listeners[eventName].indexOf(callback);
5676
- if (idx !== -1) {
5677
- this.listeners[eventName].splice(idx, 1);
5695
+ }
5696
+ return Asyncify.handleSleep((async wakeUp => {
5697
+ let cp;
5698
+ try {
5699
+ cp = await PHPWASM.spawnProcess(cmdstr, argsArray);
5700
+ } catch (e) {
5701
+ if (e.code === "SPAWN_UNSUPPORTED") {
5702
+ wakeUp(1);
5703
+ return;
5678
5704
  }
5705
+ console.error(e);
5706
+ wakeUp(1);
5707
+ throw e;
5708
+ }
5709
+ const ProcInfo = {
5710
+ pid: cp.pid,
5711
+ exited: false,
5712
+ stdinFd: std[0]?.child,
5713
+ stdinIsDevice: std[0]?.child in PHPWASM.input_devices,
5714
+ stdoutChildFd: std[1]?.child,
5715
+ stdoutParentFd: std[1]?.parent,
5716
+ stderrChildFd: std[2]?.child,
5717
+ stderrParentFd: std[2]?.parent,
5718
+ stdout: new PHPWASM.EventEmitter,
5719
+ stderr: new PHPWASM.EventEmitter
5679
5720
  };
5680
- }
5681
- PHPWASM.proc_fds[stdoutParentFd] = new EventEmitter;
5682
- PHPWASM.proc_fds[stdoutParentFd].stdinFd = stdinFd;
5683
- PHPWASM.proc_fds[stderrParentFd] = new EventEmitter;
5684
- PHPWASM.proc_fds[stderrParentFd].stdinFd = stdinFd;
5685
- const stdoutStream = SYSCALLS.getStreamFromFD(stdoutChildFd);
5686
- cp.on("exit", (function(data) {
5687
- PHPWASM.proc_fds[stdoutParentFd].exited = true;
5688
- PHPWASM.proc_fds[stdoutParentFd].emit("data");
5689
- PHPWASM.proc_fds[stderrParentFd].exited = true;
5690
- PHPWASM.proc_fds[stderrParentFd].emit("data");
5691
- }));
5692
- cp.stdout.on("data", (function(data) {
5693
- PHPWASM.proc_fds[stdoutParentFd].hasData = true;
5694
- PHPWASM.proc_fds[stdoutParentFd].emit("data");
5695
- stdoutStream.stream_ops.write(stdoutStream, data, 0, data.length, 0);
5696
- }));
5697
- const stderrStream = SYSCALLS.getStreamFromFD(stderrChildFd);
5698
- cp.stderr.on("data", (function(data) {
5699
- PHPWASM.proc_fds[stderrParentFd].hasData = true;
5700
- PHPWASM.proc_fds[stderrParentFd].emit("data");
5701
- stderrStream.stream_ops.write(stderrStream, data, 0, data.length, 0);
5702
- }));
5703
- if (PHPWASM.input_devices && stdinFd in PHPWASM.input_devices) {
5704
- PHPWASM.input_devices[stdinFd].onData((function(data) {
5705
- if (!data) return;
5706
- const dataStr = new TextDecoder("utf-8").decode(data);
5707
- cp.stdin.write(dataStr);
5721
+ if (ProcInfo.stdoutChildFd) PHPWASM.child_proc_by_fd[ProcInfo.stdoutChildFd] = ProcInfo;
5722
+ if (ProcInfo.stderrChildFd) PHPWASM.child_proc_by_fd[ProcInfo.stderrChildFd] = ProcInfo;
5723
+ if (ProcInfo.stdoutParentFd) PHPWASM.child_proc_by_fd[ProcInfo.stdoutParentFd] = ProcInfo;
5724
+ if (ProcInfo.stderrParentFd) PHPWASM.child_proc_by_fd[ProcInfo.stderrParentFd] = ProcInfo;
5725
+ PHPWASM.child_proc_by_pid[ProcInfo.pid] = ProcInfo;
5726
+ cp.on("exit", (function(code) {
5727
+ ProcInfo.exitCode = code;
5728
+ ProcInfo.exited = true;
5729
+ ProcInfo.stdout.emit("data");
5730
+ ProcInfo.stderr.emit("data");
5708
5731
  }));
5709
- return 0;
5710
- }
5711
- const stdinStream = SYSCALLS.getStreamFromFD(stdinFd);
5712
- if (!stdinStream.node) {
5713
- return 0;
5714
- }
5715
- const CHUNK_SIZE = 1024;
5716
- const buffer = Buffer.alloc(CHUNK_SIZE);
5717
- let offset = 0;
5718
- while (true) {
5719
- const bytesRead = stdinStream.stream_ops.read(stdinStream, buffer, 0, CHUNK_SIZE, offset);
5720
- if (bytesRead === null || bytesRead === 0) {
5721
- break;
5732
+ if (ProcInfo.stdoutChildFd) {
5733
+ const stdoutStream = SYSCALLS.getStreamFromFD(ProcInfo.stdoutChildFd);
5734
+ let stdoutAt = 0;
5735
+ cp.stdout.on("data", (function(data) {
5736
+ ProcInfo.stdout.emit("data", data);
5737
+ stdoutStream.stream_ops.write(stdoutStream, data, 0, data.length, stdoutAt);
5738
+ stdoutAt += data.length;
5739
+ }));
5740
+ }
5741
+ if (ProcInfo.stderrChildFd) {
5742
+ const stderrStream = SYSCALLS.getStreamFromFD(ProcInfo.stderrChildFd);
5743
+ let stderrAt = 0;
5744
+ cp.stderr.on("data", (function(data) {
5745
+ ProcInfo.stderr.emit("data", data);
5746
+ stderrStream.stream_ops.write(stderrStream, data, 0, data.length, stderrAt);
5747
+ stderrAt += data.length;
5748
+ }));
5722
5749
  }
5723
5750
  try {
5724
- cp.stdin.write(buffer.subarray(0, bytesRead));
5751
+ await new Promise(((resolve, reject) => {
5752
+ cp.on("spawn", resolve);
5753
+ cp.on("error", reject);
5754
+ }));
5725
5755
  } catch (e) {
5726
5756
  console.error(e);
5727
- return 1;
5757
+ wakeUp(1);
5758
+ return;
5728
5759
  }
5729
- if (bytesRead < CHUNK_SIZE) {
5730
- break;
5760
+ if (ProcInfo.stdinIsDevice) {
5761
+ PHPWASM.input_devices[ProcInfo.stdinFd].onData((function(data) {
5762
+ if (!data) return;
5763
+ const dataStr = new TextDecoder("utf-8").decode(data);
5764
+ cp.stdin.write(dataStr);
5765
+ }));
5766
+ wakeUp(ProcInfo.pid);
5767
+ return;
5731
5768
  }
5732
- offset += bytesRead;
5733
- }
5734
- return 0;
5769
+ if (ProcInfo.stdinFd) {
5770
+ const stdinStream = SYSCALLS.getStreamFromFD(ProcInfo.stdinFd);
5771
+ if (stdinStream.node) {
5772
+ const CHUNK_SIZE = 1024;
5773
+ const buffer = new Uint8Array(CHUNK_SIZE);
5774
+ let offset = 0;
5775
+ while (true) {
5776
+ const bytesRead = stdinStream.stream_ops.read(stdinStream, buffer, 0, CHUNK_SIZE, offset);
5777
+ if (bytesRead === null || bytesRead === 0) {
5778
+ break;
5779
+ }
5780
+ try {
5781
+ cp.stdin.write(buffer.subarray(0, bytesRead));
5782
+ } catch (e) {
5783
+ console.error(e);
5784
+ return 1;
5785
+ }
5786
+ if (bytesRead < CHUNK_SIZE) {
5787
+ break;
5788
+ }
5789
+ offset += bytesRead;
5790
+ }
5791
+ wakeUp(ProcInfo.pid);
5792
+ return;
5793
+ }
5794
+ }
5795
+ wakeUp(ProcInfo.pid);
5796
+ }));
5735
5797
  }
5736
5798
 
5737
5799
  function _js_popen_to_file(command, mode, exitCodePtr) {
@@ -5743,10 +5805,10 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5743
5805
  if (modestr === "w") {
5744
5806
  console.error('popen($cmd, "w") is not implemented yet');
5745
5807
  }
5746
- return Asyncify.handleSleep((wakeUp => {
5808
+ return Asyncify.handleSleep((async wakeUp => {
5747
5809
  let cp;
5748
5810
  try {
5749
- cp = PHPWASM.spawnProcess(cmdstr);
5811
+ cp = await PHPWASM.spawnProcess(cmdstr, []);
5750
5812
  } catch (e) {
5751
5813
  console.error(e);
5752
5814
  if (e.code === "SPAWN_UNSUPPORTED") {
@@ -5773,6 +5835,33 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5773
5835
  }));
5774
5836
  }
5775
5837
 
5838
+ function _js_process_status(pid) {
5839
+ if (!PHPWASM.child_proc_by_pid[pid]) {
5840
+ return -1;
5841
+ }
5842
+ if (PHPWASM.child_proc_by_pid[pid].exited) {
5843
+ return 1;
5844
+ }
5845
+ return 0;
5846
+ }
5847
+
5848
+ function _js_waitpid(pid, exitCodePtr) {
5849
+ if (!PHPWASM.child_proc_by_pid[pid]) {
5850
+ return -1;
5851
+ }
5852
+ return Asyncify.handleSleep((wakeUp => {
5853
+ const poll = function() {
5854
+ if (PHPWASM.child_proc_by_pid[pid]?.exited) {
5855
+ HEAPU8[exitCodePtr] = PHPWASM.child_proc_by_pid[pid].exitCode;
5856
+ wakeUp(0);
5857
+ } else {
5858
+ setTimeout(poll, 50);
5859
+ }
5860
+ };
5861
+ poll();
5862
+ }));
5863
+ }
5864
+
5776
5865
  function _makecontext() {
5777
5866
  err("missing function: makecontext");
5778
5867
  abort(-1);
@@ -6225,13 +6314,13 @@ function _wasm_poll_socket(socketd, events, timeout) {
6225
6314
  const POLLNVAL = 32;
6226
6315
  return Asyncify.handleSleep((wakeUp => {
6227
6316
  const polls = [];
6228
- if (PHPWASM.proc_fds && socketd in PHPWASM.proc_fds) {
6229
- const emitter = PHPWASM.proc_fds[socketd];
6230
- if (emitter.exited) {
6317
+ if (socketd in PHPWASM.child_proc_by_fd) {
6318
+ const procInfo = PHPWASM.child_proc_by_fd[socketd];
6319
+ if (procInfo.exited) {
6231
6320
  wakeUp(0);
6232
6321
  return;
6233
6322
  }
6234
- polls.push(PHPWASM.awaitWsEvent(emitter, "data"));
6323
+ polls.push(PHPWASM.awaitEvent(procInfo.stdout, "data"));
6235
6324
  } else {
6236
6325
  const sock = getSocketFromFD(socketd);
6237
6326
  if (!sock) {
@@ -6342,7 +6431,7 @@ function runAndAbortIfError(func) {
6342
6431
 
6343
6432
  var Asyncify = {
6344
6433
  instrumentWasmImports: function(imports) {
6345
- 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$/ ];
6434
+ 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$/ ];
6346
6435
  for (var x in imports) {
6347
6436
  (function(x) {
6348
6437
  var original = imports[x];
@@ -6763,82 +6852,84 @@ ERRNO_CODES = {
6763
6852
  "ESTRPIPE": 135
6764
6853
  };
6765
6854
 
6855
+ PHPWASM.init();
6856
+
6766
6857
  var wasmImports = {
6767
6858
  m: ___assert_fail,
6768
- $a: ___call_sighandler,
6769
- _a: ___syscall__newselect,
6770
- Za: ___syscall_accept4,
6771
- Ya: ___syscall_bind,
6772
- Xa: ___syscall_chdir,
6859
+ bb: ___call_sighandler,
6860
+ ab: ___syscall__newselect,
6861
+ $a: ___syscall_accept4,
6862
+ _a: ___syscall_bind,
6863
+ Za: ___syscall_chdir,
6773
6864
  S: ___syscall_chmod,
6774
- Wa: ___syscall_connect,
6775
- Va: ___syscall_dup,
6776
- Ua: ___syscall_dup3,
6777
- Ta: ___syscall_faccessat,
6865
+ Ya: ___syscall_connect,
6866
+ Xa: ___syscall_dup,
6867
+ Wa: ___syscall_dup3,
6868
+ Va: ___syscall_faccessat,
6778
6869
  ca: ___syscall_fallocate,
6779
- Sa: ___syscall_fchmod,
6780
- Ra: ___syscall_fchown32,
6870
+ Ua: ___syscall_fchmod,
6871
+ Ta: ___syscall_fchown32,
6781
6872
  R: ___syscall_fchownat,
6782
6873
  o: ___syscall_fcntl64,
6783
- Qa: ___syscall_fdatasync,
6784
- Pa: ___syscall_fstat64,
6874
+ Sa: ___syscall_fdatasync,
6875
+ Ra: ___syscall_fstat64,
6785
6876
  ba: ___syscall_ftruncate64,
6786
- Oa: ___syscall_getcwd,
6787
- Na: ___syscall_getdents64,
6788
- Ma: ___syscall_getpeername,
6789
- La: ___syscall_getsockname,
6790
- Ka: ___syscall_getsockopt,
6877
+ Qa: ___syscall_getcwd,
6878
+ Pa: ___syscall_getdents64,
6879
+ Oa: ___syscall_getpeername,
6880
+ Na: ___syscall_getsockname,
6881
+ Ma: ___syscall_getsockopt,
6791
6882
  Q: ___syscall_ioctl,
6792
- Ja: ___syscall_listen,
6793
- Ia: ___syscall_lstat64,
6794
- Ha: ___syscall_mkdirat,
6795
- Ga: ___syscall_newfstatat,
6883
+ La: ___syscall_listen,
6884
+ Ka: ___syscall_lstat64,
6885
+ Ja: ___syscall_mkdirat,
6886
+ Ia: ___syscall_newfstatat,
6796
6887
  y: ___syscall_openat,
6797
- Fa: ___syscall_pipe,
6798
- Ea: ___syscall_poll,
6799
- Da: ___syscall_readlinkat,
6800
- Ca: ___syscall_recvfrom,
6801
- Ba: ___syscall_renameat,
6888
+ Ha: ___syscall_pipe,
6889
+ Ga: ___syscall_poll,
6890
+ Fa: ___syscall_readlinkat,
6891
+ Ea: ___syscall_recvfrom,
6892
+ Da: ___syscall_renameat,
6802
6893
  P: ___syscall_rmdir,
6803
- Aa: ___syscall_sendto,
6894
+ Ca: ___syscall_sendto,
6804
6895
  O: ___syscall_socket,
6805
- za: ___syscall_stat64,
6806
- ya: ___syscall_statfs64,
6807
- xa: ___syscall_symlink,
6896
+ Ba: ___syscall_stat64,
6897
+ Aa: ___syscall_statfs64,
6898
+ za: ___syscall_symlink,
6808
6899
  E: ___syscall_unlinkat,
6809
- wa: ___syscall_utimensat,
6810
- ra: __emscripten_get_now_is_monotonic,
6811
- qa: __emscripten_throw_longjmp,
6900
+ ya: ___syscall_utimensat,
6901
+ ta: __emscripten_get_now_is_monotonic,
6902
+ sa: __emscripten_throw_longjmp,
6812
6903
  $: __gmtime_js,
6813
6904
  _: __localtime_js,
6814
6905
  Z: __mktime_js,
6815
6906
  Y: __mmap_js,
6816
6907
  X: __munmap_js,
6817
6908
  L: __setitimer_js,
6818
- pa: __tzset_js,
6909
+ ra: __tzset_js,
6819
6910
  f: _abort,
6820
6911
  C: _emscripten_date_now,
6821
- oa: _emscripten_get_heap_max,
6912
+ qa: _emscripten_get_heap_max,
6822
6913
  v: _emscripten_get_now,
6823
- na: _emscripten_memcpy_big,
6824
- ma: _emscripten_resize_heap,
6914
+ pa: _emscripten_memcpy_big,
6915
+ oa: _emscripten_resize_heap,
6825
6916
  K: _emscripten_sleep,
6826
- va: _environ_get,
6827
- ua: _environ_sizes_get,
6917
+ xa: _environ_get,
6918
+ wa: _environ_sizes_get,
6828
6919
  q: _exit,
6829
6920
  t: _fd_close,
6830
6921
  N: _fd_fdstat_get,
6831
6922
  M: _fd_read,
6832
6923
  aa: _fd_seek,
6833
- ta: _fd_sync,
6924
+ va: _fd_sync,
6834
6925
  D: _fd_write,
6835
- la: _getaddrinfo,
6836
- ka: _getcontext,
6926
+ na: _getaddrinfo,
6927
+ ma: _getcontext,
6837
6928
  J: _gethostbyname_r,
6838
- ja: _getloadavg,
6929
+ la: _getloadavg,
6839
6930
  x: _getnameinfo,
6840
- ia: _getprotobyname,
6841
- ha: _getprotobynumber,
6931
+ ka: _getprotobyname,
6932
+ ja: _getprotobynumber,
6842
6933
  j: invoke_i,
6843
6934
  c: invoke_ii,
6844
6935
  b: invoke_iii,
@@ -6856,15 +6947,17 @@ var wasmImports = {
6856
6947
  l: invoke_viiii,
6857
6948
  n: invoke_viiiii,
6858
6949
  k: invoke_viiiiii,
6859
- ga: invoke_viiiiiii,
6950
+ ia: invoke_viiiiiii,
6860
6951
  A: invoke_viiiiiiiii,
6861
6952
  H: _js_create_input_device,
6862
- fa: _js_fd_read,
6863
- ea: _js_module_onMessage,
6953
+ ha: _js_fd_read,
6954
+ ga: _js_module_onMessage,
6864
6955
  G: _js_open_process,
6865
- da: _js_popen_to_file,
6956
+ fa: _js_popen_to_file,
6957
+ ea: _js_process_status,
6958
+ da: _js_waitpid,
6866
6959
  W: _makecontext,
6867
- sa: _proc_exit,
6960
+ ua: _proc_exit,
6868
6961
  F: _strftime,
6869
6962
  V: _strptime,
6870
6963
  U: _swapcontext,
@@ -6877,175 +6970,179 @@ var wasmImports = {
6877
6970
  var asm = createWasm();
6878
6971
 
6879
6972
  var ___wasm_call_ctors = function() {
6880
- return (___wasm_call_ctors = Module["asm"]["bb"]).apply(null, arguments);
6973
+ return (___wasm_call_ctors = Module["asm"]["db"]).apply(null, arguments);
6881
6974
  };
6882
6975
 
6883
6976
  var _free = function() {
6884
- return (_free = Module["asm"]["cb"]).apply(null, arguments);
6977
+ return (_free = Module["asm"]["eb"]).apply(null, arguments);
6885
6978
  };
6886
6979
 
6887
6980
  var _memcpy = function() {
6888
- return (_memcpy = Module["asm"]["db"]).apply(null, arguments);
6981
+ return (_memcpy = Module["asm"]["fb"]).apply(null, arguments);
6889
6982
  };
6890
6983
 
6891
6984
  var _malloc = function() {
6892
- return (_malloc = Module["asm"]["fb"]).apply(null, arguments);
6985
+ return (_malloc = Module["asm"]["hb"]).apply(null, arguments);
6893
6986
  };
6894
6987
 
6895
6988
  var setTempRet0 = function() {
6896
- return (setTempRet0 = Module["asm"]["gb"]).apply(null, arguments);
6989
+ return (setTempRet0 = Module["asm"]["ib"]).apply(null, arguments);
6897
6990
  };
6898
6991
 
6899
6992
  var ___errno_location = function() {
6900
- return (___errno_location = Module["asm"]["hb"]).apply(null, arguments);
6993
+ return (___errno_location = Module["asm"]["jb"]).apply(null, arguments);
6901
6994
  };
6902
6995
 
6903
6996
  var _wasm_read = Module["_wasm_read"] = function() {
6904
- return (_wasm_read = Module["_wasm_read"] = Module["asm"]["ib"]).apply(null, arguments);
6997
+ return (_wasm_read = Module["_wasm_read"] = Module["asm"]["kb"]).apply(null, arguments);
6905
6998
  };
6906
6999
 
6907
7000
  var _fflush = Module["_fflush"] = function() {
6908
- return (_fflush = Module["_fflush"] = Module["asm"]["jb"]).apply(null, arguments);
7001
+ return (_fflush = Module["_fflush"] = Module["asm"]["lb"]).apply(null, arguments);
6909
7002
  };
6910
7003
 
6911
7004
  var _wasm_popen = Module["_wasm_popen"] = function() {
6912
- return (_wasm_popen = Module["_wasm_popen"] = Module["asm"]["kb"]).apply(null, arguments);
7005
+ return (_wasm_popen = Module["_wasm_popen"] = Module["asm"]["mb"]).apply(null, arguments);
6913
7006
  };
6914
7007
 
6915
7008
  var _wasm_php_exec = Module["_wasm_php_exec"] = function() {
6916
- return (_wasm_php_exec = Module["_wasm_php_exec"] = Module["asm"]["lb"]).apply(null, arguments);
7009
+ return (_wasm_php_exec = Module["_wasm_php_exec"] = Module["asm"]["nb"]).apply(null, arguments);
6917
7010
  };
6918
7011
 
6919
7012
  var _php_pollfd_for = Module["_php_pollfd_for"] = function() {
6920
- return (_php_pollfd_for = Module["_php_pollfd_for"] = Module["asm"]["mb"]).apply(null, arguments);
7013
+ return (_php_pollfd_for = Module["_php_pollfd_for"] = Module["asm"]["ob"]).apply(null, arguments);
6921
7014
  };
6922
7015
 
6923
7016
  var _htons = function() {
6924
- return (_htons = Module["asm"]["nb"]).apply(null, arguments);
7017
+ return (_htons = Module["asm"]["pb"]).apply(null, arguments);
6925
7018
  };
6926
7019
 
6927
7020
  var _ntohs = function() {
6928
- return (_ntohs = Module["asm"]["ob"]).apply(null, arguments);
7021
+ return (_ntohs = Module["asm"]["qb"]).apply(null, arguments);
6929
7022
  };
6930
7023
 
6931
7024
  var _htonl = function() {
6932
- return (_htonl = Module["asm"]["pb"]).apply(null, arguments);
7025
+ return (_htonl = Module["asm"]["rb"]).apply(null, arguments);
6933
7026
  };
6934
7027
 
6935
7028
  var _wasm_sleep = Module["_wasm_sleep"] = function() {
6936
- return (_wasm_sleep = Module["_wasm_sleep"] = Module["asm"]["qb"]).apply(null, arguments);
7029
+ return (_wasm_sleep = Module["_wasm_sleep"] = Module["asm"]["sb"]).apply(null, arguments);
6937
7030
  };
6938
7031
 
6939
7032
  var _wasm_select = Module["_wasm_select"] = function() {
6940
- return (_wasm_select = Module["_wasm_select"] = Module["asm"]["rb"]).apply(null, arguments);
7033
+ return (_wasm_select = Module["_wasm_select"] = Module["asm"]["tb"]).apply(null, arguments);
6941
7034
  };
6942
7035
 
6943
7036
  var _wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = function() {
6944
- return (_wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = Module["asm"]["sb"]).apply(null, arguments);
7037
+ return (_wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = Module["asm"]["ub"]).apply(null, arguments);
6945
7038
  };
6946
7039
 
6947
7040
  var _run_cli = Module["_run_cli"] = function() {
6948
- return (_run_cli = Module["_run_cli"] = Module["asm"]["tb"]).apply(null, arguments);
7041
+ return (_run_cli = Module["_run_cli"] = Module["asm"]["vb"]).apply(null, arguments);
7042
+ };
7043
+
7044
+ var _wasm_set_sapi_name = Module["_wasm_set_sapi_name"] = function() {
7045
+ return (_wasm_set_sapi_name = Module["_wasm_set_sapi_name"] = Module["asm"]["wb"]).apply(null, arguments);
6949
7046
  };
6950
7047
 
6951
7048
  var _wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = function() {
6952
- return (_wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = Module["asm"]["ub"]).apply(null, arguments);
7049
+ return (_wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = Module["asm"]["xb"]).apply(null, arguments);
6953
7050
  };
6954
7051
 
6955
7052
  var _wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = function() {
6956
- return (_wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = Module["asm"]["vb"]).apply(null, arguments);
7053
+ return (_wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = Module["asm"]["yb"]).apply(null, arguments);
6957
7054
  };
6958
7055
 
6959
7056
  var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
6960
- return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["wb"]).apply(null, arguments);
7057
+ return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["zb"]).apply(null, arguments);
6961
7058
  };
6962
7059
 
6963
7060
  var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
6964
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["xb"]).apply(null, arguments);
7061
+ return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["Ab"]).apply(null, arguments);
6965
7062
  };
6966
7063
 
6967
7064
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
6968
- return (_wasm_set_query_string = Module["_wasm_set_query_string"] = Module["asm"]["yb"]).apply(null, arguments);
7065
+ return (_wasm_set_query_string = Module["_wasm_set_query_string"] = Module["asm"]["Bb"]).apply(null, arguments);
6969
7066
  };
6970
7067
 
6971
7068
  var _wasm_set_path_translated = Module["_wasm_set_path_translated"] = function() {
6972
- return (_wasm_set_path_translated = Module["_wasm_set_path_translated"] = Module["asm"]["zb"]).apply(null, arguments);
7069
+ return (_wasm_set_path_translated = Module["_wasm_set_path_translated"] = Module["asm"]["Cb"]).apply(null, arguments);
6973
7070
  };
6974
7071
 
6975
7072
  var _wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = function() {
6976
- return (_wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = Module["asm"]["Ab"]).apply(null, arguments);
7073
+ return (_wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = Module["asm"]["Db"]).apply(null, arguments);
6977
7074
  };
6978
7075
 
6979
7076
  var _wasm_set_request_uri = Module["_wasm_set_request_uri"] = function() {
6980
- return (_wasm_set_request_uri = Module["_wasm_set_request_uri"] = Module["asm"]["Bb"]).apply(null, arguments);
7077
+ return (_wasm_set_request_uri = Module["_wasm_set_request_uri"] = Module["asm"]["Eb"]).apply(null, arguments);
6981
7078
  };
6982
7079
 
6983
7080
  var _wasm_set_request_method = Module["_wasm_set_request_method"] = function() {
6984
- return (_wasm_set_request_method = Module["_wasm_set_request_method"] = Module["asm"]["Cb"]).apply(null, arguments);
7081
+ return (_wasm_set_request_method = Module["_wasm_set_request_method"] = Module["asm"]["Fb"]).apply(null, arguments);
6985
7082
  };
6986
7083
 
6987
7084
  var _wasm_set_request_host = Module["_wasm_set_request_host"] = function() {
6988
- return (_wasm_set_request_host = Module["_wasm_set_request_host"] = Module["asm"]["Db"]).apply(null, arguments);
7085
+ return (_wasm_set_request_host = Module["_wasm_set_request_host"] = Module["asm"]["Gb"]).apply(null, arguments);
6989
7086
  };
6990
7087
 
6991
7088
  var _wasm_set_content_type = Module["_wasm_set_content_type"] = function() {
6992
- return (_wasm_set_content_type = Module["_wasm_set_content_type"] = Module["asm"]["Eb"]).apply(null, arguments);
7089
+ return (_wasm_set_content_type = Module["_wasm_set_content_type"] = Module["asm"]["Hb"]).apply(null, arguments);
6993
7090
  };
6994
7091
 
6995
7092
  var _wasm_set_request_body = Module["_wasm_set_request_body"] = function() {
6996
- return (_wasm_set_request_body = Module["_wasm_set_request_body"] = Module["asm"]["Fb"]).apply(null, arguments);
7093
+ return (_wasm_set_request_body = Module["_wasm_set_request_body"] = Module["asm"]["Ib"]).apply(null, arguments);
6997
7094
  };
6998
7095
 
6999
7096
  var _wasm_set_content_length = Module["_wasm_set_content_length"] = function() {
7000
- return (_wasm_set_content_length = Module["_wasm_set_content_length"] = Module["asm"]["Gb"]).apply(null, arguments);
7097
+ return (_wasm_set_content_length = Module["_wasm_set_content_length"] = Module["asm"]["Jb"]).apply(null, arguments);
7001
7098
  };
7002
7099
 
7003
7100
  var _wasm_set_cookies = Module["_wasm_set_cookies"] = function() {
7004
- return (_wasm_set_cookies = Module["_wasm_set_cookies"] = Module["asm"]["Hb"]).apply(null, arguments);
7101
+ return (_wasm_set_cookies = Module["_wasm_set_cookies"] = Module["asm"]["Kb"]).apply(null, arguments);
7005
7102
  };
7006
7103
 
7007
7104
  var _wasm_set_php_code = Module["_wasm_set_php_code"] = function() {
7008
- return (_wasm_set_php_code = Module["_wasm_set_php_code"] = Module["asm"]["Ib"]).apply(null, arguments);
7105
+ return (_wasm_set_php_code = Module["_wasm_set_php_code"] = Module["asm"]["Lb"]).apply(null, arguments);
7009
7106
  };
7010
7107
 
7011
7108
  var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
7012
- return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Jb"]).apply(null, arguments);
7109
+ return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Mb"]).apply(null, arguments);
7013
7110
  };
7014
7111
 
7015
7112
  var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
7016
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Kb"]).apply(null, arguments);
7113
+ return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Nb"]).apply(null, arguments);
7017
7114
  };
7018
7115
 
7019
7116
  var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
7020
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Lb"]).apply(null, arguments);
7117
+ return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Ob"]).apply(null, arguments);
7021
7118
  };
7022
7119
 
7023
7120
  var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
7024
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Mb"]).apply(null, arguments);
7121
+ return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Pb"]).apply(null, arguments);
7025
7122
  };
7026
7123
 
7027
7124
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
7028
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Nb"]).apply(null, arguments);
7125
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Qb"]).apply(null, arguments);
7029
7126
  };
7030
7127
 
7031
7128
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
7032
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Ob"]).apply(null, arguments);
7129
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Rb"]).apply(null, arguments);
7033
7130
  };
7034
7131
 
7035
7132
  var ___funcs_on_exit = function() {
7036
- return (___funcs_on_exit = Module["asm"]["Pb"]).apply(null, arguments);
7133
+ return (___funcs_on_exit = Module["asm"]["Sb"]).apply(null, arguments);
7037
7134
  };
7038
7135
 
7039
7136
  var _emscripten_builtin_memalign = function() {
7040
- return (_emscripten_builtin_memalign = Module["asm"]["Qb"]).apply(null, arguments);
7137
+ return (_emscripten_builtin_memalign = Module["asm"]["Tb"]).apply(null, arguments);
7041
7138
  };
7042
7139
 
7043
7140
  var __emscripten_timeout = function() {
7044
- return (__emscripten_timeout = Module["asm"]["Rb"]).apply(null, arguments);
7141
+ return (__emscripten_timeout = Module["asm"]["Ub"]).apply(null, arguments);
7045
7142
  };
7046
7143
 
7047
7144
  var _setThrew = function() {
7048
- return (_setThrew = Module["asm"]["Sb"]).apply(null, arguments);
7145
+ return (_setThrew = Module["asm"]["Vb"]).apply(null, arguments);
7049
7146
  };
7050
7147
 
7051
7148
  var _emscripten_stack_set_limits = function() {
@@ -7061,107 +7158,107 @@ var _emscripten_stack_get_end = function() {
7061
7158
  };
7062
7159
 
7063
7160
  var stackSave = function() {
7064
- return (stackSave = Module["asm"]["Tb"]).apply(null, arguments);
7161
+ return (stackSave = Module["asm"]["Wb"]).apply(null, arguments);
7065
7162
  };
7066
7163
 
7067
7164
  var stackRestore = function() {
7068
- return (stackRestore = Module["asm"]["Ub"]).apply(null, arguments);
7165
+ return (stackRestore = Module["asm"]["Xb"]).apply(null, arguments);
7069
7166
  };
7070
7167
 
7071
7168
  var stackAlloc = function() {
7072
- return (stackAlloc = Module["asm"]["Vb"]).apply(null, arguments);
7169
+ return (stackAlloc = Module["asm"]["Yb"]).apply(null, arguments);
7073
7170
  };
7074
7171
 
7075
7172
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
7076
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7173
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7077
7174
  };
7078
7175
 
7079
7176
  var dynCall_ii = Module["dynCall_ii"] = function() {
7080
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Xb"]).apply(null, arguments);
7177
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["_b"]).apply(null, arguments);
7081
7178
  };
7082
7179
 
7083
7180
  var dynCall_vi = Module["dynCall_vi"] = function() {
7084
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Yb"]).apply(null, arguments);
7181
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["$b"]).apply(null, arguments);
7085
7182
  };
7086
7183
 
7087
7184
  var dynCall_vii = Module["dynCall_vii"] = function() {
7088
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Zb"]).apply(null, arguments);
7185
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["ac"]).apply(null, arguments);
7089
7186
  };
7090
7187
 
7091
7188
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
7092
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7189
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7093
7190
  };
7094
7191
 
7095
7192
  var dynCall_iii = Module["dynCall_iii"] = function() {
7096
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["$b"]).apply(null, arguments);
7193
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["cc"]).apply(null, arguments);
7097
7194
  };
7098
7195
 
7099
7196
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
7100
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["ac"]).apply(null, arguments);
7197
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["dc"]).apply(null, arguments);
7101
7198
  };
7102
7199
 
7103
7200
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
7104
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7201
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7105
7202
  };
7106
7203
 
7107
7204
  var dynCall_viii = Module["dynCall_viii"] = function() {
7108
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["cc"]).apply(null, arguments);
7205
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["fc"]).apply(null, arguments);
7109
7206
  };
7110
7207
 
7111
7208
  var dynCall_v = Module["dynCall_v"] = function() {
7112
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["dc"]).apply(null, arguments);
7209
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["gc"]).apply(null, arguments);
7113
7210
  };
7114
7211
 
7115
7212
  var dynCall_i = Module["dynCall_i"] = function() {
7116
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["ec"]).apply(null, arguments);
7213
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["hc"]).apply(null, arguments);
7117
7214
  };
7118
7215
 
7119
7216
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
7120
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["fc"]).apply(null, arguments);
7217
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["ic"]).apply(null, arguments);
7121
7218
  };
7122
7219
 
7123
7220
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
7124
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["gc"]).apply(null, arguments);
7221
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["jc"]).apply(null, arguments);
7125
7222
  };
7126
7223
 
7127
7224
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
7128
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["hc"]).apply(null, arguments);
7225
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["kc"]).apply(null, arguments);
7129
7226
  };
7130
7227
 
7131
7228
  var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = function() {
7132
- return (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = Module["asm"]["ic"]).apply(null, arguments);
7229
+ return (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = Module["asm"]["lc"]).apply(null, arguments);
7133
7230
  };
7134
7231
 
7135
7232
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
7136
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["jc"]).apply(null, arguments);
7233
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["mc"]).apply(null, arguments);
7137
7234
  };
7138
7235
 
7139
7236
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
7140
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["kc"]).apply(null, arguments);
7237
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["nc"]).apply(null, arguments);
7141
7238
  };
7142
7239
 
7143
7240
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
7144
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["lc"]).apply(null, arguments);
7241
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["oc"]).apply(null, arguments);
7145
7242
  };
7146
7243
 
7147
7244
  var dynCall_viidii = Module["dynCall_viidii"] = function() {
7148
- return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["mc"]).apply(null, arguments);
7245
+ return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["pc"]).apply(null, arguments);
7149
7246
  };
7150
7247
 
7151
7248
  var _asyncify_start_unwind = function() {
7152
- return (_asyncify_start_unwind = Module["asm"]["nc"]).apply(null, arguments);
7249
+ return (_asyncify_start_unwind = Module["asm"]["qc"]).apply(null, arguments);
7153
7250
  };
7154
7251
 
7155
7252
  var _asyncify_stop_unwind = function() {
7156
- return (_asyncify_stop_unwind = Module["asm"]["oc"]).apply(null, arguments);
7253
+ return (_asyncify_stop_unwind = Module["asm"]["rc"]).apply(null, arguments);
7157
7254
  };
7158
7255
 
7159
7256
  var _asyncify_start_rewind = function() {
7160
- return (_asyncify_start_rewind = Module["asm"]["pc"]).apply(null, arguments);
7257
+ return (_asyncify_start_rewind = Module["asm"]["sc"]).apply(null, arguments);
7161
7258
  };
7162
7259
 
7163
7260
  var _asyncify_stop_rewind = function() {
7164
- return (_asyncify_stop_rewind = Module["asm"]["qc"]).apply(null, arguments);
7261
+ return (_asyncify_stop_rewind = Module["asm"]["tc"]).apply(null, arguments);
7165
7262
  };
7166
7263
 
7167
7264
  function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) {
@@ -7389,14 +7486,8 @@ Module["FS_unlink"] = FS.unlink;
7389
7486
 
7390
7487
  Module["ccall"] = ccall;
7391
7488
 
7392
- Module["UTF8ToString"] = UTF8ToString;
7393
-
7394
- Module["lengthBytesUTF8"] = lengthBytesUTF8;
7395
-
7396
7489
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7397
7490
 
7398
- Module["FS"] = FS;
7399
-
7400
7491
  var calledRun;
7401
7492
 
7402
7493
  dependenciesFulfilled = function runCaller() {
@@ -7480,6 +7571,9 @@ PHPLoader['removeRunDependency'] = function (...args) {
7480
7571
  }
7481
7572
  }
7482
7573
 
7574
+ PHPLoader['malloc'] = _malloc;
7575
+ PHPLoader['free'] = _free;
7576
+
7483
7577
  return PHPLoader;
7484
7578
 
7485
7579
  // Close the opening bracket from esm-prefix.js: