@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_0.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/8_0_30/php_8_0.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 11122204;
3
+ export const dependenciesTotalSize = 11121604;
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) => {
@@ -5411,6 +5622,7 @@ var allocateUTF8OnStack = stringToUTF8OnStack;
5411
5622
 
5412
5623
  var PHPWASM = {
5413
5624
  init: function() {
5625
+ FS.mkdir("/internal");
5414
5626
  PHPWASM.EventEmitter = ENVIRONMENT_IS_NODE ? require("events").EventEmitter : class EventEmitter {
5415
5627
  constructor() {
5416
5628
  this.listeners = {};
@@ -5515,9 +5727,9 @@ var PHPWASM = {
5515
5727
  return [ promise, cancel ];
5516
5728
  },
5517
5729
  noop: function() {},
5518
- spawnProcess: function(command, args) {
5730
+ spawnProcess: function(command, args, options) {
5519
5731
  if (Module["spawnProcess"]) {
5520
- const spawnedPromise = Module["spawnProcess"](command, args);
5732
+ const spawnedPromise = Module["spawnProcess"](command, args, options);
5521
5733
  return Promise.resolve(spawnedPromise).then((function(spawned) {
5522
5734
  if (!spawned || !spawned.on) {
5523
5735
  throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
@@ -5526,7 +5738,8 @@ var PHPWASM = {
5526
5738
  }));
5527
5739
  }
5528
5740
  if (ENVIRONMENT_IS_NODE) {
5529
- return require("child_process").spawn(command, [], {
5741
+ return require("child_process").spawn(command, args, {
5742
+ ...options,
5530
5743
  shell: true,
5531
5744
  stdio: [ "pipe", "pipe", "pipe" ],
5532
5745
  timeout: 100
@@ -5584,48 +5797,59 @@ function _js_create_input_device(deviceId) {
5584
5797
  }
5585
5798
 
5586
5799
  function _js_fd_read(fd, iov, iovcnt, pnum) {
5587
- var returnCode;
5588
- var stream;
5589
- try {
5590
- stream = SYSCALLS.getStreamFromFD(fd);
5591
- var num = doReadv(stream, iov, iovcnt);
5592
- HEAPU32[pnum >> 2] = num;
5593
- returnCode = 0;
5594
- } catch (e) {
5595
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e;
5596
- returnCode = e.errno;
5597
- }
5598
- if (returnCode === 6 && stream?.fd in PHPWASM.child_proc_by_fd) {
5599
- return Asyncify.handleSleep((function(wakeUp) {
5600
- var retries = 0;
5601
- var interval = 50;
5602
- var timeout = 5e3;
5603
- var maxRetries = timeout / interval;
5604
- function poll() {
5605
- var returnCode;
5606
- var stream;
5607
- try {
5608
- stream = SYSCALLS.getStreamFromFD(fd);
5609
- var num = doReadv(stream, iov, iovcnt);
5610
- HEAPU32[pnum >> 2] = num;
5611
- returnCode = 0;
5612
- } catch (e) {
5613
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5614
- console.error(e);
5615
- throw e;
5616
- }
5617
- returnCode = e.errno;
5618
- }
5619
- if (returnCode !== 6 || ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream)) {
5620
- wakeUp(returnCode);
5621
- } else {
5622
- setTimeout(poll, interval);
5623
- }
5800
+ if (Asyncify.state === Asyncify.State.Normal) {
5801
+ var returnCode;
5802
+ var stream;
5803
+ let num = 0;
5804
+ try {
5805
+ stream = SYSCALLS.getStreamFromFD(fd);
5806
+ const num = doReadv(stream, iov, iovcnt);
5807
+ HEAPU32[pnum >> 2] = num;
5808
+ return 0;
5809
+ } catch (e) {
5810
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5811
+ throw e;
5624
5812
  }
5625
- poll();
5626
- }));
5813
+ if (e.errno !== 6 || !(stream?.fd in PHPWASM.child_proc_by_fd)) {
5814
+ HEAPU32[pnum >> 2] = 0;
5815
+ return returnCode;
5816
+ }
5817
+ }
5627
5818
  }
5628
- return returnCode;
5819
+ return Asyncify.handleSleep((function(wakeUp) {
5820
+ var retries = 0;
5821
+ var interval = 50;
5822
+ var timeout = 5e3;
5823
+ var maxRetries = timeout / interval;
5824
+ function poll() {
5825
+ var returnCode;
5826
+ var stream;
5827
+ let num;
5828
+ try {
5829
+ stream = SYSCALLS.getStreamFromFD(fd);
5830
+ num = doReadv(stream, iov, iovcnt);
5831
+ returnCode = 0;
5832
+ } catch (e) {
5833
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5834
+ console.error(e);
5835
+ throw e;
5836
+ }
5837
+ returnCode = e.errno;
5838
+ }
5839
+ const success = returnCode === 0;
5840
+ const failure = ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream);
5841
+ if (success) {
5842
+ HEAPU32[pnum >> 2] = num;
5843
+ wakeUp(0);
5844
+ } else if (failure) {
5845
+ HEAPU32[pnum >> 2] = 0;
5846
+ wakeUp(returnCode === 6 ? 0 : returnCode);
5847
+ } else {
5848
+ setTimeout(poll, interval);
5849
+ }
5850
+ }
5851
+ poll();
5852
+ }));
5629
5853
  }
5630
5854
 
5631
5855
  function _js_module_onMessage(data, bufPtr) {
@@ -5654,7 +5878,7 @@ function _js_module_onMessage(data, bufPtr) {
5654
5878
  }
5655
5879
  }
5656
5880
 
5657
- function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength) {
5881
+ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength, cwdPtr, cwdLength, envPtr, envLength) {
5658
5882
  if (!command) {
5659
5883
  return 1;
5660
5884
  }
@@ -5669,6 +5893,22 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5669
5893
  argsArray.push(UTF8ToString(HEAPU32[charPointer >> 2]));
5670
5894
  }
5671
5895
  }
5896
+ const cwdstr = cwdPtr ? UTF8ToString(cwdPtr) : null;
5897
+ let envObject = null;
5898
+ if (envLength) {
5899
+ envObject = {};
5900
+ for (var i = 0; i < envLength; i++) {
5901
+ const envPointer = envPtr + i * 4;
5902
+ const envEntry = UTF8ToString(HEAPU32[envPointer >> 2]);
5903
+ const splitAt = envEntry.indexOf("=");
5904
+ if (splitAt === -1) {
5905
+ continue;
5906
+ }
5907
+ const key = envEntry.substring(0, splitAt);
5908
+ const value = envEntry.substring(splitAt + 1);
5909
+ envObject[key] = value;
5910
+ }
5911
+ }
5672
5912
  var std = {};
5673
5913
  for (var i = 0; i < descriptorsLength; i++) {
5674
5914
  const descriptorPtr = HEAPU32[descriptorsPtr + i * 4 >> 2];
@@ -5680,7 +5920,17 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5680
5920
  return Asyncify.handleSleep((async wakeUp => {
5681
5921
  let cp;
5682
5922
  try {
5683
- cp = await PHPWASM.spawnProcess(cmdstr, argsArray);
5923
+ const options = {};
5924
+ if (cwdstr !== null) {
5925
+ options.cwd = cwdstr;
5926
+ }
5927
+ if (envObject !== null) {
5928
+ options.env = envObject;
5929
+ }
5930
+ cp = PHPWASM.spawnProcess(cmdstr, argsArray, options);
5931
+ if (cp instanceof Promise) {
5932
+ cp = await cp;
5933
+ }
5684
5934
  } catch (e) {
5685
5935
  if (e.code === "SPAWN_UNSUPPORTED") {
5686
5936
  wakeUp(1);
@@ -5792,7 +6042,10 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5792
6042
  return Asyncify.handleSleep((async wakeUp => {
5793
6043
  let cp;
5794
6044
  try {
5795
- cp = await PHPWASM.spawnProcess(cmdstr, []);
6045
+ cp = PHPWASM.spawnProcess(cmdstr, []);
6046
+ if (cp instanceof Promise) {
6047
+ cp = await cp;
6048
+ }
5796
6049
  } catch (e) {
5797
6050
  console.error(e);
5798
6051
  if (e.code === "SPAWN_UNSUPPORTED") {
@@ -5819,11 +6072,12 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5819
6072
  }));
5820
6073
  }
5821
6074
 
5822
- function _js_process_status(pid) {
6075
+ function _js_process_status(pid, exitCodePtr) {
5823
6076
  if (!PHPWASM.child_proc_by_pid[pid]) {
5824
6077
  return -1;
5825
6078
  }
5826
6079
  if (PHPWASM.child_proc_by_pid[pid].exited) {
6080
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
5827
6081
  return 1;
5828
6082
  }
5829
6083
  return 0;
@@ -5836,8 +6090,8 @@ function _js_waitpid(pid, exitCodePtr) {
5836
6090
  return Asyncify.handleSleep((wakeUp => {
5837
6091
  const poll = function() {
5838
6092
  if (PHPWASM.child_proc_by_pid[pid]?.exited) {
5839
- HEAPU8[exitCodePtr] = PHPWASM.child_proc_by_pid[pid].exitCode;
5840
- wakeUp(0);
6093
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
6094
+ wakeUp(pid);
5841
6095
  } else {
5842
6096
  setTimeout(poll, 50);
5843
6097
  }
@@ -7028,8 +7282,8 @@ var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
7028
7282
  return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["wb"]).apply(null, arguments);
7029
7283
  };
7030
7284
 
7031
- var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
7032
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["xb"]).apply(null, arguments);
7285
+ var _wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = function() {
7286
+ return (_wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = Module["asm"]["xb"]).apply(null, arguments);
7033
7287
  };
7034
7288
 
7035
7289
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
@@ -7080,40 +7334,28 @@ var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
7080
7334
  return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Jb"]).apply(null, arguments);
7081
7335
  };
7082
7336
 
7083
- var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
7084
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Kb"]).apply(null, arguments);
7085
- };
7086
-
7087
- var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
7088
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Lb"]).apply(null, arguments);
7089
- };
7090
-
7091
- var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
7092
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Mb"]).apply(null, arguments);
7093
- };
7094
-
7095
7337
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
7096
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Nb"]).apply(null, arguments);
7338
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Kb"]).apply(null, arguments);
7097
7339
  };
7098
7340
 
7099
7341
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
7100
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Ob"]).apply(null, arguments);
7342
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Lb"]).apply(null, arguments);
7101
7343
  };
7102
7344
 
7103
7345
  var ___funcs_on_exit = function() {
7104
- return (___funcs_on_exit = Module["asm"]["Pb"]).apply(null, arguments);
7346
+ return (___funcs_on_exit = Module["asm"]["Mb"]).apply(null, arguments);
7105
7347
  };
7106
7348
 
7107
7349
  var _emscripten_builtin_memalign = function() {
7108
- return (_emscripten_builtin_memalign = Module["asm"]["Qb"]).apply(null, arguments);
7350
+ return (_emscripten_builtin_memalign = Module["asm"]["Nb"]).apply(null, arguments);
7109
7351
  };
7110
7352
 
7111
7353
  var __emscripten_timeout = function() {
7112
- return (__emscripten_timeout = Module["asm"]["Rb"]).apply(null, arguments);
7354
+ return (__emscripten_timeout = Module["asm"]["Ob"]).apply(null, arguments);
7113
7355
  };
7114
7356
 
7115
7357
  var _setThrew = function() {
7116
- return (_setThrew = Module["asm"]["Sb"]).apply(null, arguments);
7358
+ return (_setThrew = Module["asm"]["Pb"]).apply(null, arguments);
7117
7359
  };
7118
7360
 
7119
7361
  var _emscripten_stack_set_limits = function() {
@@ -7129,107 +7371,107 @@ var _emscripten_stack_get_end = function() {
7129
7371
  };
7130
7372
 
7131
7373
  var stackSave = function() {
7132
- return (stackSave = Module["asm"]["Tb"]).apply(null, arguments);
7374
+ return (stackSave = Module["asm"]["Qb"]).apply(null, arguments);
7133
7375
  };
7134
7376
 
7135
7377
  var stackRestore = function() {
7136
- return (stackRestore = Module["asm"]["Ub"]).apply(null, arguments);
7378
+ return (stackRestore = Module["asm"]["Rb"]).apply(null, arguments);
7137
7379
  };
7138
7380
 
7139
7381
  var stackAlloc = function() {
7140
- return (stackAlloc = Module["asm"]["Vb"]).apply(null, arguments);
7382
+ return (stackAlloc = Module["asm"]["Sb"]).apply(null, arguments);
7141
7383
  };
7142
7384
 
7143
7385
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
7144
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7386
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Tb"]).apply(null, arguments);
7145
7387
  };
7146
7388
 
7147
7389
  var dynCall_ii = Module["dynCall_ii"] = function() {
7148
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Xb"]).apply(null, arguments);
7390
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Ub"]).apply(null, arguments);
7149
7391
  };
7150
7392
 
7151
7393
  var dynCall_vi = Module["dynCall_vi"] = function() {
7152
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Yb"]).apply(null, arguments);
7394
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Vb"]).apply(null, arguments);
7153
7395
  };
7154
7396
 
7155
7397
  var dynCall_vii = Module["dynCall_vii"] = function() {
7156
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Zb"]).apply(null, arguments);
7398
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Wb"]).apply(null, arguments);
7157
7399
  };
7158
7400
 
7159
7401
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
7160
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7402
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["Xb"]).apply(null, arguments);
7161
7403
  };
7162
7404
 
7163
7405
  var dynCall_iii = Module["dynCall_iii"] = function() {
7164
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["$b"]).apply(null, arguments);
7406
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Yb"]).apply(null, arguments);
7165
7407
  };
7166
7408
 
7167
7409
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
7168
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["ac"]).apply(null, arguments);
7410
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7169
7411
  };
7170
7412
 
7171
7413
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
7172
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7414
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7173
7415
  };
7174
7416
 
7175
7417
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
7176
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
7418
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["$b"]).apply(null, arguments);
7177
7419
  };
7178
7420
 
7179
7421
  var dynCall_i = Module["dynCall_i"] = function() {
7180
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["dc"]).apply(null, arguments);
7422
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["ac"]).apply(null, arguments);
7181
7423
  };
7182
7424
 
7183
7425
  var dynCall_viii = Module["dynCall_viii"] = function() {
7184
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["ec"]).apply(null, arguments);
7426
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["bc"]).apply(null, arguments);
7185
7427
  };
7186
7428
 
7187
7429
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
7188
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["fc"]).apply(null, arguments);
7430
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["cc"]).apply(null, arguments);
7189
7431
  };
