@php-wasm/node 0.5.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/php_7_0.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/7_0_33/php_7_0.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 11389470;
3
+ export const dependenciesTotalSize = 11391831;
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"]["Ua"];
352
+ wasmMemory = Module["asm"]["Wa"];
353
353
  updateMemoryViews();
354
- wasmTable = Module["asm"]["_a"];
355
- addOnInit(Module["asm"]["Va"]);
354
+ wasmTable = Module["asm"]["ab"];
355
+ addOnInit(Module["asm"]["Xa"]);
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
- Ta: ___call_sighandler,
6608
- Sa: ___syscall__newselect,
6609
- Ra: ___syscall_accept4,
6610
- Qa: ___syscall_bind,
6611
- Pa: ___syscall_chdir,
6698
+ Va: ___call_sighandler,
6699
+ Ua: ___syscall__newselect,
6700
+ Ta: ___syscall_accept4,
6701
+ Sa: ___syscall_bind,
6702
+ Ra: ___syscall_chdir,
6612
6703
  R: ___syscall_chmod,
6613
- Oa: ___syscall_connect,
6614
- Na: ___syscall_dup,
6615
- Ma: ___syscall_dup3,
6616
- La: ___syscall_faccessat,
6617
- Ka: ___syscall_fchmod,
6618
- Ja: ___syscall_fchown32,
6704
+ Qa: ___syscall_connect,
6705
+ Pa: ___syscall_dup,
6706
+ Oa: ___syscall_dup3,
6707
+ Na: ___syscall_faccessat,
6708
+ Ma: ___syscall_fchmod,
6709
+ La: ___syscall_fchown32,
6619
6710
  Q: ___syscall_fchownat,
6620
6711
  m: ___syscall_fcntl64,
6621
- Ia: ___syscall_fstat64,
6712
+ Ka: ___syscall_fstat64,
6622
6713
  Z: ___syscall_ftruncate64,
6623
- Ha: ___syscall_getcwd,
6624
- Ga: ___syscall_getdents64,
6625
- Fa: ___syscall_getpeername,
6626
- Ea: ___syscall_getsockname,
6627
- Da: ___syscall_getsockopt,
6714
+ Ja: ___syscall_getcwd,
6715
+ Ia: ___syscall_getdents64,
6716
+ Ha: ___syscall_getpeername,
6717
+ Ga: ___syscall_getsockname,
6718
+ Fa: ___syscall_getsockopt,
6628
6719
  P: ___syscall_ioctl,
6629
- Ca: ___syscall_listen,
6630
- Ba: ___syscall_lstat64,
6631
- Aa: ___syscall_mkdirat,
6632
- za: ___syscall_newfstatat,
6720
+ Ea: ___syscall_listen,
6721
+ Da: ___syscall_lstat64,
6722
+ Ca: ___syscall_mkdirat,
6723
+ Ba: ___syscall_newfstatat,
6633
6724
  C: ___syscall_openat,
6634
- ya: ___syscall_pipe,
6635
- xa: ___syscall_poll,
6636
- wa: ___syscall_readlinkat,
6637
- va: ___syscall_recvfrom,
6638
- ua: ___syscall_renameat,
6725
+ Aa: ___syscall_pipe,
6726
+ za: ___syscall_poll,
6727
+ ya: ___syscall_readlinkat,
6728
+ xa: ___syscall_recvfrom,
6729
+ wa: ___syscall_renameat,
6639
6730
  O: ___syscall_rmdir,
6640
- ta: ___syscall_sendto,
6731
+ va: ___syscall_sendto,
6641
6732
  N: ___syscall_socket,
6642
- sa: ___syscall_stat64,
6643
- ra: ___syscall_statfs64,
6644
- qa: ___syscall_symlink,
6733
+ ua: ___syscall_stat64,
6734
+ ta: ___syscall_statfs64,
6735
+ sa: ___syscall_symlink,
6645
6736
  M: ___syscall_unlinkat,
6646
- pa: ___syscall_utimensat,
6647
- la: __emscripten_get_now_is_monotonic,
6648
- ka: __emscripten_throw_longjmp,
6737
+ ra: ___syscall_utimensat,
6738
+ na: __emscripten_get_now_is_monotonic,
6739
+ ma: __emscripten_throw_longjmp,
6649
6740
  X: __gmtime_js,
6650
6741
  W: __localtime_js,
6651
6742
  V: __mktime_js,
6652
6743
  U: __mmap_js,
