@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_3.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/7_3_33/php_7_3.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 11900257;
3
+ export const dependenciesTotalSize = 11899590;
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) => {
@@ -5412,6 +5623,7 @@ var allocateUTF8OnStack = stringToUTF8OnStack;
5412
5623
 
5413
5624
  var PHPWASM = {
5414
5625
  init: function() {
5626
+ FS.mkdir("/internal");
5415
5627
  PHPWASM.EventEmitter = ENVIRONMENT_IS_NODE ? require("events").EventEmitter : class EventEmitter {
5416
5628
  constructor() {
5417
5629
  this.listeners = {};
@@ -5516,9 +5728,9 @@ var PHPWASM = {
5516
5728
  return [ promise, cancel ];
5517
5729
  },
5518
5730
  noop: function() {},
5519
- spawnProcess: function(command, args) {
5731
+ spawnProcess: function(command, args, options) {
5520
5732
  if (Module["spawnProcess"]) {
5521
- const spawnedPromise = Module["spawnProcess"](command, args);
5733
+ const spawnedPromise = Module["spawnProcess"](command, args, options);
5522
5734
  return Promise.resolve(spawnedPromise).then((function(spawned) {
5523
5735
  if (!spawned || !spawned.on) {
5524
5736
  throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
@@ -5527,7 +5739,8 @@ var PHPWASM = {
5527
5739
  }));
5528
5740
  }
5529
5741
  if (ENVIRONMENT_IS_NODE) {
5530
- return require("child_process").spawn(command, [], {
5742
+ return require("child_process").spawn(command, args, {
5743
+ ...options,
5531
5744
  shell: true,
5532
5745
  stdio: [ "pipe", "pipe", "pipe" ],
5533
5746
  timeout: 100
@@ -5585,48 +5798,59 @@ function _js_create_input_device(deviceId) {
5585
5798
  }
5586
5799
 
5587
5800
  function _js_fd_read(fd, iov, iovcnt, pnum) {
5588
- var returnCode;
5589
- var stream;
5590
- try {
5591
- stream = SYSCALLS.getStreamFromFD(fd);
5592
- var num = doReadv(stream, iov, iovcnt);
5593
- HEAPU32[pnum >> 2] = num;
5594
- returnCode = 0;
5595
- } catch (e) {
5596
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e;
5597
- returnCode = e.errno;
5801
+ if (Asyncify.state === Asyncify.State.Normal) {
5802
+ var returnCode;
5803
+ var stream;
5804
+ let num = 0;
5805
+ try {
5806
+ stream = SYSCALLS.getStreamFromFD(fd);
5807
+ const num = doReadv(stream, iov, iovcnt);
5808
+ HEAPU32[pnum >> 2] = num;
5809
+ return 0;
5810
+ } catch (e) {
5811
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5812
+ throw e;
5813
+ }
5814
+ if (e.errno !== 6 || !(stream?.fd in PHPWASM.child_proc_by_fd)) {
5815
+ HEAPU32[pnum >> 2] = 0;
5816
+ return returnCode;
5817
+ }
5818
+ }
5598
5819
  }
5599
- if (returnCode === 6 && stream?.fd in PHPWASM.child_proc_by_fd) {
5600
- return Asyncify.handleSleep((function(wakeUp) {
5601
- var retries = 0;
5602
- var interval = 50;
5603
- var timeout = 5e3;
5604
- var maxRetries = timeout / interval;
5605
- function poll() {
5606
- var returnCode;
5607
- var stream;
5608
- try {
5609
- stream = SYSCALLS.getStreamFromFD(fd);
5610
- var num = doReadv(stream, iov, iovcnt);
5611
- HEAPU32[pnum >> 2] = num;
5612
- returnCode = 0;
5613
- } catch (e) {
5614
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5615
- console.error(e);
5616
- throw e;
5617
- }
5618
- returnCode = e.errno;
5619
- }
5620
- if (returnCode !== 6 || ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream)) {
5621
- wakeUp(returnCode);
5622
- } else {
5623
- setTimeout(poll, interval);
5820
+ return Asyncify.handleSleep((function(wakeUp) {
5821
+ var retries = 0;
5822
+ var interval = 50;
5823
+ var timeout = 5e3;
5824
+ var maxRetries = timeout / interval;
5825
+ function poll() {
5826
+ var returnCode;
5827
+ var stream;
5828
+ let num;
5829
+ try {
5830
+ stream = SYSCALLS.getStreamFromFD(fd);
5831
+ num = doReadv(stream, iov, iovcnt);
5832
+ returnCode = 0;
5833
+ } catch (e) {
5834
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5835
+ console.error(e);
5836
+ throw e;
5624
5837
  }
5838
+ returnCode = e.errno;
5625
5839
  }
5626
- poll();
5627
- }));
5628
- }
5629
- return returnCode;
5840
+ const success = returnCode === 0;
5841
+ const failure = ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream);
5842
+ if (success) {
5843
+ HEAPU32[pnum >> 2] = num;
5844
+ wakeUp(0);
5845
+ } else if (failure) {
5846
+ HEAPU32[pnum >> 2] = 0;
5847
+ wakeUp(returnCode === 6 ? 0 : returnCode);
5848
+ } else {
5849
+ setTimeout(poll, interval);
5850
+ }
5851
+ }
5852
+ poll();
5853
+ }));
5630
5854
  }
5631
5855
 
5632
5856
  function _js_module_onMessage(data, bufPtr) {
@@ -5655,7 +5879,7 @@ function _js_module_onMessage(data, bufPtr) {
5655
5879
  }
5656
5880
  }
5657
5881
 
5658
- function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength) {
5882
+ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength, cwdPtr, cwdLength, envPtr, envLength) {
5659
5883
  if (!command) {
5660
5884
  return 1;
5661
5885
  }
@@ -5670,6 +5894,22 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5670
5894
  argsArray.push(UTF8ToString(HEAPU32[charPointer >> 2]));
5671
5895
  }
5672
5896
  }
5897
+ const cwdstr = cwdPtr ? UTF8ToString(cwdPtr) : null;
5898
+ let envObject = null;
5899
+ if (envLength) {
5900
+ envObject = {};
5901
+ for (var i = 0; i < envLength; i++) {
5902
+ const envPointer = envPtr + i * 4;
5903
+ const envEntry = UTF8ToString(HEAPU32[envPointer >> 2]);
5904
+ const splitAt = envEntry.indexOf("=");
5905
+ if (splitAt === -1) {
5906
+ continue;
5907
+ }
5908
+ const key = envEntry.substring(0, splitAt);
5909
+ const value = envEntry.substring(splitAt + 1);
5910
+ envObject[key] = value;
5911
+ }
5912
+ }
5673
5913
  var std = {};
5674
5914
  for (var i = 0; i < descriptorsLength; i++) {
5675
5915
  const descriptorPtr = HEAPU32[descriptorsPtr + i * 4 >> 2];
@@ -5681,7 +5921,17 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5681
5921
  return Asyncify.handleSleep((async wakeUp => {
5682
5922
  let cp;
5683
5923
  try {
5684
- cp = await PHPWASM.spawnProcess(cmdstr, argsArray);
5924
+ const options = {};
5925
+ if (cwdstr !== null) {
5926
+ options.cwd = cwdstr;
5927
+ }
5928
+ if (envObject !== null) {
5929
+ options.env = envObject;
5930
+ }
5931
+ cp = PHPWASM.spawnProcess(cmdstr, argsArray, options);
5932
+ if (cp instanceof Promise) {
5933
+ cp = await cp;
5934
+ }
5685
5935
  } catch (e) {
5686
5936
  if (e.code === "SPAWN_UNSUPPORTED") {
5687
5937
  wakeUp(1);
@@ -5793,7 +6043,10 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5793
6043
  return Asyncify.handleSleep((async wakeUp => {
5794
6044
  let cp;
5795
6045
  try {
5796
- cp = await PHPWASM.spawnProcess(cmdstr, []);
6046
+ cp = PHPWASM.spawnProcess(cmdstr, []);
6047
+ if (cp instanceof Promise) {
6048
+ cp = await cp;
6049
+ }
5797
6050
  } catch (e) {
5798
6051
  console.error(e);
5799
6052
  if (e.code === "SPAWN_UNSUPPORTED") {
@@ -5820,11 +6073,12 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5820
6073
  }));
5821
6074
  }
5822
6075
 
5823
- function _js_process_status(pid) {
6076
+ function _js_process_status(pid, exitCodePtr) {
5824
6077
  if (!PHPWASM.child_proc_by_pid[pid]) {
5825
6078
  return -1;
5826
6079
  }
5827
6080
  if (PHPWASM.child_proc_by_pid[pid].exited) {
6081
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
5828
6082
  return 1;
5829
6083
  }
5830
6084
  return 0;
@@ -5837,8 +6091,8 @@ function _js_waitpid(pid, exitCodePtr) {
5837
6091
  return Asyncify.handleSleep((wakeUp => {
5838
6092
  const poll = function() {
5839
6093
  if (PHPWASM.child_proc_by_pid[pid]?.exited) {
5840
- HEAPU8[exitCodePtr] = PHPWASM.child_proc_by_pid[pid].exitCode;
5841
- wakeUp(0);
6094
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
6095
+ wakeUp(pid);
5842
6096
  } else {
5843
6097
  setTimeout(poll, 50);
5844
6098
  }
@@ -7022,8 +7276,8 @@ var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
7022
7276
  return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["tb"]).apply(null, arguments);
7023
7277
  };
7024
7278
 
7025
- var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
7026
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["ub"]).apply(null, arguments);
7279
+ var _wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = function() {
7280
+ return (_wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = Module["asm"]["ub"]).apply(null, arguments);
7027
7281
  };
7028
7282
 
7029
7283
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
@@ -7074,40 +7328,28 @@ var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
7074
7328
  return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Gb"]).apply(null, arguments);
7075
7329
  };
7076
7330
 
7077
- var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
7078
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Hb"]).apply(null, arguments);
7079
- };
7080
-
7081
- var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
7082
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Ib"]).apply(null, arguments);
7083
- };
7084
-
7085
- var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
7086
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Jb"]).apply(null, arguments);
7087
- };
7088
-
7089
7331
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
7090
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Kb"]).apply(null, arguments);
7332
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Hb"]).apply(null, arguments);
7091
7333
  };
7092
7334
 
7093
7335
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
7094
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Lb"]).apply(null, arguments);
7336
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Ib"]).apply(null, arguments);
7095
7337
  };
7096
7338
 
7097
7339
  var ___funcs_on_exit = function() {
7098
- return (___funcs_on_exit = Module["asm"]["Mb"]).apply(null, arguments);
7340
+ return (___funcs_on_exit = Module["asm"]["Jb"]).apply(null, arguments);
7099
7341
  };
7100
7342
 
7101
7343
  var _emscripten_builtin_memalign = function() {
7102
- return (_emscripten_builtin_memalign = Module["asm"]["Nb"]).apply(null, arguments);
7344
+ return (_emscripten_builtin_memalign = Module["asm"]["Kb"]).apply(null, arguments);
7103
7345
  };
7104
7346
 
7105
7347
  var __emscripten_timeout = function() {
7106
- return (__emscripten_timeout = Module["asm"]["Ob"]).apply(null, arguments);
7348
+ return (__emscripten_timeout = Module["asm"]["Lb"]).apply(null, arguments);
7107
7349
  };
7108
7350
 
7109
7351
  var _setThrew = function() {
7110
- return (_setThrew = Module["asm"]["Pb"]).apply(null, arguments);
7352
+ return (_setThrew = Module["asm"]["Mb"]).apply(null, arguments);
7111
7353
  };
7112
7354
 
7113
7355
  var _emscripten_stack_set_limits = function() {
@@ -7123,103 +7365,103 @@ var _emscripten_stack_get_end = function() {
7123
7365
  };
7124
7366
 
7125
7367
  var stackSave = function() {
7126
- return (stackSave = Module["asm"]["Qb"]).apply(null, arguments);
7368
+ return (stackSave = Module["asm"]["Nb"]).apply(null, arguments);
7127
7369
  };
7128
7370
 
7129
7371
  var stackRestore = function() {
7130
- return (stackRestore = Module["asm"]["Rb"]).apply(null, arguments);
7372
+ return (stackRestore = Module["asm"]["Ob"]).apply(null, arguments);
7131
7373
  };
7132
7374
 
7133
7375
  var stackAlloc = function() {
7134
- return (stackAlloc = Module["asm"]["Sb"]).apply(null, arguments);
7376
+ return (stackAlloc = Module["asm"]["Pb"]).apply(null, arguments);
7135
7377
  };
7136
7378
 
7137
7379
  var dynCall_vi = Module["dynCall_vi"] = function() {
7138
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Tb"]).apply(null, arguments);
7380
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Qb"]).apply(null, arguments);
7139
7381
  };
7140
7382
 
7141
7383
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
7142
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Ub"]).apply(null, arguments);
7384
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Rb"]).apply(null, arguments);
7143
7385
  };
7144
7386
 
7145
7387
  var dynCall_ii = Module["dynCall_ii"] = function() {
7146
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Vb"]).apply(null, arguments);
7388
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Sb"]).apply(null, arguments);
7147
7389
  };
7148
7390
 
7149
7391
  var dynCall_vii = Module["dynCall_vii"] = function() {
7150
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Wb"]).apply(null, arguments);
7392
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Tb"]).apply(null, arguments);
7151
7393
  };
7152
7394
 
7153
7395
  var dynCall_iii = Module["dynCall_iii"] = function() {
7154
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Xb"]).apply(null, arguments);
7396
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Ub"]).apply(null, arguments);
7155
7397
  };
7156
7398
 
7157
7399
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
7158
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Yb"]).apply(null, arguments);
7400
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Vb"]).apply(null, arguments);
7159
7401
  };
7160
7402
 
7161
7403
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
7162
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7404
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7163
7405
  };
7164
7406
 
7165
7407
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
7166
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["_b"]).apply(null, arguments);
7408
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["Xb"]).apply(null, arguments);
7167
7409
  };
7168
7410
 
7169
7411
  var dynCall_viii = Module["dynCall_viii"] = function() {
7170
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["$b"]).apply(null, arguments);
7412
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["Yb"]).apply(null, arguments);
7171
7413
  };
7172
7414
 
7173
7415
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
7174
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["ac"]).apply(null, arguments);
7416
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7175
7417
  };
7176
7418
 
7177
7419
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
7178
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7420
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7179
7421
  };
7180
7422
 
7181
7423
  var dynCall_i = Module["dynCall_i"] = function() {
7182
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["cc"]).apply(null, arguments);
7424
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["$b"]).apply(null, arguments);
7183
7425
  };
7184
7426
 
7185
7427
  var dynCall_v = Module["dynCall_v"] = function() {
7186
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["dc"]).apply(null, arguments);
7428
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["ac"]).apply(null, arguments);
7187
7429
  };
7188
7430
 
7189
7431
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
7190
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7432
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7191
7433
  };
7192
7434
 
7193
7435
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
7194
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["fc"]).apply(null, arguments);
7436
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
7195
7437
  };
7196
7438
 
7197
7439
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
7198
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["gc"]).apply(null, arguments);
7440
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["dc"]).apply(null, arguments);
7199
7441
  };
7200
7442
 
7201
7443
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
7202
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["hc"]).apply(null, arguments);
7444
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7203
7445
  };
7204
7446
 
7205
7447
  var dynCall_viidii = Module["dynCall_viidii"] = function() {
7206
- return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["ic"]).apply(null, arguments);
7448
+ return (dynCall_viidii = Module["dynCall_viidii"] = Module["asm"]["fc"]).apply(null, arguments);
7207
7449
  };
7208
7450
 
7209
7451
  var _asyncify_start_unwind = function() {
7210
- return (_asyncify_start_unwind = Module["asm"]["jc"]).apply(null, arguments);
7452
+ return (_asyncify_start_unwind = Module["asm"]["gc"]).apply(null, arguments);
7211
7453
  };
7212
7454
 
7213
7455
  var _asyncify_stop_unwind = function() {
7214
- return (_asyncify_stop_unwind = Module["asm"]["kc"]).apply(null, arguments);
7456
+ return (_asyncify_stop_unwind = Module["asm"]["hc"]).apply(null, arguments);
7215
7457
  };
7216
7458
 
7217
7459
  var _asyncify_start_rewind = function() {
7218
- return (_asyncify_start_rewind = Module["asm"]["lc"]).apply(null, arguments);
7460
+ return (_asyncify_start_rewind = Module["asm"]["ic"]).apply(null, arguments);
7219
7461
  };
7220
7462
 
7221
7463
  var _asyncify_stop_rewind = function() {
7222
- return (_asyncify_stop_rewind = Module["asm"]["mc"]).apply(null, arguments);
7464
+ return (_asyncify_stop_rewind = Module["asm"]["jc"]).apply(null, arguments);
7223
7465
  };
7224
7466
 
7225
7467
  function invoke_vii(index, a1, a2) {
@@ -7438,6 +7680,8 @@ Module["ccall"] = ccall;
7438
7680
 
7439
7681
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7440
7682
 
7683
+ Module["PROXYFS"] = PROXYFS;
7684
+
7441
7685
  var calledRun;
7442
7686
 
7443
7687
  dependenciesFulfilled = function runCaller() {
@@ -7521,6 +7765,23 @@ PHPLoader['removeRunDependency'] = function (...args) {
7521
7765
  }
7522
7766
  }
7523
7767
 
7768
+ /**
7769
+ * Other exports live in the Dockerfile in:
7770
+ *
7771
+ * * EXTRA_EXPORTED_RUNTIME_METHODS
7772
+ * * EXPORTED_FUNCTIONS
7773
+ *
7774
+ * These exports, however, live in here because:
7775
+ *
7776
+ * * Listing them in EXTRA_EXPORTED_RUNTIME_METHODS doesn't actually
7777
+ * export them. This could be a bug in Emscripten or a consequence of
7778
+ * that option being deprecated.
7779
+ * * Listing them in EXPORTED_FUNCTIONS works, but they are overridden
7780
+ * on every `BasePHP.run()` call. This is a problem because we want to
7781
+ * spy on these calls in some unit tests.
7782
+ *
7783
+ * Therefore, we export them here.
7784
+ */
7524
7785
  PHPLoader['malloc'] = _malloc;
7525
7786
  PHPLoader['free'] = _free;
7526
7787