@php-wasm/node 0.5.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/php_7_2.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/7_2_34/php_7_2.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 11973830;
3
+ export const dependenciesTotalSize = 11976463;
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"]["Va"];
352
+ wasmMemory = Module["asm"]["Xa"];
353
353
  updateMemoryViews();
354
- wasmTable = Module["asm"]["_a"];
355
- addOnInit(Module["asm"]["Wa"]);
354
+ wasmTable = Module["asm"]["ab"];
355
+ addOnInit(Module["asm"]["Ya"]);
356
356
  removeRunDependency("wasm-instantiate");
357
357
  return exports;
358
358
  }
@@ -427,6 +427,8 @@ var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
427
427
 
428
428
  var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
429
429
 
430
+ Module["UTF8ToString"] = UTF8ToString;
431
+
430
432
  var ___assert_fail = (condition, filename, line, func) => {
431
433
  abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [ filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function" ]);
432
434
  };
@@ -585,6 +587,8 @@ var lengthBytesUTF8 = str => {
585
587
  return len;
586
588
  };
587
589
 
590
+ Module["lengthBytesUTF8"] = lengthBytesUTF8;
591
+
588
592
  var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
589
593
  if (!(maxBytesToWrite > 0)) return 0;
590
594
  var startIdx = outIdx;
@@ -2876,6 +2880,8 @@ var FS = {
2876
2880
  }
2877
2881
  };
2878
2882
 
