@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_1.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/8_1_23/php_8_1.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 10994169;
3
+ export const dependenciesTotalSize = 10993532;
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) => {
@@ -5427,6 +5638,7 @@ var allocateUTF8OnStack = stringToUTF8OnStack;
5427
5638
 
5428
5639
  var PHPWASM = {
5429
5640
  init: function() {
5641
+ FS.mkdir("/internal");
5430
5642
  PHPWASM.EventEmitter = ENVIRONMENT_IS_NODE ? require("events").EventEmitter : class EventEmitter {
5431
5643
  constructor() {
5432
5644
  this.listeners = {};
@@ -5531,9 +5743,9 @@ var PHPWASM = {
5531
5743
  return [ promise, cancel ];
5532
5744
  },
5533
5745
  noop: function() {},
5534
- spawnProcess: function(command, args) {
5746
+ spawnProcess: function(command, args, options) {
5535
5747
  if (Module["spawnProcess"]) {
5536
- const spawnedPromise = Module["spawnProcess"](command, args);
5748
+ const spawnedPromise = Module["spawnProcess"](command, args, options);
5537
5749
  return Promise.resolve(spawnedPromise).then((function(spawned) {
5538
5750
  if (!spawned || !spawned.on) {
5539
5751
  throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
@@ -5542,7 +5754,8 @@ var PHPWASM = {
5542
5754
  }));
5543
5755
  }
5544
5756
  if (ENVIRONMENT_IS_NODE) {
5545
- return require("child_process").spawn(command, [], {
5757
+ return require("child_process").spawn(command, args, {
5758
+ ...options,
5546
5759
  shell: true,
5547
5760
  stdio: [ "pipe", "pipe", "pipe" ],
5548
5761
  timeout: 100
@@ -5600,48 +5813,59 @@ function _js_create_input_device(deviceId) {
5600
5813
  }
5601
5814
 
5602
5815
  function _js_fd_read(fd, iov, iovcnt, pnum) {
5603
- var returnCode;
5604
- var stream;
5605
- try {
5606
- stream = SYSCALLS.getStreamFromFD(fd);
5607
- var num = doReadv(stream, iov, iovcnt);
5608
- HEAPU32[pnum >> 2] = num;
5609
- returnCode = 0;
5610
- } catch (e) {
5611
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e;
5612
- returnCode = e.errno;
5816
+ if (Asyncify.state === Asyncify.State.Normal) {
5817
+ var returnCode;
5818
+ var stream;
5819
+ let num = 0;
5820
+ try {
5821
+ stream = SYSCALLS.getStreamFromFD(fd);
5822
+ const num = doReadv(stream, iov, iovcnt);
5823
+ HEAPU32[pnum >> 2] = num;
5824
+ return 0;
5825
+ } catch (e) {
5826
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5827
+ throw e;
5828
+ }
5829
+ if (e.errno !== 6 || !(stream?.fd in PHPWASM.child_proc_by_fd)) {
5830
+ HEAPU32[pnum >> 2] = 0;
5831
+ return returnCode;
5832
+ }
5833
+ }
5613
5834
  }
5614
- if (returnCode === 6 && stream?.fd in PHPWASM.child_proc_by_fd) {
5615
- return Asyncify.handleSleep((function(wakeUp) {
5616
- var retries = 0;
5617
- var interval = 50;
5618
- var timeout = 5e3;
5619
- var maxRetries = timeout / interval;
5620
- function poll() {
5621
- var returnCode;
5622
- var stream;
5623
- try {
5624
- stream = SYSCALLS.getStreamFromFD(fd);
5625
- var num = doReadv(stream, iov, iovcnt);
5626
- HEAPU32[pnum >> 2] = num;
5627
- returnCode = 0;
5628
- } catch (e) {
5629
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5630
- console.error(e);
5631
- throw e;
5632
- }
5633
- returnCode = e.errno;
5634
- }
5635
- if (returnCode !== 6 || ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream)) {
5636
- wakeUp(returnCode);
5637
- } else {
5638
- setTimeout(poll, interval);
5835
+ return Asyncify.handleSleep((function(wakeUp) {
5836
+ var retries = 0;
5837
+ var interval = 50;
5838
+ var timeout = 5e3;
5839
+ var maxRetries = timeout / interval;
5840
+ function poll() {
5841
+ var returnCode;
5842
+ var stream;
5843
+ let num;
5844
+ try {
5845
+ stream = SYSCALLS.getStreamFromFD(fd);
5846
+ num = doReadv(stream, iov, iovcnt);
5847
+ returnCode = 0;
5848
+ } catch (e) {
5849
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5850
+ console.error(e);
5851
+ throw e;
5639
5852
  }
5853
+ returnCode = e.errno;
5640
5854
  }
5641
- poll();
5642
- }));
5643
- }
5644
- return returnCode;
5855
+ const success = returnCode === 0;
5856
+ const failure = ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream);
5857
+ if (success) {
5858
+ HEAPU32[pnum >> 2] = num;
5859
+ wakeUp(0);
5860
+ } else if (failure) {
5861
+ HEAPU32[pnum >> 2] = 0;
5862
+ wakeUp(returnCode === 6 ? 0 : returnCode);
5863
+ } else {
5864
+ setTimeout(poll, interval);
5865
+ }
5866
+ }
5867
+ poll();
5868
+ }));
5645
5869
  }
5646
5870
 
5647
5871
  function _js_module_onMessage(data, bufPtr) {
@@ -5670,7 +5894,7 @@ function _js_module_onMessage(data, bufPtr) {
5670
5894
  }
5671
5895
  }
5672
5896
 
5673
- function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength) {
5897
+ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength, cwdPtr, cwdLength, envPtr, envLength) {
5674
5898
  if (!command) {
5675
5899
  return 1;
5676
5900
  }
@@ -5685,6 +5909,22 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5685
5909
  argsArray.push(UTF8ToString(HEAPU32[charPointer >> 2]));
5686
5910
  }
5687
5911
  }
5912
+ const cwdstr = cwdPtr ? UTF8ToString(cwdPtr) : null;
5913
+ let envObject = null;
5914
+ if (envLength) {
5915
+ envObject = {};
5916
+ for (var i = 0; i < envLength; i++) {
5917
+ const envPointer = envPtr + i * 4;
5918
+ const envEntry = UTF8ToString(HEAPU32[envPointer >> 2]);
5919
+ const splitAt = envEntry.indexOf("=");
5920
+ if (splitAt === -1) {
5921
+ continue;
5922
+ }
5923
+ const key = envEntry.substring(0, splitAt);
5924
+ const value = envEntry.substring(splitAt + 1);
5925
+ envObject[key] = value;
5926
+ }
5927
+ }
5688
5928
  var std = {};
5689
5929
  for (var i = 0; i < descriptorsLength; i++) {
5690
5930
  const descriptorPtr = HEAPU32[descriptorsPtr + i * 4 >> 2];
@@ -5696,7 +5936,17 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5696
5936
  return Asyncify.handleSleep((async wakeUp => {
5697
5937
  let cp;
5698
5938
  try {
5699
- cp = await PHPWASM.spawnProcess(cmdstr, argsArray);
5939
+ const options = {};
5940
+ if (cwdstr !== null) {
5941
+ options.cwd = cwdstr;
5942
+ }
5943
+ if (envObject !== null) {
5944
+ options.env = envObject;
5945
+ }
5946
+ cp = PHPWASM.spawnProcess(cmdstr, argsArray, options);
5947
+ if (cp instanceof Promise) {
5948
+ cp = await cp;
5949
+ }
5700
5950
  } catch (e) {
5701
5951
  if (e.code === "SPAWN_UNSUPPORTED") {
5702
5952
  wakeUp(1);
@@ -5808,7 +6058,10 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5808
6058
  return Asyncify.handleSleep((async wakeUp => {
5809
6059
  let cp;
5810
6060
  try {
5811
- cp = await PHPWASM.spawnProcess(cmdstr, []);
6061
+ cp = PHPWASM.spawnProcess(cmdstr, []);
6062
+ if (cp instanceof Promise) {
6063
+ cp = await cp;
6064
+ }
5812
6065
  } catch (e) {
5813
6066
  console.error(e);
5814
6067
  if (e.code === "SPAWN_UNSUPPORTED") {
@@ -5835,11 +6088,12 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5835
6088
  }));
5836
6089
  }
5837
6090
 
5838
- function _js_process_status(pid) {
6091
+ function _js_process_status(pid, exitCodePtr) {
5839
6092
  if (!PHPWASM.child_proc_by_pid[pid]) {
5840
6093
  return -1;
5841
6094
  }
5842
6095
  if (PHPWASM.child_proc_by_pid[pid].exited) {
6096
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
5843
6097
  return 1;
5844
6098
  }
5845
6099
  return 0;
@@ -5852,8 +6106,8 @@ function _js_waitpid(pid, exitCodePtr) {
5852
6106
  return Asyncify.handleSleep((wakeUp => {
5853
6107
  const poll = function() {
5854
6108
  if (PHPWASM.child_proc_by_pid[pid]?.exited) {
5855
- HEAPU8[exitCodePtr] = PHPWASM.child_proc_by_pid[pid].exitCode;
5856
- wakeUp(0);
6109
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
6110
+ wakeUp(pid);
5857
6111
  } else {
5858
6112
  setTimeout(poll, 50);
5859
6113
  }
@@ -7057,8 +7311,8 @@ var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
7057
7311
  return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["zb"]).apply(null, arguments);
7058
7312
  };
7059
7313
 
7060
- var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
7061
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["Ab"]).apply(null, arguments);
7314
+ var _wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = function() {
7315
+ return (_wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = Module["asm"]["Ab"]).apply(null, arguments);
7062
7316
  };
7063
7317
 
7064
7318
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
@@ -7109,40 +7363,28 @@ var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
7109
7363
  return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Mb"]).apply(null, arguments);
7110
7364
  };
7111
7365
 
7112
- var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
7113
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Nb"]).apply(null, arguments);
7114
- };
7115
-
7116
- var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
7117
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Ob"]).apply(null, arguments);
7118
- };
7119
-
7120
- var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
7121
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Pb"]).apply(null, arguments);
7122
- };
7123
-
7124
7366
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
7125
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Qb"]).apply(null, arguments);
7367
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Nb"]).apply(null, arguments);
7126
7368
  };
7127
7369
 
7128
7370
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
7129
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Rb"]).apply(null, arguments);
7371
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Ob"]).apply(null, arguments);
7130
7372
  };
7131
7373
 
7132
7374
  var ___funcs_on_exit = function() {
7133
- return (___funcs_on_exit = Module["asm"]["Sb"]).apply(null, arguments);
7375
+ return (___funcs_on_exit = Module["asm"]["Pb"]).apply(null, arguments);
7134
7376
  };
7135
7377
 
7136
7378
  var _emscripten_builtin_memalign = function() {
7137
- return (_emscripten_builtin_memalign = Module["asm"]["Tb"]).apply(null, arguments);
7379
+ return (_emscripten_builtin_memalign = Module["asm"]["Qb"]).apply(null, arguments);
7138
7380
  };
7139
7381
 
7140
7382
  var __emscripten_timeout = function() {
7141
- return (__emscripten_timeout = Module["asm"]["Ub"]).apply(null, arguments);
7383
+ return (__emscripten_timeout = Module["asm"]["Rb"]).apply(null, arguments);
7142
7384
  };
7143
7385
 
7144
7386
  var _setThrew = function() {
7145
- return (_setThrew = Module["asm"]["Vb"]).apply(null, arguments);
7387
+ return (_setThrew = Module["asm"]["Sb"]).apply(null, arguments);
7146
7388
  };
7147
7389
 
7148
7390
  var _emscripten_stack_set_limits = function() {
@@ -7158,107 +7400,107 @@ var _emscripten_stack_get_end = function() {
7158
7400
  };
7159
7401
 
7160
7402
  var stackSave = function() {
7161
- return (stackSave = Module["asm"]["Wb"]).apply(null, arguments);
7403
+ return (stackSave = Module["asm"]["Tb"]).apply(null, arguments);
7162
7404
  };
7163
7405
 
7164
7406
  var stackRestore = function() {
7165
- return (stackRestore = Module["asm"]["Xb"]).apply(null, arguments);
7407
+ return (stackRestore = Module["asm"]["Ub"]).apply(null, arguments);
7166
7408
  };
7167
7409
 
7168
7410
  var stackAlloc = function() {
7169
- return (stackAlloc = Module["asm"]["Yb"]).apply(null, arguments);
7411
+ return (stackAlloc = Module["asm"]["Vb"]).apply(null, arguments);
7170
7412
  };
7171
7413
 
7172
7414
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
7173
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7415
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7174
7416
  };
7175
7417
 
7176
7418
  var dynCall_ii = Module["dynCall_ii"] = function() {
7177
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["_b"]).apply(null, arguments);
7419
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Xb"]).apply(null, arguments);
7178
7420
  };
7179
7421
 
7180
7422
  var dynCall_vi = Module["dynCall_vi"] = function() {
7181
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["$b"]).apply(null, arguments);
7423
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Yb"]).apply(null, arguments);
7182
7424
  };
7183
7425
 
7184
7426
  var dynCall_vii = Module["dynCall_vii"] = function() {
7185
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["ac"]).apply(null, arguments);
7427
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Zb"]).apply(null, arguments);
7186
7428
  };
7187
7429
 
7188
7430
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
7189
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7431
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7190
7432
  };
7191
7433
 
7192
7434
  var dynCall_iii = Module["dynCall_iii"] = function() {
7193
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["cc"]).apply(null, arguments);
7435
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["$b"]).apply(null, arguments);
7194
7436
  };
7195
7437
 
7196
7438
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
7197
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["dc"]).apply(null, arguments);
7439
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["ac"]).apply(null, arguments);
7198
7440
  };
7199
7441
 
7200
7442
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
7201
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7443
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7202
7444
  };
7203
7445
 
7204
7446
  var dynCall_viii = Module["dynCall_viii"] = function() {
7205
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["fc"]).apply(null, arguments);
7447
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["cc"]).apply(null, arguments);
7206
7448
  };
7207
7449
 
7208
7450
  var dynCall_v = Module["dynCall_v"] = function() {
7209
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["gc"]).apply(null, arguments);
7451
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["dc"]).apply(null, arguments);
7210
7452
  };
7211
7453
 
7212
7454
  var dynCall_i = Module["dynCall_i"] = function() {
7213
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["hc"]).apply(null, arguments);
7455
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["ec"]).apply(null, arguments);
7214
7456
  };