6653
6744
  T: __munmap_js,
6654
6745
  J: __setitimer_js,
6655
- ja: __tzset_js,
6746
+ la: __tzset_js,
6656
6747
  e: _abort,
6657
6748
  A: _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
  I: _emscripten_sleep,
6663
- oa: _environ_get,
6664
- na: _environ_sizes_get,
6754
+ qa: _environ_get,
6755
+ pa: _environ_sizes_get,
6665
6756
  o: _exit,
6666
6757
  s: _fd_close,
6667
6758
  L: _fd_fdstat_get,
6668
6759
  K: _fd_read,
6669
6760
  Y: _fd_seek,
6670
- ma: _fd_sync,
6761
+ oa: _fd_sync,
6671
6762
  B: _fd_write,
6672
6763
  H: _gethostbyaddr,
6673
6764
  G: _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,
@@ -6683,7 +6774,7 @@ var wasmImports = {
6683
6774
  v: invoke_iiiiii,
6684
6775
  u: invoke_iiiiiii,
6685
6776
  t: invoke_iiiiiiii,
6686
- ba: invoke_iiiiiiiii,
6777
+ da: invoke_iiiiiiiii,
6687
6778
  z: invoke_iiiiiiiiii,
6688
6779
  f: invoke_v,
6689
6780
  a: invoke_vi,
@@ -6694,10 +6785,12 @@ var wasmImports = {
6694
6785
  j: invoke_viiiiii,
6695
6786
  y: invoke_viiiiiiiii,
6696
6787
  F: _js_create_input_device,
6697
- aa: _js_fd_read,
6698
- $: _js_module_onMessage,
6788
+ ca: _js_fd_read,
6789
+ ba: _js_module_onMessage,
6699
6790
  E: _js_open_process,
6700
- _: _js_popen_to_file,
6791
+ aa: _js_popen_to_file,
6792
+ $: _js_process_status,
6793
+ _: _js_waitpid,
6701
6794
  D: _strftime,
6702
6795
  S: _strptime,
6703
6796
  p: _wasm_close,
@@ -6708,39 +6801,39 @@ var wasmImports = {
6708
6801
  var asm = createWasm();
6709
6802
 
6710
6803
  var ___wasm_call_ctors = function() {
6711
- return (___wasm_call_ctors = Module["asm"]["Va"]).apply(null, arguments);
6804
+ return (___wasm_call_ctors = Module["asm"]["Xa"]).apply(null, arguments);
6712
6805
  };
6713
6806
 
6714
6807
  var _memcpy = function() {
6715
- return (_memcpy = Module["asm"]["Wa"]).apply(null, arguments);
6808
+ return (_memcpy = Module["asm"]["Ya"]).apply(null, arguments);
6716
6809
  };
6717
6810
 
6718
6811
  var _malloc = function() {
6719
- return (_malloc = Module["asm"]["Xa"]).apply(null, arguments);
6812
+ return (_malloc = Module["asm"]["Za"]).apply(null, arguments);
6720
6813
  };
6721
6814
 
6722
6815
  var _free = function() {
6723
- return (_free = Module["asm"]["Ya"]).apply(null, arguments);
6816
+ return (_free = Module["asm"]["_a"]).apply(null, arguments);
6724
6817
  };
6725
6818
 
6726
6819
  var setTempRet0 = function() {
6727
- return (setTempRet0 = Module["asm"]["Za"]).apply(null, arguments);
6820
+ return (setTempRet0 = Module["asm"]["$a"]).apply(null, arguments);
6728
6821
  };
6729
6822
 
6730
6823
  var ___errno_location = function() {
6731
- return (___errno_location = Module["asm"]["$a"]).apply(null, arguments);
6824
+ return (___errno_location = Module["asm"]["bb"]).apply(null, arguments);
6732
6825
  };
6733
6826
 
6734
6827
  var _wasm_sleep = Module["_wasm_sleep"] = function() {
6735
- return (_wasm_sleep = Module["_wasm_sleep"] = Module["asm"]["ab"]).apply(null, arguments);
6828
+ return (_wasm_sleep = Module["_wasm_sleep"] = Module["asm"]["cb"]).apply(null, arguments);
6736
6829
  };
6737
6830
 
6738
6831
  var _ntohs = function() {
6739
- return (_ntohs = Module["asm"]["bb"]).apply(null, arguments);
6832
+ return (_ntohs = Module["asm"]["db"]).apply(null, arguments);
6740
6833
  };
6741
6834
 
6742
6835
  var _htons = function() {
6743
- return (_htons = Module["asm"]["cb"]).apply(null, arguments);
6836
+ return (_htons = Module["asm"]["eb"]).apply(null, arguments);
6744
6837
  };
6745
6838
 
6746
6839
  var _htonl = function() {
@@ -6748,135 +6841,139 @@ var _htonl = function() {
6748
6841
  };
6749
6842
 
6750
6843
  var _wasm_read = Module["_wasm_read"] = function() {
6751
- return (_wasm_read = Module["_wasm_read"] = Module["asm"]["db"]).apply(null, arguments);
6844
+ return (_wasm_read = Module["_wasm_read"] = Module["asm"]["fb"]).apply(null, arguments);
6752
6845
  };
6753
6846
 
6754
6847
  var _fflush = Module["_fflush"] = function() {
6755
- return (_fflush = Module["_fflush"] = Module["asm"]["eb"]).apply(null, arguments);
6848
+ return (_fflush = Module["_fflush"] = Module["asm"]["gb"]).apply(null, arguments);
6756
6849
  };
6757
6850
 
6758
6851
  var _wasm_popen = Module["_wasm_popen"] = function() {
6759
- return (_wasm_popen = Module["_wasm_popen"] = Module["asm"]["fb"]).apply(null, arguments);
6852
+ return (_wasm_popen = Module["_wasm_popen"] = Module["asm"]["hb"]).apply(null, arguments);
6760
6853
  };
6761
6854
 
6762
6855
  var _wasm_php_exec = Module["_wasm_php_exec"] = function() {
6763
- return (_wasm_php_exec = Module["_wasm_php_exec"] = Module["asm"]["gb"]).apply(null, arguments);
6856
+ return (_wasm_php_exec = Module["_wasm_php_exec"] = Module["asm"]["ib"]).apply(null, arguments);
6764
6857
  };
6765
6858
 
6766
6859
  var _php_pollfd_for = Module["_php_pollfd_for"] = function() {
6767
- return (_php_pollfd_for = Module["_php_pollfd_for"] = Module["asm"]["hb"]).apply(null, arguments);
6860
+ return (_php_pollfd_for = Module["_php_pollfd_for"] = Module["asm"]["jb"]).apply(null, arguments);
6768
6861
  };
6769
6862
 
6770
6863
  var _wasm_select = Module["_wasm_select"] = function() {
6771
- return (_wasm_select = Module["_wasm_select"] = Module["asm"]["ib"]).apply(null, arguments);
6864
+ return (_wasm_select = Module["_wasm_select"] = Module["asm"]["kb"]).apply(null, arguments);
6772
6865
  };
6773
6866
 
6774
6867
  var _wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = function() {
6775
- return (_wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = Module["asm"]["jb"]).apply(null, arguments);
6868
+ return (_wasm_add_cli_arg = Module["_wasm_add_cli_arg"] = Module["asm"]["lb"]).apply(null, arguments);
6776
6869
  };
6777
6870
 
6778
6871
  var _run_cli = Module["_run_cli"] = function() {
6779
- return (_run_cli = Module["_run_cli"] = Module["asm"]["kb"]).apply(null, arguments);
6872
+ return (_run_cli = Module["_run_cli"] = Module["asm"]["mb"]).apply(null, arguments);
6873
+ };
6874
+
6875
+ var _wasm_set_sapi_name = Module["_wasm_set_sapi_name"] = function() {
6876
+ return (_wasm_set_sapi_name = Module["_wasm_set_sapi_name"] = Module["asm"]["nb"]).apply(null, arguments);
6780
6877
  };
6781
6878
 
6782
6879
  var _wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = function() {
6783
- return (_wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = Module["asm"]["lb"]).apply(null, arguments);
6880
+ return (_wasm_set_phpini_path = Module["_wasm_set_phpini_path"] = Module["asm"]["ob"]).apply(null, arguments);
6784
6881
  };
6785
6882
 
6786
6883
  var _wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = function() {
6787
- return (_wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = Module["asm"]["mb"]).apply(null, arguments);
6884
+ return (_wasm_set_phpini_entries = Module["_wasm_set_phpini_entries"] = Module["asm"]["pb"]).apply(null, arguments);
6788
6885
  };
6789
6886
 
6790
6887
  var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
6791
- return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["nb"]).apply(null, arguments);
6888
+ return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["qb"]).apply(null, arguments);
6792
6889
  };
6793
6890
 
6794
6891
  var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
6795
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["ob"]).apply(null, arguments);
6892
+ return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["rb"]).apply(null, arguments);
6796
6893
  };
6797
6894
 
6798
6895
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
6799
- return (_wasm_set_query_string = Module["_wasm_set_query_string"] = Module["asm"]["pb"]).apply(null, arguments);
6896
+ return (_wasm_set_query_string = Module["_wasm_set_query_string"] = Module["asm"]["sb"]).apply(null, arguments);
6800
6897
  };
6801
6898
 
6802
6899
  var _wasm_set_path_translated = Module["_wasm_set_path_translated"] = function() {
6803
- return (_wasm_set_path_translated = Module["_wasm_set_path_translated"] = Module["asm"]["qb"]).apply(null, arguments);
6900
+ return (_wasm_set_path_translated = Module["_wasm_set_path_translated"] = Module["asm"]["tb"]).apply(null, arguments);
6804
6901
  };
6805
6902
 
6806
6903
  var _wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = function() {
6807
- return (_wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = Module["asm"]["rb"]).apply(null, arguments);
6904
+ return (_wasm_set_skip_shebang = Module["_wasm_set_skip_shebang"] = Module["asm"]["ub"]).apply(null, arguments);
6808
6905
  };
6809
6906
 
6810
6907
  var _wasm_set_request_uri = Module["_wasm_set_request_uri"] = function() {
6811
- return (_wasm_set_request_uri = Module["_wasm_set_request_uri"] = Module["asm"]["sb"]).apply(null, arguments);
6908
+ return (_wasm_set_request_uri = Module["_wasm_set_request_uri"] = Module["asm"]["vb"]).apply(null, arguments);
6812
6909
  };
6813
6910
 
6814
6911
  var _wasm_set_request_method = Module["_wasm_set_request_method"] = function() {
6815
- return (_wasm_set_request_method = Module["_wasm_set_request_method"] = Module["asm"]["tb"]).apply(null, arguments);
6912
+ return (_wasm_set_request_method = Module["_wasm_set_request_method"] = Module["asm"]["wb"]).apply(null, arguments);
6816
6913
  };
6817
6914
 
6818
6915
  var _wasm_set_request_host = Module["_wasm_set_request_host"] = function() {
6819
- return (_wasm_set_request_host = Module["_wasm_set_request_host"] = Module["asm"]["ub"]).apply(null, arguments);
6916
+ return (_wasm_set_request_host = Module["_wasm_set_request_host"] = Module["asm"]["xb"]).apply(null, arguments);
6820
6917
  };
6821
6918
 
6822
6919
  var _wasm_set_content_type = Module["_wasm_set_content_type"] = function() {
6823
- return (_wasm_set_content_type = Module["_wasm_set_content_type"] = Module["asm"]["vb"]).apply(null, arguments);
6920
+ return (_wasm_set_content_type = Module["_wasm_set_content_type"] = Module["asm"]["yb"]).apply(null, arguments);
6824
6921
  };
6825
6922
 
6826
6923
  var _wasm_set_request_body = Module["_wasm_set_request_body"] = function() {
6827
- return (_wasm_set_request_body = Module["_wasm_set_request_body"] = Module["asm"]["wb"]).apply(null, arguments);
6924
+ return (_wasm_set_request_body = Module["_wasm_set_request_body"] = Module["asm"]["zb"]).apply(null, arguments);
6828
6925
  };
6829
6926
 
6830
6927
  var _wasm_set_content_length = Module["_wasm_set_content_length"] = function() {
6831
- return (_wasm_set_content_length = Module["_wasm_set_content_length"] = Module["asm"]["xb"]).apply(null, arguments);
6928
+ return (_wasm_set_content_length = Module["_wasm_set_content_length"] = Module["asm"]["Ab"]).apply(null, arguments);
6832
6929
  };
6833
6930
 
6834
6931
  var _wasm_set_cookies = Module["_wasm_set_cookies"] = function() {
6835
- return (_wasm_set_cookies = Module["_wasm_set_cookies"] = Module["asm"]["yb"]).apply(null, arguments);
6932
+ return (_wasm_set_cookies = Module["_wasm_set_cookies"] = Module["asm"]["Bb"]).apply(null, arguments);
6836
6933
  };
6837
6934
 