2883
+ Module["FS"] = FS;
2884
+
2879
2885
  var SYSCALLS = {
2880
2886
  DEFAULT_POLLMASK: 5,
2881
2887
  calculateAt: function(dirfd, path, allowEmpty) {
@@ -3967,6 +3973,8 @@ function ___syscall_ftruncate64(fd, length_low, length_high) {
3967
3973
 
3968
3974
  var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
3969
3975
 
3976
+ Module["stringToUTF8"] = stringToUTF8;
3977
+
3970
3978
  function ___syscall_getcwd(buf, size) {
3971
3979
  try {
3972
3980
  if (size === 0) return -28;
@@ -5271,6 +5279,46 @@ var stringToUTF8OnStack = str => {
5271
5279
  var allocateUTF8OnStack = stringToUTF8OnStack;
5272
5280
 
5273
5281
  var PHPWASM = {
5282
+ init: function() {
5283
+ PHPWASM.EventEmitter = ENVIRONMENT_IS_NODE ? require("events").EventEmitter : class EventEmitter {
5284
+ constructor() {
5285
+ this.listeners = {};
5286
+ }
5287
+ emit(eventName, data) {
5288
+ if (this.listeners[eventName]) {
5289
+ this.listeners[eventName].forEach((callback => {
5290
+ callback(data);
5291
+ }));
5292
+ }
5293
+ }
5294
+ once(eventName, callback) {
5295
+ const self = this;
5296
+ function removedCallback() {
5297
+ callback(...arguments);
5298
+ self.removeListener(eventName, removedCallback);
5299
+ }
5300
+ this.on(eventName, removedCallback);
5301
+ }
5302
+ removeAllListeners(eventName) {
5303
+ if (eventName) {
5304
+ delete this.listeners[eventName];
5305
+ } else {
5306
+ this.listeners = {};
5307
+ }
5308
+ }
5309
+ removeListener(eventName, callback) {
5310
+ if (this.listeners[eventName]) {
5311
+ const idx = this.listeners[eventName].indexOf(callback);
5312
+ if (idx !== -1) {
5313
+ this.listeners[eventName].splice(idx, 1);
5314
+ }
5315
+ }
5316
+ }
5317
+ };
5318
+ PHPWASM.child_proc_by_fd = {};
5319
+ PHPWASM.child_proc_by_pid = {};
5320
+ PHPWASM.input_devices = {};
5321
+ },
5274
5322
  getAllWebSockets: function(sock) {
5275
5323
  const webSockets = new Set;
5276
5324
  if (sock.server) {
@@ -5300,27 +5348,27 @@ var PHPWASM = {
5300
5348
  return Array.from(peers);
5301
5349
  },
5302
5350
  awaitData: function(ws) {
5303
- return PHPWASM.awaitWsEvent(ws, "message");
5351
+ return PHPWASM.awaitEvent(ws, "message");
5304
5352
  },
5305
5353
  awaitConnection: function(ws) {
5306
5354
  if (ws.OPEN === ws.readyState) {
5307
5355
  return [ Promise.resolve(), PHPWASM.noop ];
5308
5356
  }
5309
- return PHPWASM.awaitWsEvent(ws, "open");
5357
+ return PHPWASM.awaitEvent(ws, "open");
5310
5358
  },
5311
5359
  awaitClose: function(ws) {
5312
5360
  if ([ ws.CLOSING, ws.CLOSED ].includes(ws.readyState)) {
5313
5361
  return [ Promise.resolve(), PHPWASM.noop ];
5314
5362
  }
5315
- return PHPWASM.awaitWsEvent(ws, "close");
5363
+ return PHPWASM.awaitEvent(ws, "close");
5316
5364
  },
5317
5365
  awaitError: function(ws) {
5318
5366
  if ([ ws.CLOSING, ws.CLOSED ].includes(ws.readyState)) {
5319
5367
  return [ Promise.resolve(), PHPWASM.noop ];
5320
5368
  }
5321
- return PHPWASM.awaitWsEvent(ws, "error");
5369
+ return PHPWASM.awaitEvent(ws, "error");
5322
5370
  },
5323
- awaitWsEvent: function(ws, event) {
5371
+ awaitEvent: function(ws, event) {
5324
5372
  let resolve;
5325
5373
  const listener = () => {
5326
5374
  resolve();
@@ -5336,13 +5384,15 @@ var PHPWASM = {
5336
5384
  return [ promise, cancel ];
5337
5385
  },
5338
5386
  noop: function() {},
5339
- spawnProcess: function(command) {
5387
+ spawnProcess: function(command, args) {
5340
5388
  if (Module["spawnProcess"]) {
5341
- const spawned = Module["spawnProcess"](command);
5342
- if (!spawned || !spawned.on) {
5343
- throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
5344
- }
5345
- return spawned;
5389
+ const spawnedPromise = Module["spawnProcess"](command, args);
5390
+ return Promise.resolve(spawnedPromise).then((function(spawned) {
5391
+ if (!spawned || !spawned.on) {
5392
+ throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
5393
+ }
5394
+ return spawned;
5395
+ }));
5346
5396
  }
5347
5397
  if (ENVIRONMENT_IS_NODE) {
5348
5398
  return require("child_process").spawn(command, [], {
@@ -5372,13 +5422,10 @@ var PHPWASM = {
5372
5422
  }
5373
5423
  };
5374
5424
 
5375
- function _js_create_input_device(procopenCallId) {
5376
- if (!PHPWASM.input_devices) {
5377
- PHPWASM.input_devices = {};
5378
- }
5425
+ function _js_create_input_device(deviceId) {
5379
5426
  let dataBuffer = [];
5380
5427
  let dataCallback;
5381
- const filename = "proc_id_" + procopenCallId;
5428
+ const filename = "proc_id_" + deviceId;
5382
5429
  const device = FS.createDevice("/dev", filename, (function() {}), (function(byte) {
5383
5430
  try {
5384
5431
  dataBuffer.push(byte);
@@ -5392,7 +5439,7 @@ function _js_create_input_device(procopenCallId) {
5392
5439
  }
5393
5440
  }));
5394
5441
  const devicePath = "/dev/" + filename;
5395
- PHPWASM.input_devices[procopenCallId] = {
5442
+ PHPWASM.input_devices[deviceId] = {
5396
5443
  devicePath: devicePath,
5397
5444
  onData: function(cb) {
5398
5445
  dataCallback = cb;
@@ -5417,7 +5464,7 @@ function _js_fd_read(fd, iov, iovcnt, pnum) {
5417
5464
  if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e;
5418
5465
  returnCode = e.errno;
5419
5466
  }
5420
- if (returnCode === 6 && stream?.fd in PHPWASM.proc_fds) {
5467
+ if (returnCode === 6 && stream?.fd in PHPWASM.child_proc_by_fd) {
5421
5468
  return Asyncify.handleSleep((function(wakeUp) {
5422
5469
  var retries = 0;
5423
5470
  var interval = 50;
@@ -5438,7 +5485,7 @@ function _js_fd_read(fd, iov, iovcnt, pnum) {
5438
5485
  }
5439
5486
  returnCode = e.errno;
5440
5487
  }
5441
- 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 || {}))) {
5488
+ if (returnCode !== 6 || ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream)) {
5442
5489
  wakeUp(returnCode);
5443
5490
  } else {
5444
5491
  setTimeout(poll, interval);
@@ -5476,10 +5523,7 @@ function _js_module_onMessage(data, bufPtr) {
5476
5523
  }
5477
5524
  }
5478
5525
 
5479
- function _js_open_process(command, stdinFd, stdoutChildFd, stdoutParentFd, stderrChildFd, stderrParentFd) {
5480
- if (!PHPWASM.proc_fds) {
5481
- PHPWASM.proc_fds = {};
5482
- }
5526
+ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength) {
5483
5527
  if (!command) {
5484
5528
  return 1;
5485
5529
  }
@@ -5487,104 +5531,122 @@ function _js_open_process(command, stdinFd, stdoutChildFd, stdoutParentFd, stder
5487
5531
  if (!cmdstr.length) {
5488
5532
  return 0;
5489
5533
  }
5490
- let cp;
5491
- try {
5492
- cp = PHPWASM.spawnProcess(cmdstr);
5493
- } catch (e) {
5494
- if (e.code === "SPAWN_UNSUPPORTED") {
5495
- return 1;
5534
+ let argsArray = [];
5535
+ if (argsLength) {
5536
+ for (var i = 0; i < argsLength; i++) {
5537
+ const charPointer = argsPtr + i * 4;
5538
+ argsArray.push(UTF8ToString(HEAPU32[charPointer >> 2]));
5496
5539
  }
5497
- throw e;
5498
5540
  }
5499
- let EventEmitter;
5500
- if (ENVIRONMENT_IS_NODE) {
5501
- EventEmitter = require("events").EventEmitter;
5502
- } else {
5503
- EventEmitter = function() {
5504
- this.listeners = {};
5505
- };
5506
- EventEmitter.prototype.emit = function(eventName, data) {
5507
- if (this.listeners[eventName]) {
5508
- this.listeners[eventName].forEach((function(callback) {
5509
- callback(data);
5510
- }));
5511
- }
5541
+ var std = {};
5542
+ for (var i = 0; i < descriptorsLength; i++) {
5543
+ const descriptorPtr = HEAPU32[descriptorsPtr + i * 4 >> 2];
5544
+ std[HEAPU32[descriptorPtr >> 2]] = {
5545
+ child: HEAPU32[descriptorPtr + 4 >> 2],
5546
+ parent: HEAPU32[descriptorPtr + 8 >> 2]
5512
5547
  };
5513
- EventEmitter.prototype.once = function(eventName, callback) {
5514
- const self = this;
5515
- function removedCallback() {
5516
- callback(...arguments);
5517
- self.removeListener(eventName, removedCallback);
5518
- }
5519
- this.on(eventName, removedCallback);
5520
- };
5521
- EventEmitter.prototype.on = function(eventName, callback) {
5522
- if (!this.listeners[eventName]) {
5523
- this.listeners[eventName] = [];
5524
- }
5525
- this.listeners[eventName].push(callback);
5526
- };
5527
- EventEmitter.prototype.removeListener = function(eventName, callback) {
5528
- const idx = this.listeners[eventName].indexOf(callback);
5529
- if (idx !== -1) {
5530
- this.listeners[eventName].splice(idx, 1);
5548
+ }
5549
+ return Asyncify.handleSleep((async wakeUp => {
5550
+ let cp;
5551
+ try {
5552
+ cp = await PHPWASM.spawnProcess(cmdstr, argsArray);
5553
+ } catch (e) {
5554
+ if (e.code === "SPAWN_UNSUPPORTED") {
5555
+ wakeUp(1);
5556
+ return;
5531
5557
  }
5558
+ console.error(e);
5559
+ wakeUp(1);
5560
+ throw e;
5561
+ }
5562
+ const ProcInfo = {
5563
+ pid: cp.pid,
5564
+ exited: false,
5565
+ stdinFd: std[0]?.child,
5566
+ stdinIsDevice: std[0]?.child in PHPWASM.input_devices,
5567
+ stdoutChildFd: std[1]?.child,
5568
+ stdoutParentFd: std[1]?.parent,
5569
+ stderrChildFd: std[2]?.child,
5570
+ stderrParentFd: std[2]?.parent,
5571
+ stdout: new PHPWASM.EventEmitter,
5572
+ stderr: new PHPWASM.EventEmitter
5532
5573
  };
5533
- }
5534
- PHPWASM.proc_fds[stdoutParentFd] = new EventEmitter;
5535
- PHPWASM.proc_fds[stdoutParentFd].stdinFd = stdinFd;
5536
- PHPWASM.proc_fds[stderrParentFd] = new EventEmitter;
5537
- PHPWASM.proc_fds[stderrParentFd].stdinFd = stdinFd;
5538
- const stdoutStream = SYSCALLS.getStreamFromFD(stdoutChildFd);
5539
- cp.on("exit", (function(data) {
5540
- PHPWASM.proc_fds[stdoutParentFd].exited = true;
5541
- PHPWASM.proc_fds[stdoutParentFd].emit("data");
5542
- PHPWASM.proc_fds[stderrParentFd].exited = true;
5543
- PHPWASM.proc_fds[stderrParentFd].emit("data");
5544
- }));
5545
- cp.stdout.on("data", (function(data) {
5546
- PHPWASM.proc_fds[stdoutParentFd].hasData = true;
5547
- PHPWASM.proc_fds[stdoutParentFd].emit("data");
5548
- stdoutStream.stream_ops.write(stdoutStream, data, 0, data.length, 0);
5549
- }));
5550
- const stderrStream = SYSCALLS.getStreamFromFD(stderrChildFd);
5551
- cp.stderr.on("data", (function(data) {
5552
- PHPWASM.proc_fds[stderrParentFd].hasData = true;
5553
- PHPWASM.proc_fds[stderrParentFd].emit("data");
5554
- stderrStream.stream_ops.write(stderrStream, data, 0, data.length, 0);
5555
- }));
5556
- if (PHPWASM.input_devices && stdinFd in PHPWASM.input_devices) {
5557
- PHPWASM.input_devices[stdinFd].onData((function(data) {
5558
- if (!data) return;
5559
- const dataStr = new TextDecoder("utf-8").decode(data);
5560
- cp.stdin.write(dataStr);
5574
+ if (ProcInfo.stdoutChildFd) PHPWASM.child_proc_by_fd[ProcInfo.stdoutChildFd] = ProcInfo;
5575
+ if (ProcInfo.stderrChildFd) PHPWASM.child_proc_by_fd[ProcInfo.stderrChildFd] = ProcInfo;
5576
+ if (ProcInfo.stdoutParentFd) PHPWASM.child_proc_by_fd[ProcInfo.stdoutParentFd] = ProcInfo;
5577
+ if (ProcInfo.stderrParentFd) PHPWASM.child_proc_by_fd[ProcInfo.stderrParentFd] = ProcInfo;
5578
+ PHPWASM.child_proc_by_pid[ProcInfo.pid] = ProcInfo;
5579
+ cp.on("exit", (function(code) {
5580
+ ProcInfo.exitCode = code;
5581
+ ProcInfo.exited = true;
5582
+ ProcInfo.stdout.emit("data");
5583
+ ProcInfo.stderr.emit("data");
5561
5584
  }));
5562
- return 0;
5563
- }
5564
- const stdinStream = SYSCALLS.getStreamFromFD(stdinFd);
5565
- if (!stdinStream.node) {
5566
- return 0;
5567
- }
5568
- const CHUNK_SIZE = 1024;
5569
- const buffer = Buffer.alloc(CHUNK_SIZE);
5570
- let offset = 0;
5571
- while (true) {
5572
- const bytesRead = stdinStream.stream_ops.read(stdinStream, buffer, 0, CHUNK_SIZE, offset);
5573
- if (bytesRead === null || bytesRead === 0) {
5574
- break;
5585
+ if (ProcInfo.stdoutChildFd) {
5586
+ const stdoutStream = SYSCALLS.getStreamFromFD(ProcInfo.stdoutChildFd);
5587
+ let stdoutAt = 0;
5588
+ cp.stdout.on("data", (function(data) {
5589
+ ProcInfo.stdout.emit("data", data);
5590
+ stdoutStream.stream_ops.write(stdoutStream, data, 0, data.length, stdoutAt);
5591
+ stdoutAt += data.length;
5592
+ }));
5593
+ }
5594
+ if (ProcInfo.stderrChildFd) {
5595
+ const stderrStream = SYSCALLS.getStreamFromFD(ProcInfo.stderrChildFd);
5596
+ let stderrAt = 0;
5597
+ cp.stderr.on("data", (function(data) {
5598
+ ProcInfo.stderr.emit("data", data);
5599
+ stderrStream.stream_ops.write(stderrStream, data, 0, data.length, stderrAt);
5600
+ stderrAt += data.length;
5601
+ }));
5575
5602
  }
5576
5603
  try {
5577
- cp.stdin.write(buffer.subarray(0, bytesRead));
5604
+ await new Promise(((resolve, reject) => {
5605
+ cp.on("spawn", resolve);
5606
+ cp.on("error", reject);
5607
+ }));
5578
5608
  } catch (e) {
5579
5609
  console.error(e);
5580
- return 1;
5610
+ wakeUp(1);
5611
+ return;
5581
5612
  }
5582
- if (bytesRead < CHUNK_SIZE) {
5583
- break;
5613
+ if (ProcInfo.stdinIsDevice) {
5614
+ PHPWASM.input_devices[ProcInfo.stdinFd].onData((function(data) {
5615
+ if (!data) return;
5616
+ const dataStr = new TextDecoder("utf-8").decode(data);
5617
+ cp.stdin.write(dataStr);
5618
+ }));
5619
+ wakeUp(ProcInfo.pid);
5620
+ return;
5584
5621
  }
5585
- offset += bytesRead;
5586
- }
5587
- return 0;
5622
+ if (ProcInfo.stdinFd) {
5623
+ const stdinStream = SYSCALLS.getStreamFromFD(ProcInfo.stdinFd);
5624
+ if (stdinStream.node) {
5625
+ const CHUNK_SIZE = 1024;
5626
+ const buffer = new Uint8Array(CHUNK_SIZE);
5627
+ let offset = 0;
5628
+ while (true) {
5629
+ const bytesRead = stdinStream.stream_ops.read(stdinStream, buffer, 0, CHUNK_SIZE, offset);
5630
+ if (bytesRead === null || bytesRead === 0) {
5631
+ break;
5632
+ }
5633
+ try {
5634
+ cp.stdin.write(buffer.subarray(0, bytesRead));
5635
+ } catch (e) {
5636
+ console.error(e);
5637
+ return 1;
5638
+ }
5639
+ if (bytesRead < CHUNK_SIZE) {
5640
+ break;
5641
+ }
5642
+ offset += bytesRead;
5643
+ }
5644
+ wakeUp(ProcInfo.pid);
5645
+ return;
5646
+ }
5647
+ }
5648
+ wakeUp(ProcInfo.pid);
5649
+ }));
5588
5650
  }
5589
5651
 
5590
5652
  function _js_popen_to_file(command, mode, exitCodePtr) {
@@ -5596,10 +5658,10 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5596
5658
  if (modestr === "w") {
5597
5659
  console.error('popen($cmd, "w") is not implemented yet');
5598
5660
  }
5599
- return Asyncify.handleSleep((wakeUp => {
5661
+ return Asyncify.handleSleep((async wakeUp => {
5600
5662
  let cp;
5601
5663
  try {
5602
- cp = PHPWASM.spawnProcess(cmdstr);
5664
+ cp = await PHPWASM.spawnProcess(cmdstr, []);
5603
5665
  } catch (e) {
5604
5666
  console.error(e);
5605
5667
  if (e.code === "SPAWN_UNSUPPORTED") {
@@ -5626,6 +5688,33 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5626
5688
  }));
5627
5689
  }
5628
5690
 
5691
+ function _js_process_status(pid) {
5692
+ if (!PHPWASM.child_proc_by_pid[pid]) {
5693
+ return -1;
5694
+ }
5695
+ if (PHPWASM.child_proc_by_pid[pid].exited) {
5696
+ return 1;
5697
+ }
5698
+ return 0;
5699
+ }
5700
+
5701
+ function _js_waitpid(pid, exitCodePtr) {
5702
+ if (!PHPWASM.child_proc_by_pid[pid]) {
5703
+ return -1;
5704
+ }
5705
+ return Asyncify.handleSleep((wakeUp => {
5706
+ const poll = function() {
5707
+ if (PHPWASM.child_proc_by_pid[pid]?.exited) {
5708
+ HEAPU8[exitCodePtr] = PHPWASM.child_proc_by_pid[pid].exitCode;
5709
+ wakeUp(0);
5710
+ } else {
5711
+ setTimeout(poll, 50);
5712
+ }
5713
+ };
5714
+ poll();
5715
+ }));
5716
+ }
5717
+
5629
5718
  var arraySum = (array, index) => {
5630
5719
  var sum = 0;
5631
5720
  for (var i = 0; i <= index; sum += array[i++]) {}
@@ -6068,13 +6157,13 @@ function _wasm_poll_socket(socketd, events, timeout) {
6068
6157
  const POLLNVAL = 32;
6069
6158
  return Asyncify.handleSleep((wakeUp => {
6070
6159
  const polls = [];
6071
- if (PHPWASM.proc_fds && socketd in PHPWASM.proc_fds) {
6072
- const emitter = PHPWASM.proc_fds[socketd];
6073
- if (emitter.exited) {
6160
+ if (socketd in PHPWASM.child_proc_by_fd) {
6161
+ const procInfo = PHPWASM.child_proc_by_fd[socketd];
6162
+ if (procInfo.exited) {
6074
6163
  wakeUp(0);
6075
6164
  return;
6076
6165
  }
6077
- polls.push(PHPWASM.awaitWsEvent(emitter, "data"));
6166
+ polls.push(PHPWASM.awaitEvent(procInfo.stdout, "data"));
6078
6167
  } else {
6079
6168
  const sock = getSocketFromFD(socketd);
6080
6169
  if (!sock) {
@@ -6181,7 +6270,7 @@ function runAndAbortIfError(func) {
6181
6270
 
6182
6271
  var Asyncify = {
6183
6272
  instrumentWasmImports: function(imports) {
6184
- 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$/ ];
6273
+ 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$/ ];
6185
6274
  for (var x in imports) {
6186
6275
  (function(x) {
6187
6276
  var original = imports[x];
@@ -6602,79 +6691,81 @@ ERRNO_CODES = {
6602
6691
  "ESTRPIPE": 135
6603
6692
  };
6604
6693
 
6694
+ PHPWASM.init();
6695
+
6605
6696
  var wasmImports = {
6606
6697
  k: ___assert_fail,
6607
- Ua: ___call_sighandler,
6608
- Ta: ___syscall__newselect,
6609
- Sa: ___syscall_accept4,
6610
- Ra: ___syscall_bind,
6611
- Qa: ___syscall_chdir,
6698
+ Wa: ___call_sighandler,
6699
+ Va: ___syscall__newselect,
6700
+ Ua: ___syscall_accept4,
6701
+ Ta: ___syscall_bind,
6702
+ Sa: ___syscall_chdir,
6612
6703
  S: ___syscall_chmod,
6613
- Pa: ___syscall_connect,
6614
- Oa: ___syscall_dup,
6615
- Na: ___syscall_dup3,
6616
- Ma: ___syscall_faccessat,
6617
- La: ___syscall_fchmod,
6618
- Ka: ___syscall_fchown32,
6704
+ Ra: ___syscall_connect,
6705
+ Qa: ___syscall_dup,
6706
+ Pa: ___syscall_dup3,
6707
+ Oa: ___syscall_faccessat,
6708
+ Na: ___syscall_fchmod,
6709
+ Ma: ___syscall_fchown32,
6619
6710
  R: ___syscall_fchownat,
6620
6711
  n: ___syscall_fcntl64,
6621
- Ja: ___syscall_fstat64,
6712
+ La: ___syscall_fstat64,
6622
6713
  _: ___syscall_ftruncate64,
6623
- Ia: ___syscall_getcwd,
6624
- Ha: ___syscall_getdents64,
6625
- Ga: ___syscall_getpeername,
6626
- Fa: ___syscall_getsockname,
6627
- Ea: ___syscall_getsockopt,
6714
+ Ka: ___syscall_getcwd,
6715
+ Ja: ___syscall_getdents64,
6716
+ Ia: ___syscall_getpeername,
6717
+ Ha: ___syscall_getsockname,
6718
+ Ga: ___syscall_getsockopt,
6628
6719
  Q: ___syscall_ioctl,
6629
- Da: ___syscall_listen,
6630
- Ca: ___syscall_lstat64,
6631
- Ba: ___syscall_mkdirat,
6632
- Aa: ___syscall_newfstatat,
6720
+ Fa: ___syscall_listen,
6721
+ Ea: ___syscall_lstat64,
6722
+ Da: ___syscall_mkdirat,
6723
+ Ca: ___syscall_newfstatat,
6633
6724
  x: ___syscall_openat,
6634
- za: ___syscall_pipe,
6635
- ya: ___syscall_poll,
6636
- xa: ___syscall_readlinkat,
6637
- wa: ___syscall_recvfrom,
6638
- va: ___syscall_renameat,
6725
+ Ba: ___syscall_pipe,
6726
+ Aa: ___syscall_poll,
6727
+ za: ___syscall_readlinkat,
6728
+ ya: ___syscall_recvfrom,
6729
+ xa: ___syscall_renameat,
6639
6730
  P: ___syscall_rmdir,
6640
- ua: ___syscall_sendto,
6731
+ wa: ___syscall_sendto,
6641
6732
  O: ___syscall_socket,
6642
- ta: ___syscall_stat64,
6643
- sa: ___syscall_statfs64,
6644
- ra: ___syscall_symlink,
6733
+ va: ___syscall_stat64,
6734
+ ua: ___syscall_statfs64,
6735
+ ta: ___syscall_symlink,
6645
6736
  E: ___syscall_unlinkat,
6646
- qa: ___syscall_utimensat,
6647
- la: __emscripten_get_now_is_monotonic,
6648
- ka: __emscripten_throw_longjmp,
6737
+ sa: ___syscall_utimensat,
6738
+ na: __emscripten_get_now_is_monotonic,
6739
+ ma: __emscripten_throw_longjmp,
6649
6740
  Y: __gmtime_js,
6650
6741
  X: __localtime_js,
6651
6742
  W: __mktime_js,
6652
6743
  V: __mmap_js,
6653
6744
  U: __munmap_js,
6654
6745
  L: __setitimer_js,
6655
- ja: __tzset_js,
6746
+ la: __tzset_js,
6656
6747
  e: _abort,
6657
6748
  C: _emscripten_date_now,
6658
- ia: _emscripten_get_heap_max,
6749
+ ka: _emscripten_get_heap_max,
6659
6750
  w: _emscripten_get_now,
6660
- ha: _emscripten_memcpy_big,
6661
- ga: _emscripten_resize_heap,
6751
+ ja: _emscripten_memcpy_big,
6752
+ ia: _emscripten_resize_heap,
6662
6753
  K: _emscripten_sleep,
6663
- pa: _environ_get,
6664
- oa: _environ_sizes_get,
6754
+ ra: _environ_get,
6755
+ qa: _environ_sizes_get,
6665
6756
  p: _exit,
6666
6757
  t: _fd_close,
6667
6758
  N: _fd_fdstat_get,
6668
6759
  M: _fd_read,
6669
6760
  Z: _fd_seek,
6670
- na: _fd_sync,
6761
+ pa: _fd_sync,
6671
6762
  D: _fd_write,
6672
6763
  J: _gethostbyaddr,
6673
6764
  I: _gethostbyname_r,
6674
- fa: _getloadavg,
6675
- ea: _getnameinfo,
6676
- da: _getprotobyname,
6677
- ca: _getprotobynumber,
6765
+ ha: _getloadavg,
6766
+ ga: _getnameinfo,
6767
+ fa: _getprotobyname,
6768
+ ea: _getprotobynumber,
6678
6769
  i: invoke_i,
6679
6770
  d: invoke_ii,
6680
6771
  b: invoke_iii,
@@ -6694,11 +6785,13 @@ var wasmImports = {
6694
6785
  j: invoke_viiiiii,
6695
6786
  z: invoke_viiiiiiiii,
6696
6787
  H: _js_create_input_device,
6697
- ba: _js_fd_read,
6698
- aa: _js_module_onMessage,
6788
+ da: _js_fd_read,
6789
+ ca: _js_module_onMessage,
6699
6790
  G: _js_open_process,
6700
- $: _js_popen_to_file,
6701
- ma: _proc_exit,
6791
+ ba: _js_popen_to_file,
6792
+ aa: _js_process_status,
6793
+ $: _js_waitpid,
6794
+ oa: _proc_exit,
6702
6795
  F: _strftime,
6703
6796
  T: _strptime,
6704
6797
  r: _wasm_close,
@@ -6709,39 +6802,39 @@ var wasmImports = {
6709
6802
  var asm = createWasm();
6710
6803
 
6711
6804
  var ___wasm_call_ctors = function() {
6712
- return (___wasm_call_ctors = Module["asm"]["Wa"]).apply(null, arguments);
6805
+ return (___wasm_call_ctors = Module["asm"]["Ya"]).apply(null, arguments);
6713
6806
  };
6714
6807
 
6715
6808
  var _memcpy = function() {
6716
- return (_memcpy = Module["asm"]["Xa"]).apply(null, arguments);
6809
+ return (_memcpy = Module["asm"]["Za"]).apply(null, arguments);
6717
6810
  };
6718
6811
 
6719
6812
  var _malloc = function() {
6720
- return (_malloc = Module["asm"]["Ya"]).apply(null, arguments);
6813
+ return (_malloc = Module["asm"]["_a"]).apply(null, arguments);
6721
6814
  };
6722
6815
 
6723
6816
  var _free = function() {
6724
- return (_free = Module["asm"]["Za"]).apply(null, arguments);
6817
+ return (_free = Module["asm"]["$a"]).apply(null, arguments);
6725
6818
  };
6726
6819
 
6727
6820
  var setTempRet0 = function() {
6728
- return (setTempRet0 = Module["asm"]["$a"]).apply(null, arguments);
6821
+ return (setTempRet0 = Module["asm"]["bb"]).apply(null, arguments);
6729
6822
  };
6730
6823
 
6731
6824
  var ___errno_location = function() {
6732
- return (___errno_location = Module["asm"]["ab"]).apply(null, arguments);
6825
+ return (___errno_location = Module["asm"]["cb"]).apply(null, arguments);
6733
6826
  };
6734
6827
 
6735
6828
  var _wasm_sleep = Module["_wasm_sleep"] = function() {
6736
- return (_wasm_sleep = Module["_wasm_sleep"] = Module["asm"]["bb"]).apply(null, arguments);
6829
+ return (_wasm_sleep = Module["_wasm_sleep"] = Module["asm"]["db"]).apply(null, arguments);
6737
6830
  };
6738
6831
 
6739
6832
  var _ntohs = function() {
6740
- return (_ntohs = Module["asm"]["cb"]).apply(null, arguments);
6833
+ return (_ntohs = Module["asm"]["eb"]).apply(null, arguments);
6741
6834
  };
6742
6835
 
6743
6836
  var _htons = function() {
6744
- return (_htons = Module["asm"]["db"]).apply(null, arguments);
6837
+ return (_htons = Module["asm"]["fb"]).apply(null, arguments);
6745
6838
  };
6746
6839
 
6747
6840
  var _htonl = function() {
@@ -6749,135 +6842,139 @@ var _htonl = function() {
6749
6842
  };
6750
6843
 
6751
6844
  var _wasm_read = Module["_wasm_read"] = function() {
6752
- return (_wasm_read = Module["_wasm_read"] = Module["asm"]["eb"]).apply(null, arguments);
6845
+ return (_wasm_read = Module["_wasm_read"] = Module["asm"]["gb"]).apply(null, arguments);
6753
6846
  };
6754
6847
 
6755
6848
  var _fflush = Module["_fflush"] = function() {
6756
- return (_fflush = Module["_fflush"] = Module["asm"]["fb"]).apply(null, arguments);
6849
+ return (_fflush = Module["_fflush"] = Module["asm"]["hb"]).apply(null, arguments);
6757
6850
  };
6758
6851
 
6759
6852
  var _wasm_popen = Module["_wasm_popen"] = function() {
6760
- return (_wasm_popen = Module["_wasm_popen"] = Module["asm"]["gb"]).apply(null, arguments);
6853
+ return (_wasm_popen = Module["_wasm_popen"] = Module["asm"]["ib"]).apply(null, arguments);
6761
6854
  };
6762
6855
 
6763
6856
  var _wasm_php_exec = Module["_wasm_php_exec"] = function() {
6764
- return (_wasm_php_exec = Module["_wasm_php_exec"] = Module["asm"]["hb"]).apply(null, arguments);
6857
+ return (_wasm_php_exec = Module["_wasm_php_exec"] = Module["asm"]["jb"]).apply(null, arguments);
6765
6858
  };
6766
6859
 
6767
6860
  var _php_pollfd_for = Module["_php_pollfd_for"] = function() {
6768
- return (_php_pollfd_for = Module["_php_pollfd_for"] = Module["asm"]["ib"]).apply(null, arguments);
6861
+ return (_php_pollfd_for = Module["_php_pollfd_for"] = Module["asm"]["kb"]).apply(null, arguments);
6769
6862
  };
6770
6863
 
6771
6864
  var _wasm_select = Module["_wasm_select"] = function() {
6772
- return (_wasm_select = Module["_wasm_select"] = Module["asm"]["jb"]).apply(null, arguments);
6865
+ return (_wasm_select = Module["_wasm_select"] = Module["asm"]["lb"]).apply(null, arguments);
6773
6866
  };
6774
6867
 
6775
6868
  var _wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = function() {
6776
- return (_wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = Module["asm"]["kb"]).apply(null, arguments);
6869
+ return (_wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = Module["asm"]["mb"]).apply(null, arguments);
6777
6870
  };
6778
6871
 
6779
6872
  var _run_cli = Module["_run_cli"] = function() {
6780
- return (_run_cli = Module["_run_cli"] = Module["asm"]["lb"]).apply(null, arguments);
6873
+ return (_run_cli = Module["_run_cli"] = Module["asm"]["nb"]).apply(null, arguments);
6874
+ };
6875
+
6876
+ var _wasm_set_sapi_name = Module["_wasm_set_sapi_name"] = function() {
6877
+ return (_wasm_set_sapi_name = Module["_wasm_set_sapi_name"] = Module["asm"]["ob"]).apply(null, arguments);
6781
6878
  };
6782
6879
 
6783
6880
  var _wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = function() {
6784
- return (_wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = Module["asm"]["mb"]).apply(null, arguments);
6881
+ return (_wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = Module["asm"]["pb"]).apply(null, arguments);
6785
6882
  };
6786
6883
 
6787
6884
  var _wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = function() {
6788
- return (_wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = Module["asm"]["nb"]).apply(null, arguments);
6885
+ return (_wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = Module["asm"]["qb"]).apply(null, arguments);
6789
6886
  };
6790
6887
 
6791
6888
  var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
6792
- return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["ob"]).apply(null, arguments);
6889
+ return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["rb"]).apply(null, arguments);
6793
6890
  };
6794
6891
 
6795
6892
  var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
6796
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["pb"]).apply(null, arguments);
6893
+ return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["sb"]).apply(null, arguments);
6797
6894
  };
6798
6895
 
6799
6896
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
6800
- return (_wasm_set_query_string = Module["_wasm_set_query_string"] = Module["asm"]["qb"]).apply(null, arguments);
6897
+ return (_wasm_set_query_string = Module["_wasm_set_query_string"] = Module["asm"]["tb"]).apply(null, arguments);
6801
6898
  };
6802
6899
 
6803
6900
  var _wasm_set_path_translated = Module["_wasm_set_path_translated"] = function() {
6804
- return (_wasm_set_path_translated = Module["_wasm_set_path_translated"] = Module["asm"]["rb"]).apply(null, arguments);
6901
+ return (_wasm_set_path_translated = Module["_wasm_set_path_translated"] = Module["asm"]["ub"]).apply(null, arguments);
6805
6902
  };
6806
6903
 
6807
6904
  var _wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = function() {
6808
- return (_wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = Module["asm"]["sb"]).apply(null, arguments);
6905
+ return (_wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = Module["asm"]["vb"]).apply(null, arguments);
6809
6906
  };
6810
6907
 
6811
6908
  var _wasm_set_request_uri = Module["_wasm_set_request_uri"] = function() {
6812
- return (_wasm_set_request_uri = Module["_wasm_set_request_uri"] = Module["asm"]["tb"]).apply(null, arguments);
6909
+ return (_wasm_set_request_uri = Module["_wasm_set_request_uri"] = Module["asm"]["wb"]).apply(null, arguments);
6813
6910
  };
6814
6911
 
6815
6912
  var _wasm_set_request_method = Module["_wasm_set_request_method"] = function() {
6816
- return (_wasm_set_request_method = Module["_wasm_set_request_method"] = Module["asm"]["ub"]).apply(null, arguments);
6913
+ return (_wasm_set_request_method = Module["_wasm_set_request_method"] = Module["asm"]["xb"]).apply(null, arguments);
6817
6914
  };
6818
6915
 
6819
6916
  var _wasm_set_request_host = Module["_wasm_set_request_host"] = function() {
6820
- return (_wasm_set_request_host = Module["_wasm_set_request_host"] = Module["asm"]["vb"]).apply(null, arguments);
6917
+ return (_wasm_set_request_host = Module["_wasm_set_request_host"] = Module["asm"]["yb"]).apply(null, arguments);
6821
6918
  };
6822
6919
 
6823
6920
  var _wasm_set_content_type = Module["_wasm_set_content_type"] = function() {
6824
- return (_wasm_set_content_type = Module["_wasm_set_content_type"] = Module["asm"]["wb"]).apply(null, arguments);
6921
+ return (_wasm_set_content_type = Module["_wasm_set_content_type"] = Module["asm"]["zb"]).apply(null, arguments);
6825
6922
  };
6826
6923
 
6827
6924
  var _wasm_set_request_body = Module["_wasm_set_request_body"] = function() {
6828
- return (_wasm_set_request_body = Module["_wasm_set_request_body"] = Module["asm"]["xb"]).apply(null, arguments);
6925
+ return (_wasm_set_request_body = Module["_wasm_set_request_body"] = Module["asm"]["Ab"]).apply(null, arguments);
6829
6926
  };
6830
6927
 
6831
6928
  var _wasm_set_content_length = Module["_wasm_set_content_length"] = function() {
6832
- return (_wasm_set_content_length = Module["_wasm_set_content_length"] = Module["asm"]["yb"]).apply(null, arguments);
6929
+ return (_wasm_set_content_length = Module["_wasm_set_content_length"] = Module["asm"]["Bb"]).apply(null, arguments);
6833
6930
  };
6834
6931
 
6835
6932
  var _wasm_set_cookies = Module["_wasm_set_cookies"] = function() {
6836
- return (_wasm_set_cookies = Module["_wasm_set_cookies"] = Module["asm"]["zb"]).apply(null, arguments);
6933
+ return (_wasm_set_cookies = Module["_wasm_set_cookies"] = Module["asm"]["Cb"]).apply(null, arguments);
6837
6934
  };
6838
6935
 
6839
6936
  var _wasm_set_php_code = Module["_wasm_set_php_code"] = function() {
6840
- return (_wasm_set_php_code = Module["_wasm_set_php_code"] = Module["asm"]["Ab"]).apply(null, arguments);
6937
+ return (_wasm_set_php_code = Module["_wasm_set_php_code"] = Module["asm"]["Db"]).apply(null, arguments);
6841
6938
  };
6842
6939
 
6843
6940
  var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
6844
- return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Bb"]).apply(null, arguments);
6941
+ return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Eb"]).apply(null, arguments);
6845
6942
  };
6846
6943
 
6847
6944
  var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
6848
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Cb"]).apply(null, arguments);
6945
+ return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Fb"]).apply(null, arguments);
6849
6946
  };
6850
6947
 
6851
6948
  var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
6852
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Db"]).apply(null, arguments);
6949
+ return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Gb"]).apply(null, arguments);
6853
6950
  };
6854
6951
 
6855
6952
  var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
6856
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Eb"]).apply(null, arguments);
6953
+ return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Hb"]).apply(null, arguments);
6857
6954
  };
6858
6955
 
6859
6956
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
6860
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Fb"]).apply(null, arguments);
6957
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Ib"]).apply(null, arguments);
6861
6958
  };
6862
6959
 
6863
6960
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
6864
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Gb"]).apply(null, arguments);
6961
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Jb"]).apply(null, arguments);
6865
6962
  };
6866
6963
 
6867
6964
  var ___funcs_on_exit = function() {
6868
- return (___funcs_on_exit = Module["asm"]["Hb"]).apply(null, arguments);
6965
+ return (___funcs_on_exit = Module["asm"]["Kb"]).apply(null, arguments);
6869
6966
  };
6870
6967
 
6871
6968
  var _emscripten_builtin_memalign = function() {
6872
- return (_emscripten_builtin_memalign = Module["asm"]["Ib"]).apply(null, arguments);
6969
+ return (_emscripten_builtin_memalign = Module["asm"]["Lb"]).apply(null, arguments);
6873
6970
  };
6874
6971
 
6875
6972
  var __emscripten_timeout = function() {
6876
- return (__emscripten_timeout = Module["asm"]["Jb"]).apply(null, arguments);
6973
+ return (__emscripten_timeout = Module["asm"]["Mb"]).apply(null, arguments);
6877
6974
  };
6878
6975
 
6879
6976
  var _setThrew = function() {
6880
- return (_setThrew = Module["asm"]["Kb"]).apply(null, arguments);
6977
+ return (_setThrew = Module["asm"]["Nb"]).apply(null, arguments);
6881
6978
  };
6882
6979
 
6883
6980
  var _emscripten_stack_set_limits = function() {
@@ -6893,103 +6990,103 @@ var _emscripten_stack_get_end = function() {
6893
6990
  };
6894
6991
 
6895
6992
  var stackSave = function() {
6896
- return (stackSave = Module["asm"]["Lb"]).apply(null, arguments);
6993
+ return (stackSave = Module["asm"]["Ob"]).apply(null, arguments);
6897
6994
  };
6898
6995
 
6899
6996
  var stackRestore = function() {
6900
- return (stackRestore = Module["asm"]["Mb"]).apply(null, arguments);
6997
+ return (stackRestore = Module["asm"]["Pb"]).apply(null, arguments);
6901
6998
  };
6902
6999
 
6903
7000
  var stackAlloc = function() {
6904
- return (stackAlloc = Module["asm"]["Nb"]).apply(null, arguments);
7001
+ return (stackAlloc = Module["asm"]["Qb"]).apply(null, arguments);
6905
7002
  };
6906
7003
 
6907
7004
  var dynCall_vi = Module["dynCall_vi"] = function() {
6908
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Ob"]).apply(null, arguments);
7005
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Rb"]).apply(null, arguments);
6909
7006
  };
6910
7007
 
6911
7008
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
6912
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Pb"]).apply(null, arguments);
7009
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Sb"]).apply(null, arguments);
6913
7010
  };
6914
7011
 
6915
7012
  var dynCall_ii = Module["dynCall_ii"] = function() {
6916
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Qb"]).apply(null, arguments);
7013
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Tb"]).apply(null, arguments);
6917
7014
  };
6918
7015
 
6919
7016
  var dynCall_vii = Module["dynCall_vii"] = function() {
6920
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Rb"]).apply(null, arguments);
7017
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Ub"]).apply(null, arguments);
6921
7018
  };
6922
7019
 
6923
7020
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
6924
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["Sb"]).apply(null, arguments);
7021
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["Vb"]).apply(null, arguments);
6925
7022
  };
6926
7023
 
6927
7024
  var dynCall_iii = Module["dynCall_iii"] = function() {
6928
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Tb"]).apply(null, arguments);
7025
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Wb"]).apply(null, arguments);
6929
7026
  };
6930
7027
 
6931
7028
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
6932
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Ub"]).apply(null, arguments);
7029
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Xb"]).apply(null, arguments);
6933
7030
  };
6934
7031
 
6935
7032
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
6936
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["Vb"]).apply(null, arguments);
7033
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["Yb"]).apply(null, arguments);
6937
7034
  };
6938
7035
 
6939
7036
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
6940
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7037
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Zb"]).apply(null, arguments);
6941
7038
  };
6942
7039
 
6943
7040
  var dynCall_i = Module["dynCall_i"] = function() {
6944
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["Xb"]).apply(null, arguments);
7041
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["_b"]).apply(null, arguments);
6945
7042
  };
6946
7043
 
6947
7044
  var dynCall_viii = Module["dynCall_viii"] = function() {
6948
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["Yb"]).apply(null, arguments);
7045
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["$b"]).apply(null, arguments);
6949
7046
  };
6950
7047
 
6951
7048
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
6952
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7049
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["ac"]).apply(null, arguments);
6953
7050
  };
6954
7051
 
6955
7052
  var dynCall_v = Module["dynCall_v"] = function() {
6956
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["_b"]).apply(null, arguments);
7053
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["bc"]).apply(null, arguments);
6957
7054
  };
6958
7055
 
6959
7056
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
6960
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["$b"]).apply(null, arguments);
7057
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
6961
7058
  };
6962
7059
 
6963
7060
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
6964
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["ac"]).apply(null, arguments);
7061
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["dc"]).apply(null, arguments);
6965
7062
  };
6966
7063
 
6967
7064
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
6968
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7065
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
6969
7066
  };
6970
7067
 
6971
7068
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
6972
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
7069
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["fc"]).apply(null, arguments);
6973
7070
  };
6974
7071
 
6975
7072
  var dynCall_viidii = Module["dynCall_viidii"] = function() {
6976
- return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["dc"]).apply(null, arguments);
7073
+ return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["gc"]).apply(null, arguments);
6977
7074
  };
6978
7075
 
6979
7076
  var _asyncify_start_unwind = function() {
6980
- return (_asyncify_start_unwind = Module["asm"]["ec"]).apply(null, arguments);
7077
+ return (_asyncify_start_unwind = Module["asm"]["hc"]).apply(null, arguments);
6981
7078
  };
6982
7079
 
6983
7080
  var _asyncify_stop_unwind = function() {
6984
- return (_asyncify_stop_unwind = Module["asm"]["fc"]).apply(null, arguments);
7081
+ return (_asyncify_stop_unwind = Module["asm"]["ic"]).apply(null, arguments);
6985
7082
  };
6986
7083
 
6987
7084
  var _asyncify_start_rewind = function() {
6988
- return (_asyncify_start_rewind = Module["asm"]["gc"]).apply(null, arguments);
7085
+ return (_asyncify_start_rewind = Module["asm"]["jc"]).apply(null, arguments);
6989
7086
  };
6990
7087
 
6991
7088
  var _asyncify_stop_rewind = function() {
6992
- return (_asyncify_stop_rewind = Module["asm"]["hc"]).apply(null, arguments);
7089
+ return (_asyncify_stop_rewind = Module["asm"]["kc"]).apply(null, arguments);
6993
7090
  };
6994
7091
 
6995
7092
  function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) {
@@ -7206,14 +7303,8 @@ Module["FS_unlink"] = FS.unlink;
7206
7303
 
7207
7304
  Module["ccall"] = ccall;
7208
7305
 
7209
- Module["UTF8ToString"] = UTF8ToString;
7210
-
7211
- Module["lengthBytesUTF8"] = lengthBytesUTF8;
7212
-
7213
7306
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7214
7307
 
7215
- Module["FS"] = FS;
7216
-
7217
7308
  var calledRun;
7218
7309
 
7219
7310
  dependenciesFulfilled = function runCaller() {
@@ -7297,6 +7388,9 @@ PHPLoader['removeRunDependency'] = function (...args) {
7297
7388
  }
7298
7389
  }
7299
7390
 
7391
+ PHPLoader['malloc'] = _malloc;
7392
+ PHPLoader['free'] = _free;
7393
+
7300
7394
  return PHPLoader;
7301
7395
 
7302
7396
  // Close the opening bracket from esm-prefix.js: