@php-wasm/node 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/php_8_2.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/8_2_10/php_8_2.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 11251647;
3
+ export const dependenciesTotalSize = 11251047;
4
4
  export function init(RuntimeName, PHPLoader) {
5
5
  /**
6
6
  * Overrides Emscripten's default ExitStatus object which gets
@@ -1475,6 +1475,216 @@ var NODEFS = {
1475
1475
  }
1476
1476
  };
1477
1477
 
1478
+ var PROXYFS = {
1479
+ mount(mount) {
1480
+ return PROXYFS.createNode(null, "/", mount.opts.fs.lstat(mount.opts.root).mode, 0);
1481
+ },
1482
+ createNode(parent, name, mode, dev) {
1483
+ if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
1484
+ throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
1485
+ }
1486
+ var node = FS.createNode(parent, name, mode);
1487
+ node.node_ops = PROXYFS.node_ops;
1488
+ node.stream_ops = PROXYFS.stream_ops;
1489
+ return node;
1490
+ },
1491
+ realPath(node) {
1492
+ var parts = [];
1493
+ while (node.parent !== node) {
1494
+ parts.push(node.name);
1495
+ node = node.parent;
1496
+ }
1497
+ parts.push(node.mount.opts.root);
1498
+ parts.reverse();
1499
+ return PATH.join.apply(null, parts);
1500
+ },
1501
+ node_ops: {
1502
+ getattr(node) {
1503
+ var path = PROXYFS.realPath(node);
1504
+ var stat;
1505
+ try {
1506
+ stat = node.mount.opts.fs.lstat(path);
1507
+ } catch (e) {
1508
+ if (!e.code) throw e;
1509
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1510
+ }
1511
+ return {
1512
+ dev: stat.dev,
1513
+ ino: stat.ino,
1514
+ mode: stat.mode,
1515
+ nlink: stat.nlink,
1516
+ uid: stat.uid,
1517
+ gid: stat.gid,
1518
+ rdev: stat.rdev,
1519
+ size: stat.size,
1520
+ atime: stat.atime,
1521
+ mtime: stat.mtime,
1522
+ ctime: stat.ctime,
1523
+ blksize: stat.blksize,
1524
+ blocks: stat.blocks
1525
+ };
1526
+ },
1527
+ setattr(node, attr) {
1528
+ var path = PROXYFS.realPath(node);
1529
+ try {
1530
+ if (attr.mode !== undefined) {
1531
+ node.mount.opts.fs.chmod(path, attr.mode);
1532
+ node.mode = attr.mode;
1533
+ }
1534
+ if (attr.timestamp !== undefined) {
1535
+ var date = new Date(attr.timestamp);
1536
+ node.mount.opts.fs.utime(path, date, date);
1537
+ }
1538
+ if (attr.size !== undefined) {
1539
+ node.mount.opts.fs.truncate(path, attr.size);
1540
+ }
1541
+ } catch (e) {
1542
+ if (!e.code) throw e;
1543
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1544
+ }
1545
+ },
1546
+ lookup(parent, name) {
1547
+ try {
1548
+ var path = PATH.join2(PROXYFS.realPath(parent), name);
1549
+ var mode = parent.mount.opts.fs.lstat(path).mode;
1550
+ var node = PROXYFS.createNode(parent, name, mode);
1551
+ return node;
1552
+ } catch (e) {
1553
+ if (!e.code) throw e;
1554
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1555
+ }
1556
+ },
1557
+ mknod(parent, name, mode, dev) {
1558
+ var node = PROXYFS.createNode(parent, name, mode, dev);
1559
+ var path = PROXYFS.realPath(node);
1560
+ try {
1561
+ if (FS.isDir(node.mode)) {
1562
+ node.mount.opts.fs.mkdir(path, node.mode);
1563
+ } else {
1564
+ node.mount.opts.fs.writeFile(path, "", {
1565
+ mode: node.mode
1566
+ });
1567
+ }
1568
+ } catch (e) {
1569
+ if (!e.code) throw e;
1570
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1571
+ }
1572
+ return node;
1573
+ },
1574
+ rename(oldNode, newDir, newName) {
1575
+ var oldPath = PROXYFS.realPath(oldNode);
1576
+ var newPath = PATH.join2(PROXYFS.realPath(newDir), newName);
1577
+ try {
1578
+ oldNode.mount.opts.fs.rename(oldPath, newPath);
1579
+ oldNode.name = newName;
1580
+ oldNode.parent = newDir;
1581
+ } catch (e) {
1582
+ if (!e.code) throw e;
1583
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1584
+ }
1585
+ },
1586
+ unlink(parent, name) {
1587
+ var path = PATH.join2(PROXYFS.realPath(parent), name);
1588
+ try {
1589
+ parent.mount.opts.fs.unlink(path);
1590
+ } catch (e) {
1591
+ if (!e.code) throw e;
1592
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1593
+ }
1594
+ },
1595
+ rmdir(parent, name) {
1596
+ var path = PATH.join2(PROXYFS.realPath(parent), name);
1597
+ try {
1598
+ parent.mount.opts.fs.rmdir(path);
1599
+ } catch (e) {
1600
+ if (!e.code) throw e;
1601
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1602
+ }
1603
+ },
1604
+ readdir(node) {
1605
+ var path = PROXYFS.realPath(node);
1606
+ try {
1607
+ return node.mount.opts.fs.readdir(path);
1608
+ } catch (e) {
1609
+ if (!e.code) throw e;
1610
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1611
+ }
1612
+ },
1613
+ symlink(parent, newName, oldPath) {
1614
+ var newPath = PATH.join2(PROXYFS.realPath(parent), newName);
1615
+ try {
1616
+ parent.mount.opts.fs.symlink(oldPath, newPath);
1617
+ } catch (e) {
1618
+ if (!e.code) throw e;
1619
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1620
+ }
1621
+ },
1622
+ readlink(node) {
1623
+ var path = PROXYFS.realPath(node);
1624
+ try {
1625
+ return node.mount.opts.fs.readlink(path);
1626
+ } catch (e) {
1627
+ if (!e.code) throw e;
1628
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1629
+ }
1630
+ }
1631
+ },
1632
+ stream_ops: {
1633
+ open(stream) {
1634
+ var path = PROXYFS.realPath(stream.node);
1635
+ try {
1636
+ stream.nfd = stream.node.mount.opts.fs.open(path, stream.flags);
1637
+ } catch (e) {
1638
+ if (!e.code) throw e;
1639
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1640
+ }
1641
+ },
1642
+ close(stream) {
1643
+ try {
1644
+ stream.node.mount.opts.fs.close(stream.nfd);
1645
+ } catch (e) {
1646
+ if (!e.code) throw e;
1647
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1648
+ }
1649
+ },
1650
+ read(stream, buffer, offset, length, position) {
1651
+ try {
1652
+ return stream.node.mount.opts.fs.read(stream.nfd, buffer, offset, length, position);
1653
+ } catch (e) {
1654
+ if (!e.code) throw e;
1655
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1656
+ }
1657
+ },
1658
+ write(stream, buffer, offset, length, position) {
1659
+ try {
1660
+ return stream.node.mount.opts.fs.write(stream.nfd, buffer, offset, length, position);
1661
+ } catch (e) {
1662
+ if (!e.code) throw e;
1663
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1664
+ }
1665
+ },
1666
+ llseek(stream, offset, whence) {
1667
+ var position = offset;
1668
+ if (whence === 1) {
1669
+ position += stream.position;
1670
+ } else if (whence === 2) {
1671
+ if (FS.isFile(stream.node.mode)) {
1672
+ try {
1673
+ var stat = stream.node.node_ops.getattr(stream.node);
1674
+ position += stat.size;
1675
+ } catch (e) {
1676
+ throw new FS.ErrnoError(ERRNO_CODES[e.code]);
1677
+ }
1678
+ }
1679
+ }
1680
+ if (position < 0) {
1681
+ throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
1682
+ }
1683
+ return position;
1684
+ }
1685
+ }
1686
+ };
1687
+
1478
1688
  var FS = {
1479
1689
  root: null,
1480
1690
  mounts: [],
@@ -2550,7 +2760,8 @@ var FS = {
2550
2760
  FS.createSpecialDirectories();
2551
2761
  FS.filesystems = {
2552
2762
  "MEMFS": MEMFS,
2553
- "NODEFS": NODEFS
2763
+ "NODEFS": NODEFS,
2764
+ "PROXYFS": PROXYFS
2554
2765
  };
2555
2766
  },
2556
2767
  init: (input, output, error) => {
@@ -5432,6 +5643,7 @@ var allocateUTF8OnStack = stringToUTF8OnStack;
5432
5643
 
5433
5644
  var PHPWASM = {
5434
5645
  init: function() {
5646
+ FS.mkdir("/internal");
5435
5647
  PHPWASM.EventEmitter = ENVIRONMENT_IS_NODE ? require("events").EventEmitter : class EventEmitter {
5436
5648
  constructor() {
5437
5649
  this.listeners = {};
@@ -5536,9 +5748,9 @@ var PHPWASM = {
5536
5748
  return [ promise, cancel ];
5537
5749
  },
5538
5750
  noop: function() {},
5539
- spawnProcess: function(command, args) {
5751
+ spawnProcess: function(command, args, options) {
5540
5752
  if (Module["spawnProcess"]) {
5541
- const spawnedPromise = Module["spawnProcess"](command, args);
5753
+ const spawnedPromise = Module["spawnProcess"](command, args, options);
5542
5754
  return Promise.resolve(spawnedPromise).then((function(spawned) {
5543
5755
  if (!spawned || !spawned.on) {
5544
5756
  throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
@@ -5547,7 +5759,8 @@ var PHPWASM = {
5547
5759
  }));
5548
5760
  }
5549
5761
  if (ENVIRONMENT_IS_NODE) {
5550
- return require("child_process").spawn(command, [], {
5762
+ return require("child_process").spawn(command, args, {
5763
+ ...options,
5551
5764
  shell: true,
5552
5765
  stdio: [ "pipe", "pipe", "pipe" ],
5553
5766
  timeout: 100
@@ -5605,48 +5818,59 @@ function _js_create_input_device(deviceId) {
5605
5818
  }
5606
5819
 
5607
5820
  function _js_fd_read(fd, iov, iovcnt, pnum) {
5608
- var returnCode;
5609
- var stream;
5610
- try {
5611
- stream = SYSCALLS.getStreamFromFD(fd);
5612
- var num = doReadv(stream, iov, iovcnt);
5613
- HEAPU32[pnum >> 2] = num;
5614
- returnCode = 0;
5615
- } catch (e) {
5616
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e;
5617
- returnCode = e.errno;
5821
+ if (Asyncify.state === Asyncify.State.Normal) {
5822
+ var returnCode;
5823
+ var stream;
5824
+ let num = 0;
5825
+ try {
5826
+ stream = SYSCALLS.getStreamFromFD(fd);
5827
+ const num = doReadv(stream, iov, iovcnt);
5828
+ HEAPU32[pnum >> 2] = num;
5829
+ return 0;
5830
+ } catch (e) {
5831
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5832
+ throw e;
5833
+ }
5834
+ if (e.errno !== 6 || !(stream?.fd in PHPWASM.child_proc_by_fd)) {
5835
+ HEAPU32[pnum >> 2] = 0;
5836
+ return returnCode;
5837
+ }
5838
+ }
5618
5839
  }
5619
- if (returnCode === 6 && stream?.fd in PHPWASM.child_proc_by_fd) {
5620
- return Asyncify.handleSleep((function(wakeUp) {
5621
- var retries = 0;
5622
- var interval = 50;
5623
- var timeout = 5e3;
5624
- var maxRetries = timeout / interval;
5625
- function poll() {
5626
- var returnCode;
5627
- var stream;
5628
- try {
5629
- stream = SYSCALLS.getStreamFromFD(fd);
5630
- var num = doReadv(stream, iov, iovcnt);
5631
- HEAPU32[pnum >> 2] = num;
5632
- returnCode = 0;
5633
- } catch (e) {
5634
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5635
- console.error(e);
5636
- throw e;
5637
- }
5638
- returnCode = e.errno;
5639
- }
5640
- if (returnCode !== 6 || ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream)) {
5641
- wakeUp(returnCode);
5642
- } else {
5643
- setTimeout(poll, interval);
5840
+ return Asyncify.handleSleep((function(wakeUp) {
5841
+ var retries = 0;
5842
+ var interval = 50;
5843
+ var timeout = 5e3;
5844
+ var maxRetries = timeout / interval;
5845
+ function poll() {
5846
+ var returnCode;
5847
+ var stream;
5848
+ let num;
5849
+ try {
5850
+ stream = SYSCALLS.getStreamFromFD(fd);
5851
+ num = doReadv(stream, iov, iovcnt);
5852
+ returnCode = 0;
5853
+ } catch (e) {
5854
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5855
+ console.error(e);
5856
+ throw e;
5644
5857
  }
5858
+ returnCode = e.errno;
5645
5859
  }
5646
- poll();
5647
- }));
5648
- }
5649
- return returnCode;
5860
+ const success = returnCode === 0;
5861
+ const failure = ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream);
5862
+ if (success) {
5863
+ HEAPU32[pnum >> 2] = num;
5864
+ wakeUp(0);
5865
+ } else if (failure) {
5866
+ HEAPU32[pnum >> 2] = 0;
5867
+ wakeUp(returnCode === 6 ? 0 : returnCode);
5868
+ } else {
5869
+ setTimeout(poll, interval);
5870
+ }
5871
+ }
5872
+ poll();
5873
+ }));
5650
5874
  }
5651
5875
 
5652
5876
  function _js_module_onMessage(data, bufPtr) {
@@ -5675,7 +5899,7 @@ function _js_module_onMessage(data, bufPtr) {
5675
5899
  }
5676
5900
  }
5677
5901
 
5678
- function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength) {
5902
+ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength, cwdPtr, cwdLength, envPtr, envLength) {
5679
5903
  if (!command) {
5680
5904
  return 1;
5681
5905
  }
@@ -5690,6 +5914,22 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5690
5914
  argsArray.push(UTF8ToString(HEAPU32[charPointer >> 2]));
5691
5915
  }
5692
5916
  }
5917
+ const cwdstr = cwdPtr ? UTF8ToString(cwdPtr) : null;
5918
+ let envObject = null;
5919
+ if (envLength) {
5920
+ envObject = {};
5921
+ for (var i = 0; i < envLength; i++) {
5922
+ const envPointer = envPtr + i * 4;
5923
+ const envEntry = UTF8ToString(HEAPU32[envPointer >> 2]);
5924
+ const splitAt = envEntry.indexOf("=");
5925
+ if (splitAt === -1) {
5926
+ continue;
5927
+ }
5928
+ const key = envEntry.substring(0, splitAt);
5929
+ const value = envEntry.substring(splitAt + 1);
5930
+ envObject[key] = value;
5931
+ }
5932
+ }
5693
5933
  var std = {};
5694
5934
  for (var i = 0; i < descriptorsLength; i++) {
5695
5935
  const descriptorPtr = HEAPU32[descriptorsPtr + i * 4 >> 2];
@@ -5701,7 +5941,17 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5701
5941
  return Asyncify.handleSleep((async wakeUp => {
5702
5942
  let cp;
5703
5943
  try {
5704
- cp = await PHPWASM.spawnProcess(cmdstr, argsArray);
5944
+ const options = {};
5945
+ if (cwdstr !== null) {
5946
+ options.cwd = cwdstr;
5947
+ }
5948
+ if (envObject !== null) {
5949
+ options.env = envObject;
5950
+ }
5951
+ cp = PHPWASM.spawnProcess(cmdstr, argsArray, options);
5952
+ if (cp instanceof Promise) {
5953
+ cp = await cp;
5954
+ }
5705
5955
  } catch (e) {
5706
5956
  if (e.code === "SPAWN_UNSUPPORTED") {
5707
5957
  wakeUp(1);
@@ -5813,7 +6063,10 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5813
6063
  return Asyncify.handleSleep((async wakeUp => {
5814
6064
  let cp;
5815
6065
  try {
5816
- cp = await PHPWASM.spawnProcess(cmdstr, []);
6066
+ cp = PHPWASM.spawnProcess(cmdstr, []);
6067
+ if (cp instanceof Promise) {
6068
+ cp = await cp;
6069
+ }
5817
6070
  } catch (e) {
5818
6071
  console.error(e);
5819
6072
  if (e.code === "SPAWN_UNSUPPORTED") {
@@ -5840,11 +6093,12 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5840
6093
  }));
5841
6094
  }
5842
6095
 
5843
- function _js_process_status(pid) {
6096
+ function _js_process_status(pid, exitCodePtr) {
5844
6097
  if (!PHPWASM.child_proc_by_pid[pid]) {
5845
6098
  return -1;
5846
6099
  }
5847
6100
  if (PHPWASM.child_proc_by_pid[pid].exited) {
6101
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
5848
6102
  return 1;
5849
6103
  }
5850
6104
  return 0;
@@ -5857,8 +6111,8 @@ function _js_waitpid(pid, exitCodePtr) {
5857
6111
  return Asyncify.handleSleep((wakeUp => {
5858
6112
  const poll = function() {
5859
6113
  if (PHPWASM.child_proc_by_pid[pid]?.exited) {
5860
- HEAPU8[exitCodePtr] = PHPWASM.child_proc_by_pid[pid].exitCode;
5861
- wakeUp(0);
6114
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
6115
+ wakeUp(pid);
5862
6116
  } else {
5863
6117
  setTimeout(poll, 50);
5864
6118
  }
@@ -7063,8 +7317,8 @@ var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
7063
7317
  return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["Ab"]).apply(null, arguments);
7064
7318
  };
7065
7319
 
7066
- var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
7067
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["Bb"]).apply(null, arguments);
7320
+ var _wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = function() {
7321
+ return (_wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = Module["asm"]["Bb"]).apply(null, arguments);
7068
7322
  };
7069
7323
 
7070
7324
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
@@ -7115,40 +7369,28 @@ var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
7115
7369
  return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Nb"]).apply(null, arguments);
7116
7370
  };
7117
7371
 
7118
- var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
7119
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Ob"]).apply(null, arguments);
7120
- };
7121
-
7122
- var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
7123
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Pb"]).apply(null, arguments);
7124
- };
7125
-
7126
- var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
7127
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Qb"]).apply(null, arguments);
7128
- };
7129
-
7130
7372
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
7131
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Rb"]).apply(null, arguments);
7373
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Ob"]).apply(null, arguments);
7132
7374
  };
7133
7375
 
7134
7376
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
7135
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Sb"]).apply(null, arguments);
7377
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Pb"]).apply(null, arguments);
7136
7378
  };
7137
7379
 
7138
7380
  var ___funcs_on_exit = function() {
7139
- return (___funcs_on_exit = Module["asm"]["Tb"]).apply(null, arguments);
7381
+ return (___funcs_on_exit = Module["asm"]["Qb"]).apply(null, arguments);
7140
7382
  };
7141
7383
 
7142
7384
  var _emscripten_builtin_memalign = function() {
7143
- return (_emscripten_builtin_memalign = Module["asm"]["Ub"]).apply(null, arguments);
7385
+ return (_emscripten_builtin_memalign = Module["asm"]["Rb"]).apply(null, arguments);
7144
7386
  };
7145
7387
 
7146
7388
  var __emscripten_timeout = function() {
7147
- return (__emscripten_timeout = Module["asm"]["Vb"]).apply(null, arguments);
7389
+ return (__emscripten_timeout = Module["asm"]["Sb"]).apply(null, arguments);
7148
7390
  };
7149
7391
 
7150
7392
  var _setThrew = function() {
7151
- return (_setThrew = Module["asm"]["Wb"]).apply(null, arguments);
7393
+ return (_setThrew = Module["asm"]["Tb"]).apply(null, arguments);
7152
7394
  };
7153
7395
 
7154
7396
  var _emscripten_stack_set_limits = function() {
@@ -7164,107 +7406,107 @@ var _emscripten_stack_get_end = function() {
7164
7406
  };
7165
7407
 
7166
7408
  var stackSave = function() {
7167
- return (stackSave = Module["asm"]["Xb"]).apply(null, arguments);
7409
+ return (stackSave = Module["asm"]["Ub"]).apply(null, arguments);
7168
7410
  };
7169
7411
 
7170
7412
  var stackRestore = function() {
7171
- return (stackRestore = Module["asm"]["Yb"]).apply(null, arguments);
7413
+ return (stackRestore = Module["asm"]["Vb"]).apply(null, arguments);
7172
7414
  };
7173
7415
 
7174
7416
  var stackAlloc = function() {
7175
- return (stackAlloc = Module["asm"]["Zb"]).apply(null, arguments);
7417
+ return (stackAlloc = Module["asm"]["Wb"]).apply(null, arguments);
7176
7418
  };
7177
7419
 
7178
7420
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
7179
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["_b"]).apply(null, arguments);
7421
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Xb"]).apply(null, arguments);
7180
7422
  };
7181
7423
 
7182
7424
  var dynCall_ii = Module["dynCall_ii"] = function() {
7183
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["$b"]).apply(null, arguments);
7425
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Yb"]).apply(null, arguments);
7184
7426
  };
7185
7427
 
7186
7428
  var dynCall_vi = Module["dynCall_vi"] = function() {
7187
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["ac"]).apply(null, arguments);
7429
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Zb"]).apply(null, arguments);
7188
7430
  };
7189
7431
 
7190
7432
  var dynCall_vii = Module["dynCall_vii"] = function() {
7191
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["bc"]).apply(null, arguments);
7433
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["_b"]).apply(null, arguments);
7192
7434
  };
7193
7435
 
7194
7436
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
7195
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["cc"]).apply(null, arguments);
7437
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["$b"]).apply(null, arguments);
7196
7438
  };
7197
7439
 
7198
7440
  var dynCall_iii = Module["dynCall_iii"] = function() {
7199
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["dc"]).apply(null, arguments);
7441
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["ac"]).apply(null, arguments);
7200
7442
  };
7201
7443
 
7202
7444
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
7203
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7445
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7204
7446
  };
7205
7447
 
7206
7448
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
7207
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["fc"]).apply(null, arguments);
7449
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
7208
7450
  };
7209
7451
 
7210
7452
  var dynCall_viii = Module["dynCall_viii"] = function() {
7211
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["gc"]).apply(null, arguments);
7453
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["dc"]).apply(null, arguments);
7212
7454
  };
7213
7455
 
7214
7456
  var dynCall_v = Module["dynCall_v"] = function() {
7215
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["hc"]).apply(null, arguments);
7457
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["ec"]).apply(null, arguments);
7216
7458
  };
7217
7459
 
7218
7460
  var dynCall_i = Module["dynCall_i"] = function() {
7219
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["ic"]).apply(null, arguments);
7461
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["fc"]).apply(null, arguments);
7220
7462
  };
7221
7463
 
7222
7464
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
7223
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["jc"]).apply(null, arguments);
7465
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["gc"]).apply(null, arguments);
7224
7466
  };
7225
7467
 
7226
7468
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
7227
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["kc"]).apply(null, arguments);
7469
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["hc"]).apply(null, arguments);
7228
7470
  };
7229
7471
 
7230
7472
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
7231
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["lc"]).apply(null, arguments);
7473
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["ic"]).apply(null, arguments);
7232
7474
  };
7233
7475
 
7234
7476
  var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = function() {
7235
- return (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = Module["asm"]["mc"]).apply(null, arguments);
7477
+ return (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = Module["asm"]["jc"]).apply(null, arguments);
7236
7478
  };
7237
7479
 
7238
7480
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
7239
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["nc"]).apply(null, arguments);
7481
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["kc"]).apply(null, arguments);
7240
7482
  };
7241
7483
 
7242
7484
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
7243
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["oc"]).apply(null, arguments);
7485
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["lc"]).apply(null, arguments);
7244
7486
  };
7245
7487
 
7246
7488
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
7247
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["pc"]).apply(null, arguments);
7489
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["mc"]).apply(null, arguments);
7248
7490
  };
7249
7491
 
7250
7492
  var dynCall_viidii = Module["dynCall_viidii"] = function() {
7251
- return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["qc"]).apply(null, arguments);
7493
+ return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["nc"]).apply(null, arguments);
7252
7494
  };
7253
7495
 
7254
7496
  var _asyncify_start_unwind = function() {
7255
- return (_asyncify_start_unwind = Module["asm"]["rc"]).apply(null, arguments);
7497
+ return (_asyncify_start_unwind = Module["asm"]["oc"]).apply(null, arguments);
7256
7498
  };
7257
7499
 
7258
7500
  var _asyncify_stop_unwind = function() {
7259
- return (_asyncify_stop_unwind = Module["asm"]["sc"]).apply(null, arguments);
7501
+ return (_asyncify_stop_unwind = Module["asm"]["pc"]).apply(null, arguments);
7260
7502
  };
7261
7503
 
7262
7504
  var _asyncify_start_rewind = function() {
7263
- return (_asyncify_start_rewind = Module["asm"]["tc"]).apply(null, arguments);
7505
+ return (_asyncify_start_rewind = Module["asm"]["qc"]).apply(null, arguments);
7264
7506
  };
7265
7507
 
7266
7508
  var _asyncify_stop_rewind = function() {
7267
- return (_asyncify_stop_rewind = Module["asm"]["uc"]).apply(null, arguments);
7509
+ return (_asyncify_stop_rewind = Module["asm"]["rc"]).apply(null, arguments);
7268
7510
  };
7269
7511
 
7270
7512
  function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) {
@@ -7494,6 +7736,8 @@ Module["ccall"] = ccall;
7494
7736
 
7495
7737
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7496
7738
 
7739
+ Module["PROXYFS"] = PROXYFS;
7740
+
7497
7741
  var calledRun;
7498
7742
 
7499
7743
  dependenciesFulfilled = function runCaller() {
@@ -7577,6 +7821,23 @@ PHPLoader['removeRunDependency'] = function (...args) {
7577
7821
  }
7578
7822
  }
7579
7823
 
7824
+ /**
7825
+ * Other exports live in the Dockerfile in:
7826
+ *
7827
+ * * EXTRA_EXPORTED_RUNTIME_METHODS
7828
+ * * EXPORTED_FUNCTIONS
7829
+ *
7830
+ * These exports, however, live in here because:
7831
+ *
7832
+ * * Listing them in EXTRA_EXPORTED_RUNTIME_METHODS doesn't actually
7833
+ * export them. This could be a bug in Emscripten or a consequence of
7834
+ * that option being deprecated.
7835
+ * * Listing them in EXPORTED_FUNCTIONS works, but they are overridden
7836
+ * on every `BasePHP.run()` call. This is a problem because we want to
7837
+ * spy on these calls in some unit tests.
7838
+ *
7839
+ * Therefore, we export them here.
7840
+ */
7580
7841
  PHPLoader['malloc'] = _malloc;
7581
7842
  PHPLoader['free'] = _free;
7582
7843