@php-wasm/node 0.5.6 → 0.6.1

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