7215
7457
 
7216
7458
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
7217
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["ic"]).apply(null, arguments);
7459
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["fc"]).apply(null, arguments);
7218
7460
  };
7219
7461
 
7220
7462
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
7221
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["jc"]).apply(null, arguments);
7463
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["gc"]).apply(null, arguments);
7222
7464
  };
7223
7465
 
7224
7466
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
7225
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["kc"]).apply(null, arguments);
7467
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["hc"]).apply(null, arguments);
7226
7468
  };
7227
7469
 
7228
7470
  var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = function() {
7229
- return (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = Module["asm"]["lc"]).apply(null, arguments);
7471
+ return (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = Module["asm"]["ic"]).apply(null, arguments);
7230
7472
  };
7231
7473
 
7232
7474
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
7233
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["mc"]).apply(null, arguments);
7475
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["jc"]).apply(null, arguments);
7234
7476
  };
7235
7477
 
7236
7478
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
7237
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["nc"]).apply(null, arguments);
7479
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["kc"]).apply(null, arguments);
7238
7480
  };
7239
7481
 
7240
7482
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
7241
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["oc"]).apply(null, arguments);
7483
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["lc"]).apply(null, arguments);
7242
7484
  };
7243
7485
 
7244
7486
  var dynCall_viidii = Module["dynCall_viidii"] = function() {
7245
- return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["pc"]).apply(null, arguments);
7487
+ return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["mc"]).apply(null, arguments);
7246
7488
  };
