@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_1.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const dependencyFilename = __dirname + '/7_1_30/php_7_1.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 11592748;
3
+ export const dependenciesTotalSize = 11592136;
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) => {
@@ -5280,6 +5491,7 @@ var allocateUTF8OnStack = stringToUTF8OnStack;
5280
5491
 
5281
5492
  var PHPWASM = {
5282
5493
  init: function() {
5494
+ FS.mkdir("/internal");
5283
5495
  PHPWASM.EventEmitter = ENVIRONMENT_IS_NODE ? require("events").EventEmitter : class EventEmitter {
5284
5496
  constructor() {
5285
5497
  this.listeners = {};
@@ -5384,9 +5596,9 @@ var PHPWASM = {
5384
5596
  return [ promise, cancel ];
5385
5597
  },
5386
5598
  noop: function() {},
5387
- spawnProcess: function(command, args) {
5599
+ spawnProcess: function(command, args, options) {
5388
5600
  if (Module["spawnProcess"]) {
5389
- const spawnedPromise = Module["spawnProcess"](command, args);
5601
+ const spawnedPromise = Module["spawnProcess"](command, args, options);
5390
5602
  return Promise.resolve(spawnedPromise).then((function(spawned) {
5391
5603
  if (!spawned || !spawned.on) {
5392
5604
  throw new Error("spawnProcess() must return an EventEmitter but returned a different type.");
@@ -5395,7 +5607,8 @@ var PHPWASM = {
5395
5607
  }));
5396
5608
  }
5397
5609
  if (ENVIRONMENT_IS_NODE) {
5398
- return require("child_process").spawn(command, [], {
5610
+ return require("child_process").spawn(command, args, {
5611
+ ...options,
5399
5612
  shell: true,
5400
5613
  stdio: [ "pipe", "pipe", "pipe" ],
5401
5614
  timeout: 100
@@ -5453,48 +5666,59 @@ function _js_create_input_device(deviceId) {
5453
5666
  }
5454
5667
 
5455
5668
  function _js_fd_read(fd, iov, iovcnt, pnum) {
5456
- var returnCode;
5457
- var stream;
5458
- try {
5459
- stream = SYSCALLS.getStreamFromFD(fd);
5460
- var num = doReadv(stream, iov, iovcnt);
5461
- HEAPU32[pnum >> 2] = num;
5462
- returnCode = 0;
5463
- } catch (e) {
5464
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e;
5465
- returnCode = e.errno;
5669
+ if (Asyncify.state === Asyncify.State.Normal) {
5670
+ var returnCode;
5671
+ var stream;
5672
+ let num = 0;
5673
+ try {
5674
+ stream = SYSCALLS.getStreamFromFD(fd);
5675
+ const num = doReadv(stream, iov, iovcnt);
5676
+ HEAPU32[pnum >> 2] = num;
5677
+ return 0;
5678
+ } catch (e) {
5679
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5680
+ throw e;
5681
+ }
5682
+ if (e.errno !== 6 || !(stream?.fd in PHPWASM.child_proc_by_fd)) {
5683
+ HEAPU32[pnum >> 2] = 0;
5684
+ return returnCode;
5685
+ }
5686
+ }
5466
5687
  }
5467
- if (returnCode === 6 && stream?.fd in PHPWASM.child_proc_by_fd) {
5468
- return Asyncify.handleSleep((function(wakeUp) {
5469
- var retries = 0;
5470
- var interval = 50;
5471
- var timeout = 5e3;
5472
- var maxRetries = timeout / interval;
5473
- function poll() {
5474
- var returnCode;
5475
- var stream;
5476
- try {
5477
- stream = SYSCALLS.getStreamFromFD(fd);
5478
- var num = doReadv(stream, iov, iovcnt);
5479
- HEAPU32[pnum >> 2] = num;
5480
- returnCode = 0;
5481
- } catch (e) {
5482
- if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5483
- console.error(e);
5484
- throw e;
5485
- }
5486
- returnCode = e.errno;
5487
- }
5488
- if (returnCode !== 6 || ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream)) {
5489
- wakeUp(returnCode);
5490
- } else {
5491
- setTimeout(poll, interval);
5688
+ return Asyncify.handleSleep((function(wakeUp) {
5689
+ var retries = 0;
5690
+ var interval = 50;
5691
+ var timeout = 5e3;
5692
+ var maxRetries = timeout / interval;
5693
+ function poll() {
5694
+ var returnCode;
5695
+ var stream;
5696
+ let num;
5697
+ try {
5698
+ stream = SYSCALLS.getStreamFromFD(fd);
5699
+ num = doReadv(stream, iov, iovcnt);
5700
+ returnCode = 0;
5701
+ } catch (e) {
5702
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError")) {
5703
+ console.error(e);
5704
+ throw e;
5492
5705
  }
5706
+ returnCode = e.errno;
5493
5707
  }
5494
- poll();
5495
- }));
5496
- }
5497
- return returnCode;
5708
+ const success = returnCode === 0;
5709
+ const failure = ++retries > maxRetries || !(fd in PHPWASM.child_proc_by_fd) || PHPWASM.child_proc_by_fd[fd]?.exited || FS.isClosed(stream);
5710
+ if (success) {
5711
+ HEAPU32[pnum >> 2] = num;
5712
+ wakeUp(0);
5713
+ } else if (failure) {
5714
+ HEAPU32[pnum >> 2] = 0;
5715
+ wakeUp(returnCode === 6 ? 0 : returnCode);
5716
+ } else {
5717
+ setTimeout(poll, interval);
5718
+ }
5719
+ }
5720
+ poll();
5721
+ }));
5498
5722
  }
5499
5723
 
5500
5724
  function _js_module_onMessage(data, bufPtr) {
@@ -5523,7 +5747,7 @@ function _js_module_onMessage(data, bufPtr) {
5523
5747
  }
5524
5748
  }
5525
5749
 
5526
- function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength) {
5750
+ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descriptorsLength, cwdPtr, cwdLength, envPtr, envLength) {
5527
5751
  if (!command) {
5528
5752
  return 1;
5529
5753
  }
@@ -5538,6 +5762,22 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5538
5762
  argsArray.push(UTF8ToString(HEAPU32[charPointer >> 2]));
5539
5763
  }
5540
5764
  }
5765
+ const cwdstr = cwdPtr ? UTF8ToString(cwdPtr) : null;
5766
+ let envObject = null;
5767
+ if (envLength) {
5768
+ envObject = {};
5769
+ for (var i = 0; i < envLength; i++) {
5770
+ const envPointer = envPtr + i * 4;
5771
+ const envEntry = UTF8ToString(HEAPU32[envPointer >> 2]);
5772
+ const splitAt = envEntry.indexOf("=");
5773
+ if (splitAt === -1) {
5774
+ continue;
5775
+ }
5776
+ const key = envEntry.substring(0, splitAt);
5777
+ const value = envEntry.substring(splitAt + 1);
5778
+ envObject[key] = value;
5779
+ }
5780
+ }
5541
5781
  var std = {};
5542
5782
  for (var i = 0; i < descriptorsLength; i++) {
5543
5783
  const descriptorPtr = HEAPU32[descriptorsPtr + i * 4 >> 2];
@@ -5549,7 +5789,17 @@ function _js_open_process(command, argsPtr, argsLength, descriptorsPtr, descript
5549
5789
  return Asyncify.handleSleep((async wakeUp => {
5550
5790
  let cp;
5551
5791
  try {
5552
- cp = await PHPWASM.spawnProcess(cmdstr, argsArray);
5792
+ const options = {};
5793
+ if (cwdstr !== null) {
5794
+ options.cwd = cwdstr;
5795
+ }
5796
+ if (envObject !== null) {
5797
+ options.env = envObject;
5798
+ }
5799
+ cp = PHPWASM.spawnProcess(cmdstr, argsArray, options);
5800
+ if (cp instanceof Promise) {
5801
+ cp = await cp;
5802
+ }
5553
5803
  } catch (e) {
5554
5804
  if (e.code === "SPAWN_UNSUPPORTED") {
5555
5805
  wakeUp(1);
@@ -5661,7 +5911,10 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5661
5911
  return Asyncify.handleSleep((async wakeUp => {
5662
5912
  let cp;
5663
5913
  try {
5664
- cp = await PHPWASM.spawnProcess(cmdstr, []);
5914
+ cp = PHPWASM.spawnProcess(cmdstr, []);
5915
+ if (cp instanceof Promise) {
5916
+ cp = await cp;
5917
+ }
5665
5918
  } catch (e) {
5666
5919
  console.error(e);
5667
5920
  if (e.code === "SPAWN_UNSUPPORTED") {
@@ -5688,11 +5941,12 @@ function _js_popen_to_file(command, mode, exitCodePtr) {
5688
5941
  }));
5689
5942
  }
5690
5943
 
5691
- function _js_process_status(pid) {
5944
+ function _js_process_status(pid, exitCodePtr) {
5692
5945
  if (!PHPWASM.child_proc_by_pid[pid]) {
5693
5946
  return -1;
5694
5947
  }
5695
5948
  if (PHPWASM.child_proc_by_pid[pid].exited) {
5949
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
5696
5950
  return 1;
5697
5951
  }
5698
5952
  return 0;
@@ -5705,8 +5959,8 @@ function _js_waitpid(pid, exitCodePtr) {
5705
5959
  return Asyncify.handleSleep((wakeUp => {
5706
5960
  const poll = function() {
5707
5961
  if (PHPWASM.child_proc_by_pid[pid]?.exited) {
5708
- HEAPU8[exitCodePtr] = PHPWASM.child_proc_by_pid[pid].exitCode;
5709
- wakeUp(0);
5962
+ HEAPU32[exitCodePtr >> 2] = PHPWASM.child_proc_by_pid[pid].exitCode;
5963
+ wakeUp(pid);
5710
5964
  } else {
5711
5965
  setTimeout(poll, 50);
5712
5966
  }
@@ -6888,8 +7142,8 @@ var _wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = function() {
6888
7142
  return (_wasm_add_SERVER_entry = Module["_wasm_add_SERVER_entry"] = Module["asm"]["qb"]).apply(null, arguments);
6889
7143
  };
6890
7144
 
6891
- var _wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = function() {
6892
- return (_wasm_add_uploaded_file = Module["_wasm_add_uploaded_file"] = Module["asm"]["rb"]).apply(null, arguments);
7145
+ var _wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = function() {
7146
+ return (_wasm_add_ENV_entry = Module["_wasm_add_ENV_entry"] = Module["asm"]["rb"]).apply(null, arguments);
6893
7147
  };
6894
7148
 
6895
7149
  var _wasm_set_query_string = Module["_wasm_set_query_string"] = function() {
@@ -6940,40 +7194,28 @@ var _wasm_set_request_port = Module["_wasm_set_request_port"] = function() {
6940
7194
  return (_wasm_set_request_port = Module["_wasm_set_request_port"] = Module["asm"]["Db"]).apply(null, arguments);
6941
7195
  };
6942
7196
 
6943
- var _phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = function() {
6944
- return (_phpwasm_init_uploaded_files_hash = Module["_phpwasm_init_uploaded_files_hash"] = Module["asm"]["Eb"]).apply(null, arguments);
6945
- };
6946
-
6947
- var _phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = function() {
6948
- return (_phpwasm_register_uploaded_file = Module["_phpwasm_register_uploaded_file"] = Module["asm"]["Fb"]).apply(null, arguments);
6949
- };
6950
-
6951
- var _phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = function() {
6952
- return (_phpwasm_destroy_uploaded_files_hash = Module["_phpwasm_destroy_uploaded_files_hash"] = Module["asm"]["Gb"]).apply(null, arguments);
6953
- };
6954
-
6955
7197
  var _wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = function() {
6956
- return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Hb"]).apply(null, arguments);
7198
+ return (_wasm_sapi_handle_request = Module["_wasm_sapi_handle_request"] = Module["asm"]["Eb"]).apply(null, arguments);
6957
7199
  };
6958
7200
 
6959
7201
  var _php_wasm_init = Module["_php_wasm_init"] = function() {
6960
- return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Ib"]).apply(null, arguments);
7202
+ return (_php_wasm_init = Module["_php_wasm_init"] = Module["asm"]["Fb"]).apply(null, arguments);
6961
7203
  };
6962
7204
 
6963
7205
  var ___funcs_on_exit = function() {
6964
- return (___funcs_on_exit = Module["asm"]["Jb"]).apply(null, arguments);
7206
+ return (___funcs_on_exit = Module["asm"]["Gb"]).apply(null, arguments);
6965
7207
  };
6966
7208
 
6967
7209
  var _emscripten_builtin_memalign = function() {
6968
- return (_emscripten_builtin_memalign = Module["asm"]["Kb"]).apply(null, arguments);
7210
+ return (_emscripten_builtin_memalign = Module["asm"]["Hb"]).apply(null, arguments);
6969
7211
  };
6970
7212
 
6971
7213
  var __emscripten_timeout = function() {
6972
- return (__emscripten_timeout = Module["asm"]["Lb"]).apply(null, arguments);
7214
+ return (__emscripten_timeout = Module["asm"]["Ib"]).apply(null, arguments);
6973
7215
  };
6974
7216
 
6975
7217
  var _setThrew = function() {
6976
- return (_setThrew = Module["asm"]["Mb"]).apply(null, arguments);
7218
+ return (_setThrew = Module["asm"]["Jb"]).apply(null, arguments);
6977
7219
  };
6978
7220
 
6979
7221
  var _emscripten_stack_set_limits = function() {
@@ -6989,99 +7231,99 @@ var _emscripten_stack_get_end = function() {
6989
7231
  };
6990
7232
 
6991
7233
  var stackSave = function() {
6992
- return (stackSave = Module["asm"]["Nb"]).apply(null, arguments);
7234
+ return (stackSave = Module["asm"]["Kb"]).apply(null, arguments);
6993
7235
  };
6994
7236
 
6995
7237
  var stackRestore = function() {
6996
- return (stackRestore = Module["asm"]["Ob"]).apply(null, arguments);
7238
+ return (stackRestore = Module["asm"]["Lb"]).apply(null, arguments);
6997
7239
  };
6998
7240
 
6999
7241
  var stackAlloc = function() {
7000
- return (stackAlloc = Module["asm"]["Pb"]).apply(null, arguments);
7242
+ return (stackAlloc = Module["asm"]["Mb"]).apply(null, arguments);
7001
7243
  };
7002
7244
 
7003
7245
  var dynCall_viii = Module["dynCall_viii"] = function() {
7004
- return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["Qb"]).apply(null, arguments);
7246
+ return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["Nb"]).apply(null, arguments);
7005
7247
  };
7006
7248
 
7007
7249
  var dynCall_vii = Module["dynCall_vii"] = function() {
7008
- return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Rb"]).apply(null, arguments);
7250
+ return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["Ob"]).apply(null, arguments);
7009
7251
  };
7010
7252
 
7011
7253
  var dynCall_vi = Module["dynCall_vi"] = function() {
7012
- return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Sb"]).apply(null, arguments);
7254
+ return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["Pb"]).apply(null, arguments);
7013
7255
  };
7014
7256
 
7015
7257
  var dynCall_iii = Module["dynCall_iii"] = function() {
7016
- return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Tb"]).apply(null, arguments);
7258
+ return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["Qb"]).apply(null, arguments);
7017
7259
  };
7018
7260
 
7019
7261
  var dynCall_ii = Module["dynCall_ii"] = function() {
7020
- return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Ub"]).apply(null, arguments);
7262
+ return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["Rb"]).apply(null, arguments);
7021
7263
  };
7022
7264
 
7023
7265
  var dynCall_v = Module["dynCall_v"] = function() {
7024
- return (dynCall_v = Module["dynCall_v"] = Module["asm"]["Vb"]).apply(null, arguments);
7266
+ return (dynCall_v = Module["dynCall_v"] = Module["asm"]["Sb"]).apply(null, arguments);
7025
7267
  };
7026
7268
 
7027
7269
  var dynCall_iiii = Module["dynCall_iiii"] = function() {
7028
- return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7270
+ return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["Tb"]).apply(null, arguments);
7029
7271
  };
7030
7272
 
7031
7273
  var dynCall_iiiii = Module["dynCall_iiiii"] = function() {
7032
- return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Xb"]).apply(null, arguments);
7274
+ return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["Ub"]).apply(null, arguments);
7033
7275
  };
7034
7276
 
7035
7277
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = function() {
7036
- return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Yb"]).apply(null, arguments);
7278
+ return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["Vb"]).apply(null, arguments);
7037
7279
  };
7038
7280
 
7039
7281
  var dynCall_viiii = Module["dynCall_viiii"] = function() {
7040
- return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["Zb"]).apply(null, arguments);
7282
+ return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["Wb"]).apply(null, arguments);
7041
7283
  };
7042
7284
 
7043
7285
  var dynCall_viiiii = Module["dynCall_viiiii"] = function() {
7044
- return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7286
+ return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["Xb"]).apply(null, arguments);
7045
7287
  };
7046
7288
 
7047
7289
  var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function() {
7048
- return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["$b"]).apply(null, arguments);
7290
+ return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["Yb"]).apply(null, arguments);
7049
7291
  };
7050
7292
 
7051
7293
  var dynCall_i = Module["dynCall_i"] = function() {
7052
- return (dynCall_i = Module["dynCall_i"] = Module["asm"]["ac"]).apply(null, arguments);
7294
+ return (dynCall_i = Module["dynCall_i"] = Module["asm"]["Zb"]).apply(null, arguments);
7053
7295
  };
7054
7296
 
7055
7297
  var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function() {
7056
- return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7298
+ return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["_b"]).apply(null, arguments);
7057
7299
  };
7058
7300
 
7059
7301
  var dynCall_viiiiii = Module["dynCall_viiiiii"] = function() {
7060
- return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["cc"]).apply(null, arguments);
7302
+ return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["$b"]).apply(null, arguments);
7061
7303
  };
7062
7304
 
7063
7305
  var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function() {
7064
- return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["dc"]).apply(null, arguments);
7306
+ return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["ac"]).apply(null, arguments);
7065
7307
  };
7066
7308
 
7067
7309
  var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = function() {
7068
- return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["ec"]).apply(null, arguments);
7310
+ return (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = Module["asm"]["bc"]).apply(null, arguments);
7069
7311
  };
7070
7312
 
7071
7313
  var _asyncify_start_unwind = function() {
7072
- return (_asyncify_start_unwind = Module["asm"]["fc"]).apply(null, arguments);
7314
+ return (_asyncify_start_unwind = Module["asm"]["cc"]).apply(null, arguments);
7073
7315
  };
7074
7316
 
7075
7317
  var _asyncify_stop_unwind = function() {
7076
- return (_asyncify_stop_unwind = Module["asm"]["gc"]).apply(null, arguments);
7318
+ return (_asyncify_stop_unwind = Module["asm"]["dc"]).apply(null, arguments);
7077
7319
  };
7078
7320
 
7079
7321
  var _asyncify_start_rewind = function() {
7080
- return (_asyncify_start_rewind = Module["asm"]["hc"]).apply(null, arguments);
7322
+ return (_asyncify_start_rewind = Module["asm"]["ec"]).apply(null, arguments);
7081
7323
  };
7082
7324
 
7083
7325
  var _asyncify_stop_rewind = function() {
7084
- return (_asyncify_stop_rewind = Module["asm"]["ic"]).apply(null, arguments);
7326
+ return (_asyncify_stop_rewind = Module["asm"]["fc"]).apply(null, arguments);
7085
7327
  };
7086
7328
 
7087
7329
  function invoke_viii(index, a1, a2, a3) {
@@ -7289,6 +7531,8 @@ Module["ccall"] = ccall;
7289
7531
 
7290
7532
  Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
7291
7533
 
7534
+ Module["PROXYFS"] = PROXYFS;
7535
+
7292
7536
  var calledRun;
7293
7537
 
7294
7538
  dependenciesFulfilled = function runCaller() {
@@ -7372,6 +7616,23 @@ PHPLoader['removeRunDependency'] = function (...args) {
7372
7616
  }
7373
7617
  }
7374
7618
 
7619
+ /**
7620
+ * Other exports live in the Dockerfile in:
7621
+ *
7622
+ * * EXTRA_EXPORTED_RUNTIME_METHODS
7623
+ * * EXPORTED_FUNCTIONS
7624
+ *
7625
+ * These exports, however, live in here because:
7626
+ *
7627
+ * * Listing them in EXTRA_EXPORTED_RUNTIME_METHODS doesn't actually
7628
+ * export them. This could be a bug in Emscripten or a consequence of
7629
+ * that option being deprecated.
7630
+ * * Listing them in EXPORTED_FUNCTIONS works, but they are overridden
7631
+ * on every `BasePHP.run()` call. This is a problem because we want to
7632
+ * spy on these calls in some unit tests.
7633
+ *
7634
+ * Therefore, we export them here.
7635
+ */
7375
7636
  PHPLoader['malloc'] = _malloc;
7376
7637
  PHPLoader['free'] = _free;
7377
7638