@php-wasm/node 1.1.4 → 1.2.0

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.
Files changed (56) hide show
  1. package/asyncify/7_2_34/php_7_2.wasm +0 -0
  2. package/asyncify/7_3_33/php_7_3.wasm +0 -0
  3. package/asyncify/7_4_33/php_7_4.wasm +0 -0
  4. package/asyncify/8_0_30/php_8_0.wasm +0 -0
  5. package/asyncify/8_1_23/php_8_1.wasm +0 -0
  6. package/asyncify/8_2_10/php_8_2.wasm +0 -0
  7. package/asyncify/8_3_0/php_8_3.wasm +0 -0
  8. package/asyncify/8_4_0/php_8_4.wasm +0 -0
  9. package/asyncify/php_7_2.js +55 -33
  10. package/asyncify/php_7_3.js +55 -33
  11. package/asyncify/php_7_4.js +63 -41
  12. package/asyncify/php_8_0.js +67 -45
  13. package/asyncify/php_8_1.js +56 -34
  14. package/asyncify/php_8_2.js +56 -34
  15. package/asyncify/php_8_3.js +56 -34
  16. package/asyncify/php_8_4.js +55 -33
  17. package/index.cjs +230308 -70174
  18. package/index.js +229696 -69447
  19. package/jspi/7_2_34/php_7_2.wasm +0 -0
  20. package/jspi/7_3_33/php_7_3.wasm +0 -0
  21. package/jspi/7_4_33/php_7_4.wasm +0 -0
  22. package/jspi/8_0_30/php_8_0.wasm +0 -0
  23. package/jspi/8_1_23/php_8_1.wasm +0 -0
  24. package/jspi/8_2_10/php_8_2.wasm +0 -0
  25. package/jspi/8_3_0/php_8_3.wasm +0 -0
  26. package/jspi/8_4_0/php_8_4.wasm +0 -0
  27. package/jspi/extensions/xdebug/7_2/xdebug.la +35 -0
  28. package/jspi/extensions/xdebug/7_2/xdebug.so +0 -0
  29. package/jspi/extensions/xdebug/7_3/xdebug.la +35 -0
  30. package/jspi/extensions/xdebug/7_3/xdebug.so +0 -0
  31. package/jspi/extensions/xdebug/7_4/xdebug.la +35 -0
  32. package/jspi/extensions/xdebug/7_4/xdebug.so +0 -0
  33. package/jspi/extensions/xdebug/8_0/xdebug.la +35 -0
  34. package/jspi/extensions/xdebug/8_0/xdebug.so +0 -0
  35. package/jspi/extensions/xdebug/8_1/xdebug.la +35 -0
  36. package/jspi/extensions/xdebug/8_1/xdebug.so +0 -0
  37. package/jspi/extensions/xdebug/8_2/xdebug.la +35 -0
  38. package/jspi/extensions/xdebug/8_2/xdebug.so +0 -0
  39. package/jspi/extensions/xdebug/8_3/xdebug.la +35 -0
  40. package/jspi/extensions/xdebug/8_3/xdebug.so +0 -0
  41. package/jspi/extensions/xdebug/8_4/xdebug.la +35 -0
  42. package/jspi/extensions/xdebug/8_4/xdebug.so +0 -0
  43. package/jspi/php_7_2.js +27165 -2210
  44. package/jspi/php_7_3.js +27165 -2210
  45. package/jspi/php_7_4.js +27164 -2214
  46. package/jspi/php_8_0.js +27265 -2327
  47. package/jspi/php_8_1.js +27258 -2356
  48. package/jspi/php_8_2.js +27258 -2359
  49. package/jspi/php_8_3.js +27258 -2359
  50. package/jspi/php_8_4.js +27258 -2359
  51. package/lib/file-lock-manager-for-node.d.ts +10 -2
  52. package/lib/load-runtime.d.ts +1 -0
  53. package/lib/xdebug/get-xdebug-extension-module.d.ts +2 -0
  54. package/lib/xdebug/with-xdebug.d.ts +2 -0
  55. package/package.json +8 -8
  56. package/fs_ext.node +0 -0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -8,7 +8,7 @@ import path from 'path';
8
8
 
9
9
  const dependencyFilename = path.join(__dirname, '7_2_34', 'php_7_2.wasm');
10
10
  export { dependencyFilename };
11
- export const dependenciesTotalSize = 18432541;
11
+ export const dependenciesTotalSize = 17703689;
12
12
  export function init(RuntimeName, PHPLoader) {
13
13
  // The rest of the code comes from the built php.js file and esm-suffix.js
14
14
  // include: shell.js
@@ -7002,6 +7002,14 @@ export function init(RuntimeName, PHPLoader) {
7002
7002
 
7003
7003
  var PHPWASM = {
7004
7004
  init: function () {
7005
+ Module['ENV'] = Module['ENV'] || {};
7006
+ // Ensure a platform-level bin directory for a fallback `php` binary.
7007
+ Module['ENV']['PATH'] = [
7008
+ Module['ENV']['PATH'],
7009
+ '/internal/shared/bin',
7010
+ ]
7011
+ .filter(Boolean)
7012
+ .join(':');
7005
7013
  // The /internal directory is required by the C module. It's where the
7006
7014
  // stdout, stderr, and headers information are written for the JavaScript
7007
7015
  // code to read later on.
@@ -7012,6 +7020,20 @@ export function init(RuntimeName, PHPLoader) {
7012
7020
  // The files from the preload directory are preloaded using the
7013
7021
  // auto_prepend_file php.ini directive.
7014
7022
  FS.mkdir('/internal/shared/preload');
7023
+ // Platform-level bin directory for a fallback `php` binary. Without it,
7024
+ // PHP may not populate the PHP_BINARY constant.
7025
+ FS.mkdir('/internal/shared/bin');
7026
+ const originalOnRuntimeInitialized = Module['onRuntimeInitialized'];
7027
+ Module['onRuntimeInitialized'] = () => {
7028
+ // Dummy PHP binary for PHP to populate the PHP_BINARY constant.
7029
+ FS.writeFile(
7030
+ '/internal/shared/bin/php',
7031
+ new TextEncoder().encode('#!/bin/sh\nphp "$@"')
7032
+ );
7033
+ // It must be executable to be used by PHP.
7034
+ FS.chmod('/internal/shared/bin/php', 493);
7035
+ originalOnRuntimeInitialized();
7036
+ };
7015
7037
  // Create stdout and stderr devices. We can't just use Emscripten's
7016
7038
  // default stdout and stderr devices because they stop processing data
7017
7039
  // on the first null byte. However, when dealing with binary data,
@@ -8005,7 +8027,7 @@ export function init(RuntimeName, PHPLoader) {
8005
8027
  var Asyncify = {
8006
8028
  instrumentWasmImports(imports) {
8007
8029
  var importPattern =
8008
- /^(_dlopen_js|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_iij|invoke_iiji|invoke_iijii|invoke_iijiji|invoke_jii|invoke_jiii|invoke_viijii|invoke_vji|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|__syscall_fcntl64|js_release_file_locks|js_flock|js_fd_read|_js_fd_read|_fd_close|js_module_onMessage|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|_wasm_shutdown|_asyncjs__wasm_shutdown|__asyncjs__.*)$/;
8030
+ /^(invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_iij|invoke_iiji|invoke_iijii|invoke_iijiji|invoke_jii|invoke_jiii|invoke_viijii|invoke_vji|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|__syscall_fcntl64|js_release_file_locks|js_flock|js_fd_read|_js_fd_read|_fd_close|js_module_onMessage|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|_wasm_shutdown|_asyncjs__wasm_shutdown|__asyncjs__.*)$/;
8009
8031
  for (let [x, original] of Object.entries(imports)) {
8010
8032
  if (typeof original == 'function') {
8011
8033
  let isAsyncifyImport =
@@ -8976,7 +8998,7 @@ export function init(RuntimeName, PHPLoader) {
8976
8998
  a3
8977
8999
  ));
8978
9000
 
8979
- var dynCall_viiiiiiiii = (Module['dynCall_viiiiiiiii'] = (
9001
+ var dynCall_iiiiiiiiii = (Module['dynCall_iiiiiiiiii'] = (
8980
9002
  a0,
8981
9003
  a1,
8982
9004
  a2,
@@ -8988,7 +9010,7 @@ export function init(RuntimeName, PHPLoader) {
8988
9010
  a8,
8989
9011
  a9
8990
9012
  ) =>
8991
- (dynCall_viiiiiiiii = Module['dynCall_viiiiiiiii'] = wasmExports['hc'])(
9013
+ (dynCall_iiiiiiiiii = Module['dynCall_iiiiiiiiii'] = wasmExports['hc'])(
8992
9014
  a0,
8993
9015
  a1,
8994
9016
  a2,
@@ -9001,47 +9023,51 @@ export function init(RuntimeName, PHPLoader) {
9001
9023
  a9
9002
9024
  ));
9003
9025
 
9004
- var dynCall_viiiiii = (Module['dynCall_viiiiii'] = (
9026
+ var dynCall_viiiiiiiii = (Module['dynCall_viiiiiiiii'] = (
9005
9027
  a0,
9006
9028
  a1,
9007
9029
  a2,
9008
9030
  a3,
9009
9031
  a4,
9010
9032
  a5,
9011
- a6
9033
+ a6,
9034
+ a7,
9035
+ a8,
9036
+ a9
9012
9037
  ) =>
9013
- (dynCall_viiiiii = Module['dynCall_viiiiii'] = wasmExports['ic'])(
9038
+ (dynCall_viiiiiiiii = Module['dynCall_viiiiiiiii'] = wasmExports['ic'])(
9014
9039
  a0,
9015
9040
  a1,
9016
9041
  a2,
9017
9042
  a3,
9018
9043
  a4,
9019
9044
  a5,
9020
- a6
9045
+ a6,
9046
+ a7,
9047
+ a8,
9048
+ a9
9021
9049
  ));
9022
9050
 
9023
- var dynCall_iiiiiiii = (Module['dynCall_iiiiiiii'] = (
9051
+ var dynCall_viiiiii = (Module['dynCall_viiiiii'] = (
9024
9052
  a0,
9025
9053
  a1,
9026
9054
  a2,
9027
9055
  a3,
9028
9056
  a4,
9029
9057
  a5,
9030
- a6,
9031
- a7
9058
+ a6
9032
9059
  ) =>
9033
- (dynCall_iiiiiiii = Module['dynCall_iiiiiiii'] = wasmExports['jc'])(
9060
+ (dynCall_viiiiii = Module['dynCall_viiiiii'] = wasmExports['jc'])(
9034
9061
  a0,
9035
9062
  a1,
9036
9063
  a2,
9037
9064
  a3,
9038
9065
  a4,
9039
9066
  a5,
9040
- a6,
9041
- a7
9067
+ a6
9042
9068
  ));
9043
9069
 
9044
- var dynCall_iiiiiiiiii = (Module['dynCall_iiiiiiiiii'] = (
9070
+ var dynCall_iiiiiiii = (Module['dynCall_iiiiiiii'] = (
9045
9071
  a0,
9046
9072
  a1,
9047
9073
  a2,
@@ -9049,11 +9075,9 @@ export function init(RuntimeName, PHPLoader) {
9049
9075
  a4,
9050
9076
  a5,
9051
9077
  a6,
9052
- a7,
9053
- a8,
9054
- a9
9078
+ a7
9055
9079
  ) =>
9056
- (dynCall_iiiiiiiiii = Module['dynCall_iiiiiiiiii'] = wasmExports['kc'])(
9080
+ (dynCall_iiiiiiii = Module['dynCall_iiiiiiii'] = wasmExports['kc'])(
9057
9081
  a0,
9058
9082
  a1,
9059
9083
  a2,
@@ -9061,9 +9085,7 @@ export function init(RuntimeName, PHPLoader) {
9061
9085
  a4,
9062
9086
  a5,
9063
9087
  a6,
9064
- a7,
9065
- a8,
9066
- a9
9088
+ a7
9067
9089
  ));
9068
9090
 
9069
9091
  var dynCall_iiji = (Module['dynCall_iiji'] = (a0, a1, a2, a3) =>
@@ -9074,11 +9096,8 @@ export function init(RuntimeName, PHPLoader) {
9074
9096
  a3
9075
9097
  ));
9076
9098
 
9077
- var dynCall_jii = (Module['dynCall_jii'] = (a0, a1, a2) =>
9078
- (dynCall_jii = Module['dynCall_jii'] = wasmExports['mc'])(a0, a1, a2));
9079
-
9080
- var dynCall_viijii = (Module['dynCall_viijii'] = (a0, a1, a2, a3, a4, a5) =>
9081
- (dynCall_viijii = Module['dynCall_viijii'] = wasmExports['nc'])(
9099
+ var dynCall_iijiji = (Module['dynCall_iijiji'] = (a0, a1, a2, a3, a4, a5) =>
9100
+ (dynCall_iijiji = Module['dynCall_iijiji'] = wasmExports['mc'])(
9082
9101
  a0,
9083
9102
  a1,
9084
9103
  a2,
@@ -9087,8 +9106,11 @@ export function init(RuntimeName, PHPLoader) {
9087
9106
  a5
9088
9107
  ));
9089
9108
 
9090
- var dynCall_iijiji = (Module['dynCall_iijiji'] = (a0, a1, a2, a3, a4, a5) =>
9091
- (dynCall_iijiji = Module['dynCall_iijiji'] = wasmExports['oc'])(
9109
+ var dynCall_vji = (Module['dynCall_vji'] = (a0, a1, a2) =>
9110
+ (dynCall_vji = Module['dynCall_vji'] = wasmExports['nc'])(a0, a1, a2));
9111
+
9112
+ var dynCall_viijii = (Module['dynCall_viijii'] = (a0, a1, a2, a3, a4, a5) =>
9113
+ (dynCall_viijii = Module['dynCall_viijii'] = wasmExports['oc'])(
9092
9114
  a0,
9093
9115
  a1,
9094
9116
  a2,
@@ -9097,11 +9119,8 @@ export function init(RuntimeName, PHPLoader) {
9097
9119
  a5
9098
9120
  ));
9099
9121
 
9100
- var dynCall_vji = (Module['dynCall_vji'] = (a0, a1, a2) =>
9101
- (dynCall_vji = Module['dynCall_vji'] = wasmExports['pc'])(a0, a1, a2));
9102
-
9103
9122
  var dynCall_viidii = (Module['dynCall_viidii'] = (a0, a1, a2, a3, a4, a5) =>
9104
- (dynCall_viidii = Module['dynCall_viidii'] = wasmExports['qc'])(
9123
+ (dynCall_viidii = Module['dynCall_viidii'] = wasmExports['pc'])(
9105
9124
  a0,
9106
9125
  a1,
9107
9126
  a2,
@@ -9110,6 +9129,9 @@ export function init(RuntimeName, PHPLoader) {
9110
9129
  a5
9111
9130
  ));
9112
9131
 
9132
+ var dynCall_jii = (Module['dynCall_jii'] = (a0, a1, a2) =>
9133
+ (dynCall_jii = Module['dynCall_jii'] = wasmExports['qc'])(a0, a1, a2));
9134
+
9113
9135
  var _asyncify_start_unwind = (a0) =>
9114
9136
  (_asyncify_start_unwind = wasmExports['rc'])(a0);
9115
9137
 
@@ -8,7 +8,7 @@ import path from 'path';
8
8
 
9
9
  const dependencyFilename = path.join(__dirname, '7_3_33', 'php_7_3.wasm');
10
10
  export { dependencyFilename };
11
- export const dependenciesTotalSize = 18511097;
11
+ export const dependenciesTotalSize = 17697844;
12
12
  export function init(RuntimeName, PHPLoader) {
13
13
  // The rest of the code comes from the built php.js file and esm-suffix.js
14
14
  // include: shell.js
@@ -7002,6 +7002,14 @@ export function init(RuntimeName, PHPLoader) {
7002
7002
 
7003
7003
  var PHPWASM = {
7004
7004
  init: function () {
7005
+ Module['ENV'] = Module['ENV'] || {};
7006
+ // Ensure a platform-level bin directory for a fallback `php` binary.
7007
+ Module['ENV']['PATH'] = [
7008
+ Module['ENV']['PATH'],
7009
+ '/internal/shared/bin',
7010
+ ]
7011
+ .filter(Boolean)
7012
+ .join(':');
7005
7013
  // The /internal directory is required by the C module. It's where the
7006
7014
  // stdout, stderr, and headers information are written for the JavaScript
7007
7015
  // code to read later on.
@@ -7012,6 +7020,20 @@ export function init(RuntimeName, PHPLoader) {
7012
7020
  // The files from the preload directory are preloaded using the
7013
7021
  // auto_prepend_file php.ini directive.
7014
7022
  FS.mkdir('/internal/shared/preload');
7023
+ // Platform-level bin directory for a fallback `php` binary. Without it,
7024
+ // PHP may not populate the PHP_BINARY constant.
7025
+ FS.mkdir('/internal/shared/bin');
7026
+ const originalOnRuntimeInitialized = Module['onRuntimeInitialized'];
7027
+ Module['onRuntimeInitialized'] = () => {
7028
+ // Dummy PHP binary for PHP to populate the PHP_BINARY constant.
7029
+ FS.writeFile(
7030
+ '/internal/shared/bin/php',
7031
+ new TextEncoder().encode('#!/bin/sh\nphp "$@"')
7032
+ );
7033
+ // It must be executable to be used by PHP.
7034
+ FS.chmod('/internal/shared/bin/php', 493);
7035
+ originalOnRuntimeInitialized();
7036
+ };
7015
7037
  // Create stdout and stderr devices. We can't just use Emscripten's
7016
7038
  // default stdout and stderr devices because they stop processing data
7017
7039
  // on the first null byte. However, when dealing with binary data,
@@ -8005,7 +8027,7 @@ export function init(RuntimeName, PHPLoader) {
8005
8027
  var Asyncify = {
8006
8028
  instrumentWasmImports(imports) {
8007
8029
  var importPattern =
8008
- /^(_dlopen_js|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_iij|invoke_iiji|invoke_iijii|invoke_iijiji|invoke_jii|invoke_jiii|invoke_viijii|invoke_vji|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|__syscall_fcntl64|js_release_file_locks|js_flock|js_fd_read|_js_fd_read|_fd_close|js_module_onMessage|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|_wasm_shutdown|_asyncjs__wasm_shutdown|__asyncjs__.*)$/;
8030
+ /^(invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_iij|invoke_iiji|invoke_iijii|invoke_iijiji|invoke_jii|invoke_jiii|invoke_viijii|invoke_vji|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|__syscall_fcntl64|js_release_file_locks|js_flock|js_fd_read|_js_fd_read|_fd_close|js_module_onMessage|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|_wasm_shutdown|_asyncjs__wasm_shutdown|__asyncjs__.*)$/;
8009
8031
  for (let [x, original] of Object.entries(imports)) {
8010
8032
  if (typeof original == 'function') {
8011
8033
  let isAsyncifyImport =
@@ -8976,7 +8998,7 @@ export function init(RuntimeName, PHPLoader) {
8976
8998
  a4
8977
8999
  ));
8978
9000
 
8979
- var dynCall_viiiiiiiii = (Module['dynCall_viiiiiiiii'] = (
9001
+ var dynCall_iiiiiiiiii = (Module['dynCall_iiiiiiiiii'] = (
8980
9002
  a0,
8981
9003
  a1,
8982
9004
  a2,
@@ -8988,7 +9010,7 @@ export function init(RuntimeName, PHPLoader) {
8988
9010
  a8,
8989
9011
  a9
8990
9012
  ) =>
8991
- (dynCall_viiiiiiiii = Module['dynCall_viiiiiiiii'] = wasmExports['hc'])(
9013
+ (dynCall_iiiiiiiiii = Module['dynCall_iiiiiiiiii'] = wasmExports['hc'])(
8992
9014
  a0,
8993
9015
  a1,
8994
9016
  a2,
@@ -9001,47 +9023,51 @@ export function init(RuntimeName, PHPLoader) {
9001
9023
  a9
9002
9024
  ));
9003
9025
 
9004
- var dynCall_viiiiii = (Module['dynCall_viiiiii'] = (
9026
+ var dynCall_viiiiiiiii = (Module['dynCall_viiiiiiiii'] = (
9005
9027
  a0,
9006
9028
  a1,
9007
9029
  a2,
9008
9030
  a3,
9009
9031
  a4,
9010
9032
  a5,
9011
- a6
9033
+ a6,
9034
+ a7,
9035
+ a8,
9036
+ a9
9012
9037
  ) =>
9013
- (dynCall_viiiiii = Module['dynCall_viiiiii'] = wasmExports['ic'])(
9038
+ (dynCall_viiiiiiiii = Module['dynCall_viiiiiiiii'] = wasmExports['ic'])(
9014
9039
  a0,
9015
9040
  a1,
9016
9041
  a2,
9017
9042
  a3,
9018
9043
  a4,
9019
9044
  a5,
9020
- a6
9045
+ a6,
9046
+ a7,
9047
+ a8,
9048
+ a9
9021
9049
  ));
9022
9050
 
9023
- var dynCall_iiiiiiii = (Module['dynCall_iiiiiiii'] = (
9051
+ var dynCall_viiiiii = (Module['dynCall_viiiiii'] = (
9024
9052
  a0,
9025
9053
  a1,
9026
9054
  a2,
9027
9055
  a3,
9028
9056
  a4,
9029
9057
  a5,
9030
- a6,
9031
- a7
9058
+ a6
9032
9059
  ) =>
9033
- (dynCall_iiiiiiii = Module['dynCall_iiiiiiii'] = wasmExports['jc'])(
9060
+ (dynCall_viiiiii = Module['dynCall_viiiiii'] = wasmExports['jc'])(
9034
9061
  a0,
9035
9062
  a1,
9036
9063
  a2,
9037
9064
  a3,
9038
9065
  a4,
9039
9066
  a5,
9040
- a6,
9041
- a7
9067
+ a6
9042
9068
  ));
9043
9069
 
9044
- var dynCall_iiiiiiiiii = (Module['dynCall_iiiiiiiiii'] = (
9070
+ var dynCall_iiiiiiii = (Module['dynCall_iiiiiiii'] = (
9045
9071
  a0,
9046
9072
  a1,
9047
9073
  a2,
@@ -9049,11 +9075,9 @@ export function init(RuntimeName, PHPLoader) {
9049
9075
  a4,
9050
9076
  a5,
9051
9077
  a6,
9052
- a7,
9053
- a8,
9054
- a9
9078
+ a7
9055
9079
  ) =>
9056
- (dynCall_iiiiiiiiii = Module['dynCall_iiiiiiiiii'] = wasmExports['kc'])(
9080
+ (dynCall_iiiiiiii = Module['dynCall_iiiiiiii'] = wasmExports['kc'])(
9057
9081
  a0,
9058
9082
  a1,
9059
9083
  a2,
@@ -9061,9 +9085,7 @@ export function init(RuntimeName, PHPLoader) {
9061
9085
  a4,
9062
9086
  a5,
9063
9087
  a6,
9064
- a7,
9065
- a8,
9066
- a9
9088
+ a7
9067
9089
  ));
9068
9090
 
9069
9091
  var dynCall_iiji = (Module['dynCall_iiji'] = (a0, a1, a2, a3) =>
@@ -9074,11 +9096,8 @@ export function init(RuntimeName, PHPLoader) {
9074
9096
  a3
9075
9097
  ));
9076
9098
 
9077
- var dynCall_jii = (Module['dynCall_jii'] = (a0, a1, a2) =>
9078
- (dynCall_jii = Module['dynCall_jii'] = wasmExports['mc'])(a0, a1, a2));
9079
-
9080
- var dynCall_viijii = (Module['dynCall_viijii'] = (a0, a1, a2, a3, a4, a5) =>
9081
- (dynCall_viijii = Module['dynCall_viijii'] = wasmExports['nc'])(
9099
+ var dynCall_iijiji = (Module['dynCall_iijiji'] = (a0, a1, a2, a3, a4, a5) =>
9100
+ (dynCall_iijiji = Module['dynCall_iijiji'] = wasmExports['mc'])(
9082
9101
  a0,
9083
9102
  a1,
9084
9103
  a2,
@@ -9087,8 +9106,11 @@ export function init(RuntimeName, PHPLoader) {
9087
9106
  a5
9088
9107
  ));
9089
9108
 
9090
- var dynCall_iijiji = (Module['dynCall_iijiji'] = (a0, a1, a2, a3, a4, a5) =>
9091
- (dynCall_iijiji = Module['dynCall_iijiji'] = wasmExports['oc'])(
9109
+ var dynCall_vji = (Module['dynCall_vji'] = (a0, a1, a2) =>
9110
+ (dynCall_vji = Module['dynCall_vji'] = wasmExports['nc'])(a0, a1, a2));
9111
+
9112
+ var dynCall_viijii = (Module['dynCall_viijii'] = (a0, a1, a2, a3, a4, a5) =>
9113
+ (dynCall_viijii = Module['dynCall_viijii'] = wasmExports['oc'])(
9092
9114
  a0,
9093
9115
  a1,
9094
9116
  a2,
@@ -9097,11 +9119,8 @@ export function init(RuntimeName, PHPLoader) {
9097
9119
  a5
9098
9120
  ));
9099
9121
 
9100
- var dynCall_vji = (Module['dynCall_vji'] = (a0, a1, a2) =>
9101
- (dynCall_vji = Module['dynCall_vji'] = wasmExports['pc'])(a0, a1, a2));
9102
-
9103
9122
  var dynCall_viidii = (Module['dynCall_viidii'] = (a0, a1, a2, a3, a4, a5) =>
9104
- (dynCall_viidii = Module['dynCall_viidii'] = wasmExports['qc'])(
9123
+ (dynCall_viidii = Module['dynCall_viidii'] = wasmExports['pc'])(
9105
9124
  a0,
9106
9125
  a1,
9107
9126
  a2,
@@ -9110,6 +9129,9 @@ export function init(RuntimeName, PHPLoader) {
9110
9129
  a5
9111
9130
  ));
9112
9131
 
9132
+ var dynCall_jii = (Module['dynCall_jii'] = (a0, a1, a2) =>
9133
+ (dynCall_jii = Module['dynCall_jii'] = wasmExports['qc'])(a0, a1, a2));
9134
+
9113
9135
  var _asyncify_start_unwind = (a0) =>
9114
9136
  (_asyncify_start_unwind = wasmExports['rc'])(a0);
9115
9137
 
@@ -8,7 +8,7 @@ import path from 'path';
8
8
 
9
9
  const dependencyFilename = path.join(__dirname, '7_4_33', 'php_7_4.wasm');
10
10
  export { dependencyFilename };
11
- export const dependenciesTotalSize = 19027659;
11
+ export const dependenciesTotalSize = 18164135;
12
12
  export function init(RuntimeName, PHPLoader) {
13
13
  // The rest of the code comes from the built php.js file and esm-suffix.js
14
14
  // include: shell.js
@@ -7002,6 +7002,14 @@ export function init(RuntimeName, PHPLoader) {
7002
7002
 
7003
7003
  var PHPWASM = {
7004
7004
  init: function () {
7005
+ Module['ENV'] = Module['ENV'] || {};
7006
+ // Ensure a platform-level bin directory for a fallback `php` binary.
7007
+ Module['ENV']['PATH'] = [
7008
+ Module['ENV']['PATH'],
7009
+ '/internal/shared/bin',
7010
+ ]
7011
+ .filter(Boolean)
7012
+ .join(':');
7005
7013
  // The /internal directory is required by the C module. It's where the
7006
7014
  // stdout, stderr, and headers information are written for the JavaScript
7007
7015
  // code to read later on.
@@ -7012,6 +7020,20 @@ export function init(RuntimeName, PHPLoader) {
7012
7020
  // The files from the preload directory are preloaded using the
7013
7021
  // auto_prepend_file php.ini directive.
7014
7022
  FS.mkdir('/internal/shared/preload');
7023
+ // Platform-level bin directory for a fallback `php` binary. Without it,
7024
+ // PHP may not populate the PHP_BINARY constant.
7025
+ FS.mkdir('/internal/shared/bin');
7026
+ const originalOnRuntimeInitialized = Module['onRuntimeInitialized'];
7027
+ Module['onRuntimeInitialized'] = () => {
7028
+ // Dummy PHP binary for PHP to populate the PHP_BINARY constant.
7029
+ FS.writeFile(
7030
+ '/internal/shared/bin/php',
7031
+ new TextEncoder().encode('#!/bin/sh\nphp "$@"')
7032
+ );
7033
+ // It must be executable to be used by PHP.
7034
+ FS.chmod('/internal/shared/bin/php', 493);
7035
+ originalOnRuntimeInitialized();
7036
+ };
7015
7037
  // Create stdout and stderr devices. We can't just use Emscripten's
7016
7038
  // default stdout and stderr devices because they stop processing data
7017
7039
  // on the first null byte. However, when dealing with binary data,
@@ -8009,7 +8031,7 @@ export function init(RuntimeName, PHPLoader) {
8009
8031
  var Asyncify = {
8010
8032
  instrumentWasmImports(imports) {
8011
8033
  var importPattern =
8012
- /^(_dlopen_js|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_iij|invoke_iiji|invoke_iijii|invoke_iijiji|invoke_jii|invoke_jiii|invoke_viijii|invoke_vji|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|__syscall_fcntl64|js_release_file_locks|js_flock|js_fd_read|_js_fd_read|_fd_close|js_module_onMessage|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|_wasm_shutdown|_asyncjs__wasm_shutdown|__asyncjs__.*)$/;
8034
+ /^(invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_v|invoke_vi|invoke_vii|invoke_viidii|invoke_viii|invoke_viiii|invoke_viiiii|invoke_viiiiii|invoke_viiiiiii|invoke_viiiiiiiii|invoke_i|invoke_ii|invoke_iii|invoke_iiii|invoke_iiiii|invoke_iiiiii|invoke_iiiiiii|invoke_iiiiiiii|invoke_iiiiiiiiii|invoke_iij|invoke_iiji|invoke_iijii|invoke_iijiji|invoke_jii|invoke_jiii|invoke_viijii|invoke_vji|js_open_process|_js_open_process|_asyncjs__js_open_process|js_popen_to_file|_js_popen_to_file|_asyncjs__js_popen_to_file|__syscall_fcntl64|js_release_file_locks|js_flock|js_fd_read|_js_fd_read|_fd_close|js_module_onMessage|_js_module_onMessage|_asyncjs__js_module_onMessage|js_waitpid|_js_waitpid|_asyncjs__js_waitpid|wasm_poll_socket|_wasm_poll_socket|_asyncjs__wasm_poll_socket|_wasm_shutdown|_asyncjs__wasm_shutdown|__asyncjs__.*)$/;
8013
8035
  for (let [x, original] of Object.entries(imports)) {
8014
8036
  if (typeof original == 'function') {
8015
8037
  let isAsyncifyImport =
@@ -8981,7 +9003,7 @@ export function init(RuntimeName, PHPLoader) {
8981
9003
  a3
8982
9004
  ));
8983
9005
 
8984
- var dynCall_viiiiiiiii = (Module['dynCall_viiiiiiiii'] = (
9006
+ var dynCall_iiiiiiiiii = (Module['dynCall_iiiiiiiiii'] = (
8985
9007
  a0,
8986
9008
  a1,
8987
9009
  a2,
@@ -8993,7 +9015,7 @@ export function init(RuntimeName, PHPLoader) {
8993
9015
  a8,
8994
9016
  a9
8995
9017
  ) =>
8996
- (dynCall_viiiiiiiii = Module['dynCall_viiiiiiiii'] = wasmExports['ic'])(
9018
+ (dynCall_iiiiiiiiii = Module['dynCall_iiiiiiiiii'] = wasmExports['ic'])(
8997
9019
  a0,
8998
9020
  a1,
8999
9021
  a2,
@@ -9006,47 +9028,59 @@ export function init(RuntimeName, PHPLoader) {
9006
9028
  a9
9007
9029
  ));
9008
9030
 
9009
- var dynCall_viiiiii = (Module['dynCall_viiiiii'] = (
9031
+ var dynCall_iiji = (Module['dynCall_iiji'] = (a0, a1, a2, a3) =>
9032
+ (dynCall_iiji = Module['dynCall_iiji'] = wasmExports['jc'])(
9033
+ a0,
9034
+ a1,
9035
+ a2,
9036
+ a3
9037
+ ));
9038
+
9039
+ var dynCall_viiiiiiiii = (Module['dynCall_viiiiiiiii'] = (
9010
9040
  a0,
9011
9041
  a1,
9012
9042
  a2,
9013
9043
  a3,
9014
9044
  a4,
9015
9045
  a5,
9016
- a6
9046
+ a6,
9047
+ a7,
9048
+ a8,
9049
+ a9
9017
9050
  ) =>
9018
- (dynCall_viiiiii = Module['dynCall_viiiiii'] = wasmExports['jc'])(
9051
+ (dynCall_viiiiiiiii = Module['dynCall_viiiiiiiii'] = wasmExports['kc'])(
9019
9052
  a0,
9020
9053
  a1,
9021
9054
  a2,
9022
9055
  a3,
9023
9056
  a4,
9024
9057
  a5,
9025
- a6
9058
+ a6,
9059
+ a7,
9060
+ a8,
9061
+ a9
9026
9062
  ));
9027
9063
 
9028
- var dynCall_iiiiiiii = (Module['dynCall_iiiiiiii'] = (
9064
+ var dynCall_viiiiii = (Module['dynCall_viiiiii'] = (
9029
9065
  a0,
9030
9066
  a1,
9031
9067
  a2,
9032
9068
  a3,
9033
9069
  a4,
9034
9070
  a5,
9035
- a6,
9036
- a7
9071
+ a6
9037
9072
  ) =>
9038
- (dynCall_iiiiiiii = Module['dynCall_iiiiiiii'] = wasmExports['kc'])(
9073
+ (dynCall_viiiiii = Module['dynCall_viiiiii'] = wasmExports['lc'])(
9039
9074
  a0,
9040
9075
  a1,
9041
9076
  a2,
9042
9077
  a3,
9043
9078
  a4,
9044
9079
  a5,
9045
- a6,
9046
- a7
9080
+ a6
9047
9081
  ));
9048
9082
 
9049
- var dynCall_iiiiiiiiii = (Module['dynCall_iiiiiiiiii'] = (
9083
+ var dynCall_iiiiiiii = (Module['dynCall_iiiiiiii'] = (
9050
9084
  a0,
9051
9085
  a1,
9052
9086
  a2,
@@ -9054,11 +9088,9 @@ export function init(RuntimeName, PHPLoader) {
9054
9088
  a4,
9055
9089
  a5,
9056
9090
  a6,
9057
- a7,
9058
- a8,
9059
- a9
9091
+ a7
9060
9092
  ) =>
9061
- (dynCall_iiiiiiiiii = Module['dynCall_iiiiiiiiii'] = wasmExports['lc'])(
9093
+ (dynCall_iiiiiiii = Module['dynCall_iiiiiiii'] = wasmExports['mc'])(
9062
9094
  a0,
9063
9095
  a1,
9064
9096
  a2,
@@ -9066,24 +9098,11 @@ export function init(RuntimeName, PHPLoader) {
9066
9098
  a4,
9067
9099
  a5,
9068
9100
  a6,
9069
- a7,
9070
- a8,
9071
- a9
9072
- ));
9073
-
9074
- var dynCall_iiji = (Module['dynCall_iiji'] = (a0, a1, a2, a3) =>
9075
- (dynCall_iiji = Module['dynCall_iiji'] = wasmExports['mc'])(
9076
- a0,
9077
- a1,
9078
- a2,
9079
- a3
9101
+ a7
9080
9102
  ));
9081
9103
 
9082
- var dynCall_jii = (Module['dynCall_jii'] = (a0, a1, a2) =>
9083
- (dynCall_jii = Module['dynCall_jii'] = wasmExports['nc'])(a0, a1, a2));
9084
-
9085
- var dynCall_viijii = (Module['dynCall_viijii'] = (a0, a1, a2, a3, a4, a5) =>
9086
- (dynCall_viijii = Module['dynCall_viijii'] = wasmExports['oc'])(
9104
+ var dynCall_iijiji = (Module['dynCall_iijiji'] = (a0, a1, a2, a3, a4, a5) =>
9105
+ (dynCall_iijiji = Module['dynCall_iijiji'] = wasmExports['nc'])(
9087
9106
  a0,
9088
9107
  a1,
9089
9108
  a2,
@@ -9092,8 +9111,11 @@ export function init(RuntimeName, PHPLoader) {
9092
9111
  a5
9093
9112
  ));
9094
9113
 
9095
- var dynCall_iijiji = (Module['dynCall_iijiji'] = (a0, a1, a2, a3, a4, a5) =>
9096
- (dynCall_iijiji = Module['dynCall_iijiji'] = wasmExports['pc'])(
9114
+ var dynCall_vji = (Module['dynCall_vji'] = (a0, a1, a2) =>
9115
+ (dynCall_vji = Module['dynCall_vji'] = wasmExports['oc'])(a0, a1, a2));
9116
+
9117
+ var dynCall_viijii = (Module['dynCall_viijii'] = (a0, a1, a2, a3, a4, a5) =>
9118
+ (dynCall_viijii = Module['dynCall_viijii'] = wasmExports['pc'])(
9097
9119
  a0,
9098
9120
  a1,
9099
9121
  a2,
@@ -9102,11 +9124,8 @@ export function init(RuntimeName, PHPLoader) {
9102
9124
  a5
9103
9125
  ));
9104
9126
 
9105
- var dynCall_vji = (Module['dynCall_vji'] = (a0, a1, a2) =>
9106
- (dynCall_vji = Module['dynCall_vji'] = wasmExports['qc'])(a0, a1, a2));
9107
-
9108
9127
  var dynCall_viidii = (Module['dynCall_viidii'] = (a0, a1, a2, a3, a4, a5) =>
9109
- (dynCall_viidii = Module['dynCall_viidii'] = wasmExports['rc'])(
9128
+ (dynCall_viidii = Module['dynCall_viidii'] = wasmExports['qc'])(
9110
9129
  a0,
9111
9130
  a1,
9112
9131
  a2,
@@ -9115,6 +9134,9 @@ export function init(RuntimeName, PHPLoader) {
9115
9134
  a5
9116
9135
  ));
9117
9136
 
9137
+ var dynCall_jii = (Module['dynCall_jii'] = (a0, a1, a2) =>
9138
+ (dynCall_jii = Module['dynCall_jii'] = wasmExports['rc'])(a0, a1, a2));
9139
+
9118
9140
  var _asyncify_start_unwind = (a0) =>
9119
9141
  (_asyncify_start_unwind = wasmExports['sc'])(a0);
9120
9142