6838
6935
  var _wasm_set_php_code = Module["_wasm_set_php_code"] = function() {
6839
- return (_wasm_set_php_code = Module["_wasm_set_php_code"] = Module["asm"]["zb"]).apply(null, arguments);
6936
+ return (_wasm_set_php_code = Module["_wasm_set_php_code"] = Module["asm"]["Cb"]).apply(null, arguments);
6840
6937
  };
6841
6938
 
6842
6939
  var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
6843
- return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Ab"]).apply(null, arguments);
6940
+ return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Db"]).apply(null, arguments);
6844
6941
  };
6845
6942
 
6846
6943
  var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
6847
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Bb"]).apply(null, arguments);
6944
+ return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Eb"]).apply(null, arguments);
6848
6945
  };
6849
6946
 
6850
6947
  var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
6851
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Cb"]).apply(null, arguments);
6948
+ return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Fb"]).apply(null, arguments);
6852
6949
  };
6853
6950
 
6854
6951
  var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
6855
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Db"]).apply(null, arguments);
6952
+ return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Gb"]).apply(null, arguments);
6856
6953
  };
6857
6954
 
6858
6955
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
6859
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Eb"]).apply(null, arguments);
6956
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Hb"]).apply(null, arguments);
6860
6957
  };
6861
6958
 
6862
6959
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
6863
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Fb"]).apply(null, arguments);
6960
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Ib"]).apply(null, arguments);
6864
6961
  };
6865
6962
 
6866
6963
  var ___funcs_on_exit = function() {
6867
- return (___funcs_on_exit = Module["asm"]["Gb"]).apply(null, arguments);
6964
+ return (___funcs_on_exit = Module["asm"]["Jb"]).apply(null, arguments);
6868
6965
  };
6869
6966
 
6870
6967
  var _emscripten_builtin_memalign = function() {
6871
- return (_emscripten_builtin_memalign = Module["asm"]["Hb"]).apply(null, arguments);
6968
+ return (_emscripten_builtin_memalign = Module["asm"]["Kb"]).apply(null, arguments);
6872
6969
  };
6873
6970
 
6874
6971
  var __emscripten_timeout = function() {
6875
- return (__emscripten_timeout = Module["asm"]["Ib"]).apply(null, arguments);
6972
+ return (__emscripten_timeout = Module["asm"]["Lb"]).apply(null, arguments);
6876
6973
  };
6877
6974
 
6878
6975
  var _setThrew = function() {
6879
- return (_setThrew = Module["asm"]["Jb"]).apply(null, arguments);
6976
+ return (_setThrew = Module["asm"]["Mb"]).apply(null, arguments);
6880
6977
  };
6881
6978
 
6882
6979
  var _emscripten_stack_set_limits = function() {
@@ -6892,103 +6989,103 @@ var _emscripten_stack_get_end = function() {
6892
6989
  };
6893
6990
 
6894
6991
  var stackSave = function() {
6895
- return (stackSave = Module["asm"]["Kb"]).apply(null, arguments);
6992
+ return (stackSave = Module["asm"]["Nb"]).apply(null, arguments);
6896
6993
  };
6897
6994
 
6898
6995
  var stackRestore = function() {
6899
- return (stackRestore = Module["asm"]["Lb"]).apply(null, arguments);
6996
+ return (stackRestore = Module["asm"]["Ob"]).apply(null, arguments);
6900
6997
  };
6901
6998
 
6902
6999
  var stackAlloc = function() {
6903
- return (stackAlloc = Module["asm"]["Mb"]).apply(null, arguments);
7000
+ return (stackAlloc = Module["asm"]["Pb"]).apply(null, arguments);
6904
7001
  };
6905
7002
 
6906
7003
  var dynCall_viii = Module["dynCall_viii"] = function() {
6907
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["Nb"]).apply(null, arguments);
7004
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["Qb"]).apply(null, arguments);
6908
7005
  };
6909
7006
 
6910
7007
  var dynCall_vii = Module["dynCall_vii"] = function() {
6911
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Ob"]).apply(null, arguments);
7008
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Rb"]).apply(null, arguments);
6912
7009
  };
6913
7010
 
6914
7011
  var dynCall_vi = Module["dynCall_vi"] = function() {
6915
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Pb"]).apply(null, arguments);
7012
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Sb"]).apply(null, arguments);
6916
7013
  };
6917
7014
 
6918
7015
  var dynCall_iii = Module["dynCall_iii"] = function() {
6919
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Qb"]).apply(null, arguments);
7016
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Tb"]).apply(null, arguments);
6920
7017
  };
6921
7018
 