7190
7432
 
7191
7433
  var dynCall_v = Module["dynCall_v"] = function() {
7192
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["gc"]).apply(null, arguments);
7434
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["dc"]).apply(null, arguments);
7193
7435
  };
7194
7436
 
7195
7437
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
7196
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["hc"]).apply(null, arguments);
7438
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7197
7439
  };
7198
7440
 
7199
7441
  var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = function() {
7200
- return (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = Module["asm"]["ic"]).apply(null, arguments);
7442
+ return (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = Module["asm"]["fc"]).apply(null, arguments);
7201
7443
  };
7202
7444
 
7203
7445
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
7204
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["jc"]).apply(null, arguments);
7446
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["gc"]).apply(null, arguments);
7205
7447
  };
7206
7448
 
7207
7449
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
7208
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["kc"]).apply(null, arguments);
7450
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["hc"]).apply(null, arguments);
7209
7451
  };
7210
7452
 
7211
7453
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
7212
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["lc"]).apply(null, arguments);
7454
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["ic"]).apply(null, arguments);
7213
7455
  };
7214
7456
 
7215
7457
  var dynCall_viidii = Module["dynCall_viidii"] = function() {
7216
- return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["mc"]).apply(null, arguments);
7458
+ return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["jc"]).apply(null, arguments);
7217
7459
  };