7247
7489
 
7248
7490
  var _asyncify_start_unwind = function() {
7249
- return (_asyncify_start_unwind = Module["asm"]["qc"]).apply(null, arguments);
7491
+ return (_asyncify_start_unwind = Module["asm"]["nc"]).apply(null, arguments);
7250
7492
  };
7251
7493
 
7252
7494
  var _asyncify_stop_unwind = function() {
7253
- return (_asyncify_stop_unwind = Module["asm"]["rc"]).apply(null, arguments);
7495
+ return (_asyncify_stop_unwind = Module["asm"]["oc"]).apply(null, arguments);
7254
7496
  };
7255
7497
 
7256
7498
  var _asyncify_start_rewind = function() {
7257
- return (_asyncify_start_rewind = Module["asm"]["sc"]).apply(null, arguments);
7499
+ return (_asyncify_start_rewind = Module["asm"]["pc"]).apply(null, arguments);
7258
7500
  };
7259
7501
 
7260
7502
  var _asyncify_stop_rewind = function() {
7261
- return (_asyncify_stop_rewind = Module["asm"]["tc"]).apply(null, arguments);
7503
+ return (_asyncify_stop_rewind = Module["asm"]["qc"]).apply(null, arguments);
7262
7504
  };
7263
7505
 
7264
7506
  function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) {
@@ -7488,6 +7730,8 @@ Module["ccall"] = ccall;
7488
7730
 
7489
7731
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7490
7732
 
7733
+ Module["PROXYFS"] = PROXYFS;
7734
+
7491
7735
  var calledRun;
7492
7736
 
7493
7737
  dependenciesFulfilled = function runCaller() {
@@ -7571,6 +7815,23 @@ PHPLoader['removeRunDependency'] = function (...args) {
7571
7815
  }
7572
7816
  }
7573
7817
 
7818
+ /**
7819
+ * Other exports live in the Dockerfile in:
7820
+ *
7821
+ * * EXTRA_EXPORTED_RUNTIME_METHODS
7822
+ * * EXPORTED_FUNCTIONS
7823
+ *
7824
+ * These exports, however, live in here because:
7825
+ *
7826
+ * * Listing them in EXTRA_EXPORTED_RUNTIME_METHODS doesn't actually
7827
+ * export them. This could be a bug in Emscripten or a consequence of
7828
+ * that option being deprecated.
7829
+ * * Listing them in EXPORTED_FUNCTIONS works, but they are overridden
7830
+ * on every `BasePHP.run()` call. This is a problem because we want to
7831
+ * spy on these calls in some unit tests.
7832
+ *
7833
+ * Therefore, we export them here.
7834
+ */
7574
7835
  PHPLoader['malloc'] = _malloc;
7575
7836
  PHPLoader['free'] = _free;
7576
7837