6922
7019
  var dynCall_ii = Module["dynCall_ii"] = function() {
6923
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Rb"]).apply(null, arguments);
7020
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Ub"]).apply(null, arguments);
6924
7021
  };
6925
7022
 
6926
7023
  var dynCall_v = Module["dynCall_v"] = function() {
6927
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["Sb"]).apply(null, arguments);
7024
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["Vb"]).apply(null, arguments);
6928
7025
  };
6929
7026
 
6930
7027
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
6931
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Tb"]).apply(null, arguments);
7028
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Wb"]).apply(null, arguments);
6932
7029
  };
6933
7030
 
6934
7031
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
6935
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["Ub"]).apply(null, arguments);
7032
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["Xb"]).apply(null, arguments);
6936
7033
  };
6937
7034
 
6938
7035
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
6939
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Vb"]).apply(null, arguments);
7036
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Yb"]).apply(null, arguments);
6940
7037
  };
6941
7038
 
6942
7039
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
6943
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7040
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["Zb"]).apply(null, arguments);
6944
7041
  };
6945
7042
 
6946
7043
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
6947
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Xb"]).apply(null, arguments);
7044
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["_b"]).apply(null, arguments);
6948
7045
  };
6949
7046
 
6950
7047
  var dynCall_i = Module["dynCall_i"] = function() {
6951
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["Yb"]).apply(null, arguments);
7048
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["$b"]).apply(null, arguments);
6952
7049
  };
6953
7050
 
6954
7051
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
6955
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7052
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["ac"]).apply(null, arguments);
6956
7053
  };
6957
7054
 
6958
7055
  var dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = function() {
6959
- return (dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7056
+ return (dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
6960
7057
  };
6961
7058
 
6962
7059
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
6963
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["$b"]).apply(null, arguments);
7060
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
6964
7061
  };
6965
7062
 
6966
7063
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
6967
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["ac"]).apply(null, arguments);
7064
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["dc"]).apply(null, arguments);
6968
7065
  };
6969
7066
 
6970
7067
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
6971
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7068
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
6972
7069
  };
6973
7070
 
6974
7071
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
6975
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
7072
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["fc"]).apply(null, arguments);
6976
7073
  };
6977
7074
 
6978
7075
  var _asyncify_start_unwind = function() {
6979
- return (_asyncify_start_unwind = Module["asm"]["dc"]).apply(null, arguments);
7076
+ return (_asyncify_start_unwind = Module["asm"]["gc"]).apply(null, arguments);
6980
7077
  };
6981
7078
 
6982
7079
  var _asyncify_stop_unwind = function() {
6983
- return (_asyncify_stop_unwind = Module["asm"]["ec"]).apply(null, arguments);
7080
+ return (_asyncify_stop_unwind = Module["asm"]["hc"]).apply(null, arguments);
6984
7081
  };
6985
7082
 
6986
7083
  var _asyncify_start_rewind = function() {
6987
- return (_asyncify_start_rewind = Module["asm"]["fc"]).apply(null, arguments);
7084
+ return (_asyncify_start_rewind = Module["asm"]["ic"]).apply(null, arguments);
6988
7085
  };
6989
7086
 
6990
7087
  var _asyncify_stop_rewind = function() {
6991
- return (_asyncify_stop_rewind = Module["asm"]["gc"]).apply(null, arguments);
7088
+ return (_asyncify_stop_rewind = Module["asm"]["jc"]).apply(null, arguments);
6992
7089
  };
6993
7090
 
6994
7091
  function invoke_viii(index, a1, a2, a3) {
@@ -7205,14 +7302,8 @@ Module["FS_unlink"] = FS.unlink;
7205
7302
 
7206
7303
  Module["ccall"] = ccall;
7207
7304
 
7208
- Module["UTF8ToString"] = UTF8ToString;
7209
-
7210
- Module["lengthBytesUTF8"] = lengthBytesUTF8;
7211
-
7212
7305
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7213
7306
 
7214
- Module["FS"] = FS;
7215
-
7216
7307
  var calledRun;
7217
7308
 
7218
7309
  dependenciesFulfilled = function runCaller() {
@@ -7296,6 +7387,9 @@ PHPLoader['removeRunDependency'] = function (...args) {
7296
7387
  }
7297
7388
  }
7298
7389
 
7390
+ PHPLoader['malloc'] = _malloc;
7391
+ PHPLoader['free'] = _free;
7392
+
7299
7393
  return PHPLoader;
7300
7394
 
7301
7395
  // Close the opening bracket from esm-prefix.js: