@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_7_4.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/7_4_33/php_7_4.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 11983432;
3
+ export const dependenciesTotalSize = 11982796;
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
  }
@@ -7027,8 +7281,8 @@ var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
7027
7281
  return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["vb"]).apply(null, arguments);
7028
7282
  };
7029
7283
 
7030
- var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
7031
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["wb"]).apply(null, arguments);
7284
+ var _wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = function() {
7285
+ return (_wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = Module["asm"]["wb"]).apply(null, arguments);
7032
7286
  };
7033
7287
 
7034
7288
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
@@ -7079,40 +7333,28 @@ var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
7079
7333
  return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Ib"]).apply(null, arguments);
7080
7334
  };
7081
7335
 
7082
- var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
7083
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Jb"]).apply(null, arguments);
7084
- };
7085
-
7086
- var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
7087
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Kb"]).apply(null, arguments);
7088
- };
7089
-
7090
- var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
7091
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Lb"]).apply(null, arguments);
7092
- };
7093
-
7094
7336
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
7095
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Mb"]).apply(null, arguments);
7337
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Jb"]).apply(null, arguments);
7096
7338
  };
7097
7339
 
7098
7340
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
7099
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Nb"]).apply(null, arguments);
7341
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Kb"]).apply(null, arguments);
7100
7342
  };
7101
7343
 
7102
7344
  var ___funcs_on_exit = function() {
7103
- return (___funcs_on_exit = Module["asm"]["Ob"]).apply(null, arguments);
7345
+ return (___funcs_on_exit = Module["asm"]["Lb"]).apply(null, arguments);
7104
7346
  };
7105
7347
 
7106
7348
  var _emscripten_builtin_memalign = function() {
7107
- return (_emscripten_builtin_memalign = Module["asm"]["Pb"]).apply(null, arguments);
7349
+ return (_emscripten_builtin_memalign = Module["asm"]["Mb"]).apply(null, arguments);
7108
7350
  };
7109
7351
 
7110
7352
  var __emscripten_timeout = function() {
7111
- return (__emscripten_timeout = Module["asm"]["Qb"]).apply(null, arguments);
7353
+ return (__emscripten_timeout = Module["asm"]["Nb"]).apply(null, arguments);
7112
7354
  };
7113
7355
 
7114
7356
  var _setThrew = function() {
7115
- return (_setThrew = Module["asm"]["Rb"]).apply(null, arguments);
7357
+ return (_setThrew = Module["asm"]["Ob"]).apply(null, arguments);
7116
7358
  };
7117
7359
 
7118
7360
  var _emscripten_stack_set_limits = function() {
@@ -7128,103 +7370,103 @@ var _emscripten_stack_get_end = function() {
7128
7370
  };
7129
7371
 
7130
7372
  var stackSave = function() {
7131
- return (stackSave = Module["asm"]["Sb"]).apply(null, arguments);
7373
+ return (stackSave = Module["asm"]["Pb"]).apply(null, arguments);
7132
7374
  };
7133
7375
 
7134
7376
  var stackRestore = function() {
7135
- return (stackRestore = Module["asm"]["Tb"]).apply(null, arguments);
7377
+ return (stackRestore = Module["asm"]["Qb"]).apply(null, arguments);
7136
7378
  };
7137
7379
 
7138
7380
  var stackAlloc = function() {
7139
- return (stackAlloc = Module["asm"]["Ub"]).apply(null, arguments);
7381
+ return (stackAlloc = Module["asm"]["Rb"]).apply(null, arguments);
7140
7382
  };
7141
7383
 
7142
7384
  var dynCall_vi = Module["dynCall_vi"] = function() {
7143
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Vb"]).apply(null, arguments);
7385
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Sb"]).apply(null, arguments);
7144
7386
  };
7145
7387
 
7146
7388
  var dynCall_vii = Module["dynCall_vii"] = function() {
7147
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Wb"]).apply(null, arguments);
7389
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Tb"]).apply(null, arguments);
7148
7390
  };
7149
7391
 
7150
7392
  var dynCall_viii = Module["dynCall_viii"] = function() {
7151
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["Xb"]).apply(null, arguments);
7393
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["Ub"]).apply(null, arguments);
7152
7394
  };
7153
7395
 
7154
7396
  var dynCall_ii = Module["dynCall_ii"] = function() {
7155
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Yb"]).apply(null, arguments);
7397
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Vb"]).apply(null, arguments);
7156
7398
  };
7157
7399
 
7158
7400
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
7159
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7401
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7160
7402
  };
7161
7403
 
7162
7404
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
7163
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7405
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Xb"]).apply(null, arguments);
7164
7406
  };
7165
7407
 
7166
7408
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
7167
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["$b"]).apply(null, arguments);
7409
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Yb"]).apply(null, arguments);
7168
7410
  };
7169
7411
 
7170
7412
  var dynCall_iii = Module["dynCall_iii"] = function() {
7171
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["ac"]).apply(null, arguments);
7413
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Zb"]).apply(null, arguments);
7172
7414
  };
7173
7415
 
7174
7416
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
7175
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7417
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7176
7418
  };
7177
7419
 
7178
7420
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
7179
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
7421
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["$b"]).apply(null, arguments);
7180
7422
  };
7181
7423
 
7182
7424
  var dynCall_i = Module["dynCall_i"] = function() {
7183
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["dc"]).apply(null, arguments);
7425
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["ac"]).apply(null, arguments);
7184
7426
  };
7185
7427
 
7186
7428
  var dynCall_v = Module["dynCall_v"] = function() {
7187
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["ec"]).apply(null, arguments);
7429
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["bc"]).apply(null, arguments);
7188
7430
  };
7189
7431
 
7190
7432
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
7191
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["fc"]).apply(null, arguments);
7433
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["cc"]).apply(null, arguments);
7192
7434
  };
7193
7435
 
7194
7436
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
7195
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["gc"]).apply(null, arguments);
7437
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["dc"]).apply(null, arguments);
7196
7438
  };
7197
7439
 
7198
7440
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
7199
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["hc"]).apply(null, arguments);
7441
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7200
7442
  };
7201
7443
 
7202
7444
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
7203
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["ic"]).apply(null, arguments);
7445
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["fc"]).apply(null, arguments);
7204
7446
  };
7205
7447
 
7206
7448
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
7207
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["jc"]).apply(null, arguments);
7449
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["gc"]).apply(null, arguments);
7208
7450
  };
7209
7451
 
7210
7452
  var dynCall_viidii = Module["dynCall_viidii"] = function() {
7211
- return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["kc"]).apply(null, arguments);
7453
+ return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["hc"]).apply(null, arguments);
7212
7454
  };
7213
7455
 
7214
7456
  var _asyncify_start_unwind = function() {
7215
- return (_asyncify_start_unwind = Module["asm"]["lc"]).apply(null, arguments);
7457
+ return (_asyncify_start_unwind = Module["asm"]["ic"]).apply(null, arguments);
7216
7458
  };
7217
7459
 
7218
7460
  var _asyncify_stop_unwind = function() {
7219
- return (_asyncify_stop_unwind = Module["asm"]["mc"]).apply(null, arguments);
7461
+ return (_asyncify_stop_unwind = Module["asm"]["jc"]).apply(null, arguments);
7220
7462
  };
7221
7463
 
7222
7464
  var _asyncify_start_rewind = function() {
7223
- return (_asyncify_start_rewind = Module["asm"]["nc"]).apply(null, arguments);
7465
+ return (_asyncify_start_rewind = Module["asm"]["kc"]).apply(null, arguments);
7224
7466
  };
7225
7467
 
7226
7468
  var _asyncify_stop_rewind = function() {
7227
- return (_asyncify_stop_rewind = Module["asm"]["oc"]).apply(null, arguments);
7469
+ return (_asyncify_stop_rewind = Module["asm"]["lc"]).apply(null, arguments);
7228
7470
  };
7229
7471
 
7230
7472
  function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) {
@@ -7443,6 +7685,8 @@ Module["ccall"] = ccall;
7443
7685
 
7444
7686
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7445
7687
 
7688
+ Module["PROXYFS"] = PROXYFS;
7689
+
7446
7690
  var calledRun;
7447
7691
 
7448
7692
  dependenciesFulfilled = function runCaller() {
@@ -7526,6 +7770,23 @@ PHPLoader['removeRunDependency'] = function (...args) {
7526
7770
  }
7527
7771
  }
7528
7772
 
7773
+ /**
7774
+ * Other exports live in the Dockerfile in:
7775
+ *
7776
+ * * EXTRA_EXPORTED_RUNTIME_METHODS
7777
+ * * EXPORTED_FUNCTIONS
7778
+ *
7779
+ * These exports, however, live in here because:
7780
+ *
7781
+ * * Listing them in EXTRA_EXPORTED_RUNTIME_METHODS doesn't actually
7782
+ * export them. This could be a bug in Emscripten or a consequence of
7783
+ * that option being deprecated.
7784
+ * * Listing them in EXPORTED_FUNCTIONS works, but they are overridden
7785
+ * on every `BasePHP.run()` call. This is a problem because we want to
7786
+ * spy on these calls in some unit tests.
7787
+ *
7788
+ * Therefore, we export them here.
7789
+ */
7529
7790
  PHPLoader['malloc'] = _malloc;
7530
7791
  PHPLoader['free'] = _free;
7531
7792