7218
7460
 
7219
7461
  var _asyncify_start_unwind = function() {
7220
- return (_asyncify_start_unwind = Module["asm"]["nc"]).apply(null, arguments);
7462
+ return (_asyncify_start_unwind = Module["asm"]["kc"]).apply(null, arguments);
7221
7463
  };
7222
7464
 
7223
7465
  var _asyncify_stop_unwind = function() {
7224
- return (_asyncify_stop_unwind = Module["asm"]["oc"]).apply(null, arguments);
7466
+ return (_asyncify_stop_unwind = Module["asm"]["lc"]).apply(null, arguments);
7225
7467
  };
7226
7468
 
7227
7469
  var _asyncify_start_rewind = function() {
7228
- return (_asyncify_start_rewind = Module["asm"]["pc"]).apply(null, arguments);
7470
+ return (_asyncify_start_rewind = Module["asm"]["mc"]).apply(null, arguments);
7229
7471
  };
7230
7472
 
7231
7473
  var _asyncify_stop_rewind = function() {
7232
- return (_asyncify_stop_rewind = Module["asm"]["qc"]).apply(null, arguments);
7474
+ return (_asyncify_stop_rewind = Module["asm"]["nc"]).apply(null, arguments);
7233
7475
  };
7234
7476
 
7235
7477
  function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) {
@@ -7459,6 +7701,8 @@ Module["ccall"] = ccall;
7459
7701
 
7460
7702
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7461
7703
 
7704
+ Module["PROXYFS"] = PROXYFS;
7705
+
7462
7706
  var calledRun;
7463
7707
 
7464
7708
  dependenciesFulfilled = function runCaller() {
@@ -7542,6 +7786,23 @@ PHPLoader['removeRunDependency'] = function (...args) {
7542
7786
  }
7543
7787
  }
7544
7788
 
7789
+ /**
7790
+ * Other exports live in the Dockerfile in:
7791
+ *
7792
+ * * EXTRA_EXPORTED_RUNTIME_METHODS
7793
+ * * EXPORTED_FUNCTIONS
7794
+ *
7795
+ * These exports, however, live in here because:
7796
+ *
7797
+ * * Listing them in EXTRA_EXPORTED_RUNTIME_METHODS doesn't actually
7798
+ * export them. This could be a bug in Emscripten or a consequence of
7799
+ * that option being deprecated.
7800
+ * * Listing them in EXPORTED_FUNCTIONS works, but they are overridden
7801
+ * on every `BasePHP.run()` call. This is a problem because we want to
7802
+ * spy on these calls in some unit tests.
7803
+ *
7804
+ * Therefore, we export them here.
7805
+ */
7545
7806
  PHPLoader['malloc'] = _malloc;
7546
7807
  PHPLoader['free'] = _free;
7547
7808