@php-wasm/web-8-5 3.1.33 → 3.1.35

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.
@@ -1,7 +1,7 @@
1
- import dependencyFilename from './8_5_5/php_8_5.wasm';
1
+ import dependencyFilename from './8_5_6/php_8_5.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 24079170;
4
- const phpVersionString = '8.5.5';
3
+ export const dependenciesTotalSize = 24104251;
4
+ const phpVersionString = '8.5.6';
5
5
  export function init(RuntimeName, PHPLoader) {
6
6
  // The rest of the code comes from the built php.js file and esm-suffix.js
7
7
  var Module = typeof PHPLoader != 'undefined' ? PHPLoader : {};
@@ -4796,6 +4796,7 @@ export function init(RuntimeName, PHPLoader) {
4796
4796
  O_NONBLOCK: 2048,
4797
4797
  POLLHUP: 16,
4798
4798
  SETFL_MASK: 3072,
4799
+ socketTimeouts: new Map,
4799
4800
  init: function () {
4800
4801
  if (PHPLoader.bindUserSpace) {
4801
4802
  addOnInit(() => {
@@ -5159,6 +5160,29 @@ export function init(RuntimeName, PHPLoader) {
5159
5160
  return [promise, cancel];
5160
5161
  },
5161
5162
  noop: function () {},
5163
+ parseSocketTimeout: function (optionValuePtr, optionLen) {
5164
+ if (!optionValuePtr || optionLen < 8) {
5165
+ return null;
5166
+ }
5167
+ let seconds;
5168
+ let microseconds;
5169
+ if (optionLen >= 16) {
5170
+ seconds = Number(HEAP64[optionValuePtr >> 3]);
5171
+ microseconds = Number(HEAP64[(optionValuePtr + 8) >> 3]);
5172
+ } else {
5173
+ seconds = HEAP32[optionValuePtr >> 2];
5174
+ microseconds = HEAP32[(optionValuePtr + 4) >> 2];
5175
+ }
5176
+ if (
5177
+ !Number.isFinite(seconds) ||
5178
+ !Number.isFinite(microseconds) ||
5179
+ seconds < 0 ||
5180
+ microseconds < 0
5181
+ ) {
5182
+ return null;
5183
+ }
5184
+ return seconds * 1e3 + Math.ceil(microseconds / 1e3);
5185
+ },
5162
5186
  spawnProcess: function (command, args, options) {
5163
5187
  if (Module['spawnProcess']) {
5164
5188
  const spawned = Module['spawnProcess'](command, args, {
@@ -5187,6 +5211,7 @@ export function init(RuntimeName, PHPLoader) {
5187
5211
  throw e;
5188
5212
  },
5189
5213
  shutdownSocket: function (socketd, how) {
5214
+ PHPWASM.socketTimeouts.delete(socketd);
5190
5215
  const sock = getSocketFromFD(socketd);
5191
5216
  const peer = Object.values(sock.peers)[0];
5192
5217
  if (!peer) {
@@ -5256,41 +5281,74 @@ export function init(RuntimeName, PHPLoader) {
5256
5281
  wakeUp(-ERRNO_CODES.ECONNREFUSED);
5257
5282
  return;
5258
5283
  }
5259
- const timeout = 3e4;
5284
+ // Wait for the connection to be established. A zero timeval
5285
+ // disables the timeout, matching SO_SNDTIMEO semantics.
5286
+ const sendTimeout = PHPWASM.socketTimeouts.get(sockfd)?.send;
5287
+ const timeout = sendTimeout ?? 3e4;
5260
5288
  let resolved = false;
5261
- const timeoutId = setTimeout(() => {
5262
- if (!resolved) {
5263
- resolved = true;
5264
- wakeUp(-ERRNO_CODES.ETIMEDOUT);
5265
- }
5266
- }, timeout);
5267
- const handleOpen = () => {
5268
- if (!resolved) {
5269
- resolved = true;
5289
+ let timeoutId;
5290
+ let handleOpen;
5291
+ let handleError;
5292
+ let handleClose;
5293
+ const peer = PHPWASM.getAllPeers(sock).find(
5294
+ (candidate) => candidate.socket === ws
5295
+ );
5296
+
5297
+ const cleanupConnectListeners = () => {
5298
+ if (typeof timeoutId !== 'undefined') {
5270
5299
  clearTimeout(timeoutId);
5271
- ws.removeEventListener('error', handleError);
5272
- ws.removeEventListener('close', handleClose);
5273
- wakeUp(0);
5274
5300
  }
5301
+ ws.removeEventListener('open', handleOpen);
5302
+ ws.removeEventListener('error', handleError);
5303
+ ws.removeEventListener('close', handleClose);
5275
5304
  };
5276
- const handleError = () => {
5277
- if (!resolved) {
5278
- resolved = true;
5279
- clearTimeout(timeoutId);
5280
- ws.removeEventListener('open', handleOpen);
5281
- ws.removeEventListener('close', handleClose);
5282
- wakeUp(-ERRNO_CODES.ECONNREFUSED);
5305
+
5306
+ const cleanupFailedConnect = (errno) => {
5307
+ try {
5308
+ if (
5309
+ ws.readyState !== ws.CLOSING &&
5310
+ ws.readyState !== ws.CLOSED
5311
+ ) {
5312
+ ws.close();
5313
+ }
5314
+ } catch (e) {
5315
+ // Ignore close errors on an already-failed connect.
5316
+ }
5317
+ if (peer) {
5318
+ SOCKFS.websocket_sock_ops.removePeer(sock, peer);
5283
5319
  }
5320
+ sock.connecting = false;
5321
+ sock.error = errno;
5284
5322
  };
5285
- const handleClose = () => {
5323
+
5324
+ const finishConnect = (result) => {
5286
5325
  if (!resolved) {
5287
5326
  resolved = true;
5288
- clearTimeout(timeoutId);
5289
- ws.removeEventListener('open', handleOpen);
5290
- ws.removeEventListener('error', handleError);
5291
- wakeUp(-ERRNO_CODES.ECONNREFUSED);
5327
+ cleanupConnectListeners();
5328
+ if (result < 0) {
5329
+ cleanupFailedConnect(-result);
5330
+ }
5331
+ wakeUp(result);
5292
5332
  }
5293
5333
  };
5334
+
5335
+ if (timeout > 0) {
5336
+ timeoutId = setTimeout(() => {
5337
+ finishConnect(-ERRNO_CODES.ETIMEDOUT);
5338
+ }, timeout);
5339
+ }
5340
+
5341
+ handleOpen = () => {
5342
+ finishConnect(0);
5343
+ };
5344
+
5345
+ handleError = () => {
5346
+ finishConnect(-ERRNO_CODES.ECONNREFUSED);
5347
+ };
5348
+
5349
+ handleClose = () => {
5350
+ finishConnect(-ERRNO_CODES.ECONNREFUSED);
5351
+ };
5294
5352
  ws.addEventListener('open', handleOpen);
5295
5353
  ws.addEventListener('error', handleError);
5296
5354
  ws.addEventListener('close', handleClose);
@@ -7664,21 +7722,35 @@ export function init(RuntimeName, PHPLoader) {
7664
7722
  const SO_SNDTIMEO = 67;
7665
7723
  const IPPROTO_TCP = 6;
7666
7724
  const TCP_NODELAY = 1;
7725
+ if (
7726
+ level === SOL_SOCKET &&
7727
+ (optionName === SO_RCVTIMEO || optionName === SO_SNDTIMEO)
7728
+ ) {
7729
+ const timeoutMs = PHPWASM.parseSocketTimeout(
7730
+ optionValuePtr,
7731
+ optionLen
7732
+ );
7733
+ if (timeoutMs === null) {
7734
+ return -1;
7735
+ }
7736
+ const timeouts = PHPWASM.socketTimeouts.get(socketd) || {};
7737
+ if (optionName === SO_RCVTIMEO) {
7738
+ timeouts.receive = timeoutMs;
7739
+ } else {
7740
+ timeouts.send = timeoutMs;
7741
+ }
7742
+ PHPWASM.socketTimeouts.set(socketd, timeouts);
7743
+ return 0;
7744
+ }
7667
7745
  const isForwardable =
7668
7746
  (level === SOL_SOCKET && optionName === SO_KEEPALIVE) ||
7669
7747
  (level === IPPROTO_TCP && optionName === TCP_NODELAY);
7670
- const isIgnorable =
7671
- level === SOL_SOCKET &&
7672
- (optionName === SO_RCVTIMEO || optionName === SO_SNDTIMEO);
7673
- if (!isForwardable && !isIgnorable) {
7748
+ if (!isForwardable) {
7674
7749
  console.warn(
7675
7750
  `Unsupported socket option: ${level}, ${optionName}, ${optionValue}`
7676
7751
  );
7677
7752
  return -1;
7678
7753
  }
7679
- if (isIgnorable) {
7680
- return 0;
7681
- }
7682
7754
  const ws = PHPWASM.getAllWebSockets(socketd)[0];
7683
7755
  if (!ws) {
7684
7756
  return -1;
@@ -8295,6 +8367,7 @@ export function init(RuntimeName, PHPLoader) {
8295
8367
  _php_date_get_interface_ce,
8296
8368
  _php_date_get_timezone_ce,
8297
8369
  _get_timezone_info,
8370
+ _php_info_print_table_header,
8298
8371
  _php_info_print_table_row,
8299
8372
  _php_info_print_table_start,
8300
8373
  _php_info_print_table_end,
@@ -8432,6 +8505,7 @@ export function init(RuntimeName, PHPLoader) {
8432
8505
  _zend_illegal_container_offset,
8433
8506
  _zend_argument_count_error,
8434
8507
  _zend_value_error,
8508
+ _strtoll,
8435
8509
  _strlen,
8436
8510
  _memcmp,
8437
8511
  _free,
@@ -8448,9 +8522,11 @@ export function init(RuntimeName, PHPLoader) {
8448
8522
  _strrchr,
8449
8523
  _strcasecmp,
8450
8524
  _memchr,
8525
+ _isalnum,
8451
8526
  _fwrite,
8452
8527
  _strncmp,
8453
8528
  _strtok_r,
8529
+ _unlink,
8454
8530
  _fileno,
8455
8531
  _fread,
8456
8532
  _fclose,
@@ -8458,10 +8534,15 @@ export function init(RuntimeName, PHPLoader) {
8458
8534
  _strstr,
8459
8535
  _close,
8460
8536
  _tolower,
8537
+ _fseek,
8461
8538
  _stat,
8462
8539
  _gettimeofday,
8463
8540
  _fopen,
8464
8541
  _open,
8542
+ _rename,
8543
+ _mkdir,
8544
+ _rmdir,
8545
+ _opendir,
8465
8546
  _strncpy,
8466
8547
  _realloc,
8467
8548
  _localtime_r,
@@ -8481,6 +8562,8 @@ export function init(RuntimeName, PHPLoader) {
8481
8562
  _setlocale,
8482
8563
  _calloc,
8483
8564
  _qsort,
8565
+ _readdir,
8566
+ _closedir,
8484
8567
  _isdigit,
8485
8568
  _wasm_popen,
8486
8569
  _wasm_php_exec,
@@ -8500,6 +8583,7 @@ export function init(RuntimeName, PHPLoader) {
8500
8583
  _atol,
8501
8584
  _strcat,
8502
8585
  _strcpy,
8586
+ _ftell,
8503
8587
  _wasm_read,
8504
8588
  _feof,
8505
8589
  _strncat,
@@ -8528,6 +8612,8 @@ export function init(RuntimeName, PHPLoader) {
8528
8612
  _php_wasm_init,
8529
8613
  _wasm_free,
8530
8614
  _wasm_trace,
8615
+ _sqlite3_auto_extension,
8616
+ _sqlite3_cancel_auto_extension,
8531
8617
  _rewind,
8532
8618
  _modf,
8533
8619
  ___extenddftf2,
@@ -8587,11 +8673,11 @@ export function init(RuntimeName, PHPLoader) {
8587
8673
  dynCall_iijjjj,
8588
8674
  dynCall_ji,
8589
8675
  dynCall_viji,
8676
+ dynCall_iiij,
8590
8677
  dynCall_iijji,
8591
8678
  dynCall_vji,
8592
8679
  dynCall_vijj,
8593
8680
  dynCall_iij,
8594
- dynCall_iiij,
8595
8681
  dynCall_iijiji,
8596
8682
  dynCall_iiiiiiii,
8597
8683
  dynCall_iiiij,
@@ -8664,6 +8750,8 @@ export function init(RuntimeName, PHPLoader) {
8664
8750
  wasmExports['php_date_get_timezone_ce'];
8665
8751
  _get_timezone_info = Module['_get_timezone_info'] =
8666
8752
  wasmExports['get_timezone_info'];
8753
+ _php_info_print_table_header = Module['_php_info_print_table_header'] =
8754
+ wasmExports['php_info_print_table_header'];
8667
8755
  _php_info_print_table_row = Module['_php_info_print_table_row'] =
8668
8756
  wasmExports['php_info_print_table_row'];
8669
8757
  _php_info_print_table_start = Module['_php_info_print_table_start'] =
@@ -8945,6 +9033,7 @@ export function init(RuntimeName, PHPLoader) {
8945
9033
  wasmExports['zend_argument_count_error'];
8946
9034
  _zend_value_error = Module['_zend_value_error'] =
8947
9035
  wasmExports['zend_value_error'];
9036
+ _strtoll = Module['_strtoll'] = wasmExports['strtoll'];
8948
9037
  _strlen = Module['_strlen'] = wasmExports['strlen'];
8949
9038
  _memcmp = Module['_memcmp'] = wasmExports['memcmp'];
8950
9039
  _free = Module['_free'] = wasmExports['free'];
@@ -8965,9 +9054,11 @@ export function init(RuntimeName, PHPLoader) {
8965
9054
  _strrchr = Module['_strrchr'] = wasmExports['strrchr'];
8966
9055
  _strcasecmp = Module['_strcasecmp'] = wasmExports['strcasecmp'];
8967
9056
  _memchr = Module['_memchr'] = wasmExports['memchr'];
9057
+ _isalnum = Module['_isalnum'] = wasmExports['isalnum'];
8968
9058
  _fwrite = Module['_fwrite'] = wasmExports['fwrite'];
8969
9059
  _strncmp = Module['_strncmp'] = wasmExports['strncmp'];
8970
9060
  _strtok_r = Module['_strtok_r'] = wasmExports['strtok_r'];
9061
+ _unlink = Module['_unlink'] = wasmExports['unlink'];
8971
9062
  _fileno = Module['_fileno'] = wasmExports['fileno'];
8972
9063
  _fread = Module['_fread'] = wasmExports['fread'];
8973
9064
  _fclose = Module['_fclose'] = wasmExports['fclose'];
@@ -8975,10 +9066,15 @@ export function init(RuntimeName, PHPLoader) {
8975
9066
  _strstr = Module['_strstr'] = wasmExports['strstr'];
8976
9067
  _close = Module['_close'] = wasmExports['close'];
8977
9068
  _tolower = Module['_tolower'] = wasmExports['tolower'];
9069
+ _fseek = Module['_fseek'] = wasmExports['fseek'];
8978
9070
  _stat = Module['_stat'] = wasmExports['stat'];
8979
9071
  _gettimeofday = Module['_gettimeofday'] = wasmExports['gettimeofday'];
8980
9072
  _fopen = Module['_fopen'] = wasmExports['fopen'];
8981
9073
  _open = Module['_open'] = wasmExports['open'];
9074
+ _rename = Module['_rename'] = wasmExports['rename'];
9075
+ _mkdir = Module['_mkdir'] = wasmExports['mkdir'];
9076
+ _rmdir = Module['_rmdir'] = wasmExports['rmdir'];
9077
+ _opendir = Module['_opendir'] = wasmExports['opendir'];
8982
9078
  _strncpy = Module['_strncpy'] = wasmExports['strncpy'];
8983
9079
  _realloc = Module['_realloc'] = wasmExports['realloc'];
8984
9080
  _localtime_r = Module['_localtime_r'] = wasmExports['localtime_r'];
@@ -8998,6 +9094,8 @@ export function init(RuntimeName, PHPLoader) {
8998
9094
  _setlocale = Module['_setlocale'] = wasmExports['setlocale'];
8999
9095
  _calloc = wasmExports['calloc'];
9000
9096
  _qsort = Module['_qsort'] = wasmExports['qsort'];
9097
+ _readdir = Module['_readdir'] = wasmExports['readdir'];
9098
+ _closedir = Module['_closedir'] = wasmExports['closedir'];
9001
9099
  _isdigit = Module['_isdigit'] = wasmExports['isdigit'];
9002
9100
  _wasm_popen = Module['_wasm_popen'] = wasmExports['wasm_popen'];
9003
9101
  _wasm_php_exec = Module['_wasm_php_exec'] =
@@ -9019,6 +9117,7 @@ export function init(RuntimeName, PHPLoader) {
9019
9117
  _atol = Module['_atol'] = wasmExports['atol'];
9020
9118
  _strcat = Module['_strcat'] = wasmExports['strcat'];
9021
9119
  _strcpy = Module['_strcpy'] = wasmExports['strcpy'];
9120
+ _ftell = Module['_ftell'] = wasmExports['ftell'];
9022
9121
  _wasm_read = Module['_wasm_read'] = wasmExports['wasm_read'];
9023
9122
  _feof = Module['_feof'] = wasmExports['feof'];
9024
9123
  _strncat = Module['_strncat'] = wasmExports['strncat'];
@@ -9072,6 +9171,11 @@ export function init(RuntimeName, PHPLoader) {
9072
9171
  Module['_wasm_free'] =
9073
9172
  wasmExports['wasm_free'];
9074
9173
  _wasm_trace = Module['_wasm_trace'] = wasmExports['wasm_trace'];
9174
+ _sqlite3_auto_extension = Module['_sqlite3_auto_extension'] =
9175
+ wasmExports['sqlite3_auto_extension'];
9176
+ _sqlite3_cancel_auto_extension = Module[
9177
+ '_sqlite3_cancel_auto_extension'
9178
+ ] = wasmExports['sqlite3_cancel_auto_extension'];
9075
9179
  _rewind = Module['_rewind'] = wasmExports['rewind'];
9076
9180
  _modf = Module['_modf'] = wasmExports['modf'];
9077
9181
  ___extenddftf2 = Module['___extenddftf2'] =
@@ -9150,11 +9254,11 @@ export function init(RuntimeName, PHPLoader) {
9150
9254
  dynCall_iijjjj = dynCalls['iijjjj'] = wasmExports['dynCall_iijjjj'];
9151
9255
  dynCall_ji = dynCalls['ji'] = wasmExports['dynCall_ji'];
9152
9256
  dynCall_viji = dynCalls['viji'] = wasmExports['dynCall_viji'];
9257
+ dynCall_iiij = dynCalls['iiij'] = wasmExports['dynCall_iiij'];
9153
9258
  dynCall_iijji = dynCalls['iijji'] = wasmExports['dynCall_iijji'];
9154
9259
  dynCall_vji = dynCalls['vji'] = wasmExports['dynCall_vji'];
9155
9260
  dynCall_vijj = dynCalls['vijj'] = wasmExports['dynCall_vijj'];
9156
9261
  dynCall_iij = dynCalls['iij'] = wasmExports['dynCall_iij'];
9157
- dynCall_iiij = dynCalls['iiij'] = wasmExports['dynCall_iiij'];
9158
9262
  dynCall_iijiji = dynCalls['iijiji'] = wasmExports['dynCall_iijiji'];
9159
9263
  dynCall_iiiiiiii = dynCalls['iiiiiiii'] =
9160
9264
  wasmExports['dynCall_iiiiiiii'];
@@ -9233,40 +9337,40 @@ export function init(RuntimeName, PHPLoader) {
9233
9337
  __indirect_function_table = wasmTable =
9234
9338
  wasmExports['__indirect_function_table'];
9235
9339
  }
9236
- var _compiler_globals = (Module['_compiler_globals'] = 18122408);
9237
- var _executor_globals = (Module['_executor_globals'] = 18122824);
9238
- var _zend_ce_exception = (Module['_zend_ce_exception'] = 18118844);
9239
- var _zend_empty_array = (Module['_zend_empty_array'] = 17502320);
9240
- var _zend_ce_aggregate = (Module['_zend_ce_aggregate'] = 18004624);
9241
- var _zend_ce_iterator = (Module['_zend_ce_iterator'] = 18004628);
9242
- var _zend_ce_countable = (Module['_zend_ce_countable'] = 18004640);
9243
- var _std_object_handlers = (Module['_std_object_handlers'] = 17485712);
9244
- var _zend_empty_string = (Module['_zend_empty_string'] = 18121172);
9245
- var _zend_known_strings = (Module['_zend_known_strings'] = 18121176);
9340
+ var _compiler_globals = (Module['_compiler_globals'] = 18128232);
9341
+ var _executor_globals = (Module['_executor_globals'] = 18128648);
9342
+ var _zend_ce_exception = (Module['_zend_ce_exception'] = 18124668);
9343
+ var _zend_empty_array = (Module['_zend_empty_array'] = 17508144);
9344
+ var _zend_ce_aggregate = (Module['_zend_ce_aggregate'] = 18010448);
9345
+ var _zend_ce_iterator = (Module['_zend_ce_iterator'] = 18010452);
9346
+ var _zend_ce_countable = (Module['_zend_ce_countable'] = 18010464);
9347
+ var _std_object_handlers = (Module['_std_object_handlers'] = 17491536);
9348
+ var _zend_empty_string = (Module['_zend_empty_string'] = 18126996);
9349
+ var _zend_known_strings = (Module['_zend_known_strings'] = 18127e3);
9246
9350
  var _zend_string_init_interned = (Module['_zend_string_init_interned'] =
9247
- 18121244);
9351
+ 18127068);
9248
9352
  var ___memory_base = (Module['___memory_base'] = 0);
9249
9353
  var ___table_base = (Module['___table_base'] = 1);
9250
- var _stdout = (Module['_stdout'] = 17997520);
9251
- var _timezone = (Module['_timezone'] = 18459520);
9252
- var _tzname = (Module['_tzname'] = 18459528);
9253
- var ___heap_base = 19521264;
9354
+ var _stdout = (Module['_stdout'] = 18003344);
9355
+ var _timezone = (Module['_timezone'] = 18465344);
9356
+ var _tzname = (Module['_tzname'] = 18465352);
9357
+ var ___heap_base = 19527088;
9254
9358
  var __ZNSt3__25ctypeIcE2idE = (Module['__ZNSt3__25ctypeIcE2idE'] =
9255
- 18472676);
9359
+ 18478500);
9256
9360
  var __ZTVN10__cxxabiv120__si_class_type_infoE = (Module[
9257
9361
  '__ZTVN10__cxxabiv120__si_class_type_infoE'
9258
- ] = 17997768);
9362
+ ] = 18003592);
9259
9363
  var __ZTVN10__cxxabiv117__class_type_infoE = (Module[
9260
9364
  '__ZTVN10__cxxabiv117__class_type_infoE'
9261
- ] = 17997728);
9365
+ ] = 18003552);
9262
9366
  var __ZTVN10__cxxabiv121__vmi_class_type_infoE = (Module[
9263
9367
  '__ZTVN10__cxxabiv121__vmi_class_type_infoE'
9264
- ] = 17997820);
9368
+ ] = 18003644);
9265
9369
  var __ZTISt20bad_array_new_length = (Module[
9266
9370
  '__ZTISt20bad_array_new_length'
9267
- ] = 17997892);
9268
- var __ZTVSt12length_error = (Module['__ZTVSt12length_error'] = 17997936);
9269
- var __ZTISt12length_error = (Module['__ZTISt12length_error'] = 17997956);
9371
+ ] = 18003716);
9372
+ var __ZTVSt12length_error = (Module['__ZTVSt12length_error'] = 18003760);
9373
+ var __ZTISt12length_error = (Module['__ZTISt12length_error'] = 18003780);
9270
9374
  var wasmImports = {
9271
9375
  __assert_fail: ___assert_fail,
9272
9376
  __asyncify_data: ___asyncify_data,
@@ -9610,6 +9714,16 @@ export function init(RuntimeName, PHPLoader) {
9610
9714
  return 0n;
9611
9715
  }
9612
9716
  }
9717
+ function invoke_iiij(index, a1, a2, a3) {
9718
+ var sp = stackSave();
9719
+ try {
9720
+ return dynCalls['iiij'](index, a1, a2, a3);
9721
+ } catch (e) {
9722
+ stackRestore(sp);
9723
+ if (e !== e + 0) throw e;
9724
+ _setThrew(1, 0);
9725
+ }
9726
+ }
9613
9727
  function invoke_ji(index, a1) {
9614
9728
  var sp = stackSave();
9615
9729
  try {
@@ -9691,16 +9805,6 @@ export function init(RuntimeName, PHPLoader) {
9691
9805
  _setThrew(1, 0);
9692
9806
  }
9693
9807
  }
9694
- function invoke_iiij(index, a1, a2, a3) {
9695
- var sp = stackSave();
9696
- try {
9697
- return dynCalls['iiij'](index, a1, a2, a3);
9698
- } catch (e) {
9699
- stackRestore(sp);
9700
- if (e !== e + 0) throw e;
9701
- _setThrew(1, 0);
9702
- }
9703
- }
9704
9808
  function invoke_viiij(index, a1, a2, a3, a4) {
9705
9809
  var sp = stackSave();
9706
9810
  try {
Binary file
package/jspi/php_8_5.js CHANGED
@@ -1,7 +1,7 @@
1
- import dependencyFilename from './8_5_5/php_8_5.wasm';
1
+ import dependencyFilename from './8_5_6/php_8_5.wasm';
2
2
  export { dependencyFilename };
3
- export const dependenciesTotalSize = 23501594;
4
- const phpVersionString = '8.5.5';
3
+ export const dependenciesTotalSize = 23527192;
4
+ const phpVersionString = '8.5.6';
5
5
  export function init(RuntimeName, PHPLoader) {
6
6
  // The rest of the code comes from the built php.js file and esm-suffix.js
7
7
  var Module = typeof PHPLoader != 'undefined' ? PHPLoader : {};
@@ -174,6 +174,9 @@ export function init(RuntimeName, PHPLoader) {
174
174
  }
175
175
  function getWasmImports() {
176
176
  Asyncify.instrumentWasmImports(wasmImports);
177
+ wasmImports['__c_longjmp'] ??= new WebAssembly.Tag({
178
+ parameters: ['i32'],
179
+ });
177
180
  var imports = {
178
181
  env: wasmImports,
179
182
  wasi_snapshot_preview1: wasmImports,
@@ -4670,6 +4673,7 @@ export function init(RuntimeName, PHPLoader) {
4670
4673
  O_NONBLOCK: 2048,
4671
4674
  POLLHUP: 16,
4672
4675
  SETFL_MASK: 3072,
4676
+ socketTimeouts: new Map,
4673
4677
  init: function () {
4674
4678
  if (PHPLoader.bindUserSpace) {
4675
4679
  addOnInit(() => {
@@ -5033,6 +5037,29 @@ export function init(RuntimeName, PHPLoader) {
5033
5037
  return [promise, cancel];
5034
5038
  },
5035
5039
  noop: function () {},
5040
+ parseSocketTimeout: function (optionValuePtr, optionLen) {
5041
+ if (!optionValuePtr || optionLen < 8) {
5042
+ return null;
5043
+ }
5044
+ let seconds;
5045
+ let microseconds;
5046
+ if (optionLen >= 16) {
5047
+ seconds = Number(HEAP64[optionValuePtr >> 3]);
5048
+ microseconds = Number(HEAP64[(optionValuePtr + 8) >> 3]);
5049
+ } else {
5050
+ seconds = HEAP32[optionValuePtr >> 2];
5051
+ microseconds = HEAP32[(optionValuePtr + 4) >> 2];
5052
+ }
5053
+ if (
5054
+ !Number.isFinite(seconds) ||
5055
+ !Number.isFinite(microseconds) ||
5056
+ seconds < 0 ||
5057
+ microseconds < 0
5058
+ ) {
5059
+ return null;
5060
+ }
5061
+ return seconds * 1e3 + Math.ceil(microseconds / 1e3);
5062
+ },
5036
5063
  spawnProcess: function (command, args, options) {
5037
5064
  if (Module['spawnProcess']) {
5038
5065
  const spawned = Module['spawnProcess'](command, args, {
@@ -5061,6 +5088,7 @@ export function init(RuntimeName, PHPLoader) {
5061
5088
  throw e;
5062
5089
  },
5063
5090
  shutdownSocket: function (socketd, how) {
5091
+ PHPWASM.socketTimeouts.delete(socketd);
5064
5092
  const sock = getSocketFromFD(socketd);
5065
5093
  const peer = Object.values(sock.peers)[0];
5066
5094
  if (!peer) {
@@ -5130,41 +5158,74 @@ export function init(RuntimeName, PHPLoader) {
5130
5158
  wakeUp(-ERRNO_CODES.ECONNREFUSED);
5131
5159
  return;
5132
5160
  }
5133
- const timeout = 3e4;
5161
+ // Wait for the connection to be established. A zero timeval
5162
+ // disables the timeout, matching SO_SNDTIMEO semantics.
5163
+ const sendTimeout = PHPWASM.socketTimeouts.get(sockfd)?.send;
5164
+ const timeout = sendTimeout ?? 3e4;
5134
5165
  let resolved = false;
5135
- const timeoutId = setTimeout(() => {
5136
- if (!resolved) {
5137
- resolved = true;
5138
- wakeUp(-ERRNO_CODES.ETIMEDOUT);
5139
- }
5140
- }, timeout);
5141
- const handleOpen = () => {
5142
- if (!resolved) {
5143
- resolved = true;
5166
+ let timeoutId;
5167
+ let handleOpen;
5168
+ let handleError;
5169
+ let handleClose;
5170
+ const peer = PHPWASM.getAllPeers(sock).find(
5171
+ (candidate) => candidate.socket === ws
5172
+ );
5173
+
5174
+ const cleanupConnectListeners = () => {
5175
+ if (typeof timeoutId !== 'undefined') {
5144
5176
  clearTimeout(timeoutId);
5145
- ws.removeEventListener('error', handleError);
5146
- ws.removeEventListener('close', handleClose);
5147
- wakeUp(0);
5148
5177
  }
5178
+ ws.removeEventListener('open', handleOpen);
5179
+ ws.removeEventListener('error', handleError);
5180
+ ws.removeEventListener('close', handleClose);
5149
5181
  };
5150
- const handleError = () => {
5151
- if (!resolved) {
5152
- resolved = true;
5153
- clearTimeout(timeoutId);
5154
- ws.removeEventListener('open', handleOpen);
5155
- ws.removeEventListener('close', handleClose);
5156
- wakeUp(-ERRNO_CODES.ECONNREFUSED);
5182
+
5183
+ const cleanupFailedConnect = (errno) => {
5184
+ try {
5185
+ if (
5186
+ ws.readyState !== ws.CLOSING &&
5187
+ ws.readyState !== ws.CLOSED
5188
+ ) {
5189
+ ws.close();
5190
+ }
5191
+ } catch (e) {
5192
+ // Ignore close errors on an already-failed connect.
5157
5193
  }
5194
+ if (peer) {
5195
+ SOCKFS.websocket_sock_ops.removePeer(sock, peer);
5196
+ }
5197
+ sock.connecting = false;
5198
+ sock.error = errno;
5158
5199
  };
5159
- const handleClose = () => {
5200
+
5201
+ const finishConnect = (result) => {
5160
5202
  if (!resolved) {
5161
5203
  resolved = true;
5162
- clearTimeout(timeoutId);
5163
- ws.removeEventListener('open', handleOpen);
5164
- ws.removeEventListener('error', handleError);
5165
- wakeUp(-ERRNO_CODES.ECONNREFUSED);
5204
+ cleanupConnectListeners();
5205
+ if (result < 0) {
5206
+ cleanupFailedConnect(-result);
5207
+ }
5208
+ wakeUp(result);
5166
5209
  }
5167
5210
  };
5211
+
5212
+ if (timeout > 0) {
5213
+ timeoutId = setTimeout(() => {
5214
+ finishConnect(-ERRNO_CODES.ETIMEDOUT);
5215
+ }, timeout);
5216
+ }
5217
+
5218
+ handleOpen = () => {
5219
+ finishConnect(0);
5220
+ };
5221
+
5222
+ handleError = () => {
5223
+ finishConnect(-ERRNO_CODES.ECONNREFUSED);
5224
+ };
5225
+
5226
+ handleClose = () => {
5227
+ finishConnect(-ERRNO_CODES.ECONNREFUSED);
5228
+ };
5168
5229
  ws.addEventListener('open', handleOpen);
5169
5230
  ws.addEventListener('error', handleError);
5170
5231
  ws.addEventListener('close', handleClose);
@@ -7534,21 +7595,35 @@ export function init(RuntimeName, PHPLoader) {
7534
7595
  const SO_SNDTIMEO = 67;
7535
7596
  const IPPROTO_TCP = 6;
7536
7597
  const TCP_NODELAY = 1;
7598
+ if (
7599
+ level === SOL_SOCKET &&
7600
+ (optionName === SO_RCVTIMEO || optionName === SO_SNDTIMEO)
7601
+ ) {
7602
+ const timeoutMs = PHPWASM.parseSocketTimeout(
7603
+ optionValuePtr,
7604
+ optionLen
7605
+ );
7606
+ if (timeoutMs === null) {
7607
+ return -1;
7608
+ }
7609
+ const timeouts = PHPWASM.socketTimeouts.get(socketd) || {};
7610
+ if (optionName === SO_RCVTIMEO) {
7611
+ timeouts.receive = timeoutMs;
7612
+ } else {
7613
+ timeouts.send = timeoutMs;
7614
+ }
7615
+ PHPWASM.socketTimeouts.set(socketd, timeouts);
7616
+ return 0;
7617
+ }
7537
7618
  const isForwardable =
7538
7619
  (level === SOL_SOCKET && optionName === SO_KEEPALIVE) ||
7539
7620
  (level === IPPROTO_TCP && optionName === TCP_NODELAY);
7540
- const isIgnorable =
7541
- level === SOL_SOCKET &&
7542
- (optionName === SO_RCVTIMEO || optionName === SO_SNDTIMEO);
7543
- if (!isForwardable && !isIgnorable) {
7621
+ if (!isForwardable) {
7544
7622
  console.warn(
7545
7623
  `Unsupported socket option: ${level}, ${optionName}, ${optionValue}`
7546
7624
  );
7547
7625
  return -1;
7548
7626
  }
7549
- if (isIgnorable) {
7550
- return 0;
7551
- }
7552
7627
  const ws = PHPWASM.getAllWebSockets(socketd)[0];
7553
7628
  if (!ws) {
7554
7629
  return -1;
@@ -8017,6 +8092,7 @@ export function init(RuntimeName, PHPLoader) {
8017
8092
  _php_date_get_interface_ce,
8018
8093
  _php_date_get_timezone_ce,
8019
8094
  _get_timezone_info,
8095
+ _php_info_print_table_header,
8020
8096
  _php_info_print_table_row,
8021
8097
  _php_info_print_table_start,
8022
8098
  _php_info_print_table_end,
@@ -8074,26 +8150,32 @@ export function init(RuntimeName, PHPLoader) {
8074
8150
  _add_next_index_stringl,
8075
8151
  _zend_register_internal_class_with_flags,
8076
8152
  _zend_class_implements,
8153
+ _zend_register_internal_interface,
8154
+ _zend_is_callable,
8077
8155
  _zend_fcall_info_init,
8078
8156
  _zend_declare_typed_property,
8079
8157
  _zend_try_assign_typed_ref_bool,
8080
8158
  _zend_try_assign_typed_ref_long,
8081
8159
  _zend_try_assign_typed_ref_str,
8082
8160
  _zend_try_assign_typed_ref_arr,
8161
+ _zend_declare_property,
8083
8162
  _zend_declare_typed_class_constant,
8084
8163
  _zend_update_property,
8164
+ _zend_is_iterable,
8085
8165
  _zend_add_attribute,
8086
8166
  _zend_register_long_constant,
8087
8167
  _zend_register_string_constant,
8088
8168
  _zend_throw_exception,
8089
8169
  _zend_throw_exception_ex,
8090
8170
  _zend_throw_error_exception,
8171
+ _zend_throw_exception_object,
8091
8172
  _get_active_class_name,
8092
8173
  _get_active_function_or_method_name,
8093
8174
  _zend_get_executed_scope,
8094
8175
  _zend_call_function,
8095
8176
  _zend_call_known_function,
8096
8177
  _zend_call_known_instance_method_with_2_params,
8178
+ _zend_lookup_class_ex,
8097
8179
  _zend_execute,
8098
8180
  _gc_possible_root,
8099
8181
  _zend_get_gc_buffer_create,
@@ -8104,6 +8186,7 @@ export function init(RuntimeName, PHPLoader) {
8104
8186
  __zend_new_array_0,
8105
8187
  __zend_new_array,
8106
8188
  _zend_hash_real_init_packed,
8189
+ _zend_array_count,
8107
8190
  _zend_hash_update,
8108
8191
  _zend_hash_str_update,
8109
8192
  _zend_hash_next_index_insert,
@@ -8112,7 +8195,12 @@ export function init(RuntimeName, PHPLoader) {
8112
8195
  _zend_array_destroy,
8113
8196
  _zend_hash_copy,
8114
8197
  _zend_hash_index_find,
8198
+ _zend_hash_move_forward_ex,
8199
+ _zend_hash_get_current_key_zval_ex,
8200
+ _zend_hash_get_current_key_type_ex,
8201
+ _zend_hash_get_current_data_ex,
8115
8202
  _zend_hash_sort_ex,
8203
+ _zend_do_implement_interface,
8116
8204
  _zend_register_ini_entries_ex,
8117
8205
  _zend_unregister_ini_entries_ex,
8118
8206
  _zend_alter_ini_entry,
@@ -8124,10 +8212,14 @@ export function init(RuntimeName, PHPLoader) {
8124
8212
  _zend_create_internal_iterator_zval,
8125
8213
  _zend_iterator_init,
8126
8214
  _zend_std_get_properties,
8215
+ _zend_std_read_property,
8216
+ _zend_std_write_property,
8127
8217
  _zend_std_compare_objects,
8218
+ _zend_std_has_property,
8128
8219
  _zend_objects_store_del,
8129
8220
  _zend_object_std_init,
8130
8221
  _zend_object_std_dtor,
8222
+ _zend_objects_new,
8131
8223
  _zend_objects_clone_members,
8132
8224
  _destroy_op_array,
8133
8225
  _zend_destroy_static_vars,
@@ -8139,6 +8231,7 @@ export function init(RuntimeName, PHPLoader) {
8139
8231
  __try_convert_to_string,
8140
8232
  _zval_get_double_func,
8141
8233
  _zval_get_string_func,
8234
+ _zend_is_true,
8142
8235
  _numeric_compare_function,
8143
8236
  _compare_function,
8144
8237
  _instanceof_function_slow,
@@ -8159,9 +8252,11 @@ export function init(RuntimeName, PHPLoader) {
8159
8252
  _zend_illegal_container_offset,
8160
8253
  _zend_argument_count_error,
8161
8254
  _zend_value_error,
8255
+ _strtoll,
8162
8256
  _strlen,
8163
8257
  _memcmp,
8164
8258
  _free,
8259
+ _clock_gettime,
8165
8260
  _malloc,
8166
8261
  _snprintf,
8167
8262
  _strchr,
@@ -8170,25 +8265,37 @@ export function init(RuntimeName, PHPLoader) {
8170
8265
  _dlclose,
8171
8266
  _strcmp,
8172
8267
  _getenv,
8268
+ ___wasm_setjmp,
8269
+ ___wasm_setjmp_test,
8270
+ ___wasm_longjmp,
8173
8271
  _atoi,
8174
8272
  ___errno_location,
8175
8273
  _strrchr,
8176
8274
  _strcasecmp,
8177
8275
  _memchr,
8276
+ _isalnum,
8178
8277
  _fwrite,
8179
8278
  _strncmp,
8180
8279
  _strtok_r,
8280
+ _unlink,
8181
8281
  _fileno,
8182
8282
  _fread,
8183
8283
  _fclose,
8184
8284
  _strtoul,
8185
8285
  _strstr,
8286
+ _write,
8186
8287
  _close,
8187
8288
  _tolower,
8289
+ _fseek,
8188
8290
  _stat,
8189
8291
  _gettimeofday,
8190
8292
  _fopen,
8293
+ _getcwd,
8191
8294
  _open,
8295
+ _rename,
8296
+ _mkdir,
8297
+ _rmdir,
8298
+ _opendir,
8192
8299
  _strncpy,
8193
8300
  _realloc,
8194
8301
  _localtime_r,
@@ -8208,9 +8315,12 @@ export function init(RuntimeName, PHPLoader) {
8208
8315
  _setlocale,
8209
8316
  _calloc,
8210
8317
  _qsort,
8318
+ _readdir,
8319
+ _closedir,
8211
8320
  _isdigit,
8212
8321
  _wasm_popen,
8213
8322
  _wasm_php_exec,
8323
+ _strerror_r,
8214
8324
  _php_pollfd_for,
8215
8325
  _htons,
8216
8326
  _ntohs,
@@ -8222,11 +8332,14 @@ export function init(RuntimeName, PHPLoader) {
8222
8332
  _abort,
8223
8333
  _mmap,
8224
8334
  _munmap,
8335
+ _writev,
8225
8336
  _fgets,
8226
8337
  _initgroups,
8227
8338
  _atol,
8228
8339
  _strcat,
8340
+ _posix_memalign,
8229
8341
  _strcpy,
8342
+ _ftell,
8230
8343
  _wasm_read,
8231
8344
  _feof,
8232
8345
  _strncat,
@@ -8255,8 +8368,27 @@ export function init(RuntimeName, PHPLoader) {
8255
8368
  _php_wasm_init,
8256
8369
  _wasm_free,
8257
8370
  _wasm_trace,
8371
+ _getentropy,
8372
+ _pthread_cond_signal,
8373
+ _pthread_cond_wait,
8374
+ _pthread_condattr_destroy,
8375
+ _pthread_condattr_init,
8376
+ _pthread_condattr_setclock,
8377
+ _pthread_mutex_trylock,
8378
+ _pthread_mutexattr_destroy,
8379
+ _pthread_mutexattr_init,
8380
+ _pthread_mutexattr_settype,
8381
+ _sched_yield,
8382
+ _sqlite3_auto_extension,
8383
+ _sqlite3_cancel_auto_extension,
8384
+ _pthread_mutex_init,
8385
+ _pthread_mutex_destroy,
8386
+ _pthread_mutex_lock,
8387
+ _pthread_mutex_unlock,
8258
8388
  _rewind,
8259
8389
  _modf,
8390
+ _pthread_cond_init,
8391
+ _pthread_cond_destroy,
8260
8392
  ___extenddftf2,
8261
8393
  ___letf2,
8262
8394
  ___floatunditf,
@@ -8265,6 +8397,7 @@ export function init(RuntimeName, PHPLoader) {
8265
8397
  ___cxa_atexit,
8266
8398
  ___dl_seterr,
8267
8399
  __emscripten_find_dylib,
8400
+ _pthread_cond_timedwait,
8268
8401
  _mbstowcs,
8269
8402
  _emscripten_builtin_memalign,
8270
8403
  __emscripten_timeout,
@@ -8289,6 +8422,7 @@ export function init(RuntimeName, PHPLoader) {
8289
8422
  memory,
8290
8423
  ___stack_pointer,
8291
8424
  __indirect_function_table,
8425
+ ___c_longjmp,
8292
8426
  wasmTable,
8293
8427
  wasmMemory;
8294
8428
  function assignWasmExports(wasmExports) {
@@ -8300,6 +8434,8 @@ export function init(RuntimeName, PHPLoader) {
8300
8434
  wasmExports['php_date_get_timezone_ce'];
8301
8435
  _get_timezone_info = Module['_get_timezone_info'] =
8302
8436
  wasmExports['get_timezone_info'];
8437
+ _php_info_print_table_header = Module['_php_info_print_table_header'] =
8438
+ wasmExports['php_info_print_table_header'];
8303
8439
  _php_info_print_table_row = Module['_php_info_print_table_row'] =
8304
8440
  wasmExports['php_info_print_table_row'];
8305
8441
  _php_info_print_table_start = Module['_php_info_print_table_start'] =
@@ -8412,6 +8548,11 @@ export function init(RuntimeName, PHPLoader) {
8412
8548
  ] = wasmExports['zend_register_internal_class_with_flags'];
8413
8549
  _zend_class_implements = Module['_zend_class_implements'] =
8414
8550
  wasmExports['zend_class_implements'];
8551
+ _zend_register_internal_interface = Module[
8552
+ '_zend_register_internal_interface'
8553
+ ] = wasmExports['zend_register_internal_interface'];
8554
+ _zend_is_callable = Module['_zend_is_callable'] =
8555
+ wasmExports['zend_is_callable'];
8415
8556
  _zend_fcall_info_init = Module['_zend_fcall_info_init'] =
8416
8557
  wasmExports['zend_fcall_info_init'];
8417
8558
  _zend_declare_typed_property = Module['_zend_declare_typed_property'] =
@@ -8428,11 +8569,15 @@ export function init(RuntimeName, PHPLoader) {
8428
8569
  _zend_try_assign_typed_ref_arr = Module[
8429
8570
  '_zend_try_assign_typed_ref_arr'
8430
8571
  ] = wasmExports['zend_try_assign_typed_ref_arr'];
8572
+ _zend_declare_property = Module['_zend_declare_property'] =
8573
+ wasmExports['zend_declare_property'];
8431
8574
  _zend_declare_typed_class_constant = Module[
8432
8575
  '_zend_declare_typed_class_constant'
8433
8576
  ] = wasmExports['zend_declare_typed_class_constant'];
8434
8577
  _zend_update_property = Module['_zend_update_property'] =
8435
8578
  wasmExports['zend_update_property'];
8579
+ _zend_is_iterable = Module['_zend_is_iterable'] =
8580
+ wasmExports['zend_is_iterable'];
8436
8581
  _zend_add_attribute = Module['_zend_add_attribute'] =
8437
8582
  wasmExports['zend_add_attribute'];
8438
8583
  _zend_register_long_constant = Module['_zend_register_long_constant'] =
@@ -8446,6 +8591,8 @@ export function init(RuntimeName, PHPLoader) {
8446
8591
  wasmExports['zend_throw_exception_ex'];
8447
8592
  _zend_throw_error_exception = Module['_zend_throw_error_exception'] =
8448
8593
  wasmExports['zend_throw_error_exception'];
8594
+ _zend_throw_exception_object = Module['_zend_throw_exception_object'] =
8595
+ wasmExports['zend_throw_exception_object'];
8449
8596
  _get_active_class_name = Module['_get_active_class_name'] =
8450
8597
  wasmExports['get_active_class_name'];
8451
8598
  _get_active_function_or_method_name = Module[
@@ -8460,6 +8607,8 @@ export function init(RuntimeName, PHPLoader) {
8460
8607
  _zend_call_known_instance_method_with_2_params = Module[
8461
8608
  '_zend_call_known_instance_method_with_2_params'
8462
8609
  ] = wasmExports['zend_call_known_instance_method_with_2_params'];
8610
+ _zend_lookup_class_ex = Module['_zend_lookup_class_ex'] =
8611
+ wasmExports['zend_lookup_class_ex'];
8463
8612
  _zend_execute = Module['_zend_execute'] = wasmExports['zend_execute'];
8464
8613
  _gc_possible_root = Module['_gc_possible_root'] =
8465
8614
  wasmExports['gc_possible_root'];
@@ -8479,6 +8628,8 @@ export function init(RuntimeName, PHPLoader) {
8479
8628
  wasmExports['_zend_new_array'];
8480
8629
  _zend_hash_real_init_packed = Module['_zend_hash_real_init_packed'] =
8481
8630
  wasmExports['zend_hash_real_init_packed'];
8631
+ _zend_array_count = Module['_zend_array_count'] =
8632
+ wasmExports['zend_array_count'];
8482
8633
  _zend_hash_update = Module['_zend_hash_update'] =
8483
8634
  wasmExports['zend_hash_update'];
8484
8635
  _zend_hash_str_update = Module['_zend_hash_str_update'] =
@@ -8495,8 +8646,21 @@ export function init(RuntimeName, PHPLoader) {
8495
8646
  wasmExports['zend_hash_copy'];
8496
8647
  _zend_hash_index_find = Module['_zend_hash_index_find'] =
8497
8648
  wasmExports['zend_hash_index_find'];
8649
+ _zend_hash_move_forward_ex = Module['_zend_hash_move_forward_ex'] =
8650
+ wasmExports['zend_hash_move_forward_ex'];
8651
+ _zend_hash_get_current_key_zval_ex = Module[
8652
+ '_zend_hash_get_current_key_zval_ex'
8653
+ ] = wasmExports['zend_hash_get_current_key_zval_ex'];
8654
+ _zend_hash_get_current_key_type_ex = Module[
8655
+ '_zend_hash_get_current_key_type_ex'
8656
+ ] = wasmExports['zend_hash_get_current_key_type_ex'];
8657
+ _zend_hash_get_current_data_ex = Module[
8658
+ '_zend_hash_get_current_data_ex'
8659
+ ] = wasmExports['zend_hash_get_current_data_ex'];
8498
8660
  _zend_hash_sort_ex = Module['_zend_hash_sort_ex'] =
8499
8661
  wasmExports['zend_hash_sort_ex'];
8662
+ _zend_do_implement_interface = Module['_zend_do_implement_interface'] =
8663
+ wasmExports['zend_do_implement_interface'];
8500
8664
  _zend_register_ini_entries_ex = Module[
8501
8665
  '_zend_register_ini_entries_ex'
8502
8666
  ] = wasmExports['zend_register_ini_entries_ex'];
@@ -8523,14 +8687,22 @@ export function init(RuntimeName, PHPLoader) {
8523
8687
  wasmExports['zend_iterator_init'];
8524
8688
  _zend_std_get_properties = Module['_zend_std_get_properties'] =
8525
8689
  wasmExports['zend_std_get_properties'];
8690
+ _zend_std_read_property = Module['_zend_std_read_property'] =
8691
+ wasmExports['zend_std_read_property'];
8692
+ _zend_std_write_property = Module['_zend_std_write_property'] =
8693
+ wasmExports['zend_std_write_property'];
8526
8694
  _zend_std_compare_objects = Module['_zend_std_compare_objects'] =
8527
8695
  wasmExports['zend_std_compare_objects'];
8696
+ _zend_std_has_property = Module['_zend_std_has_property'] =
8697
+ wasmExports['zend_std_has_property'];
8528
8698
  _zend_objects_store_del = Module['_zend_objects_store_del'] =
8529
8699
  wasmExports['zend_objects_store_del'];
8530
8700
  _zend_object_std_init = Module['_zend_object_std_init'] =
8531
8701
  wasmExports['zend_object_std_init'];
8532
8702
  _zend_object_std_dtor = Module['_zend_object_std_dtor'] =
8533
8703
  wasmExports['zend_object_std_dtor'];
8704
+ _zend_objects_new = Module['_zend_objects_new'] =
8705
+ wasmExports['zend_objects_new'];
8534
8706
  _zend_objects_clone_members = Module['_zend_objects_clone_members'] =
8535
8707
  wasmExports['zend_objects_clone_members'];
8536
8708
  _destroy_op_array = Module['_destroy_op_array'] =
@@ -8553,6 +8725,7 @@ export function init(RuntimeName, PHPLoader) {
8553
8725
  wasmExports['zval_get_double_func'];
8554
8726
  _zval_get_string_func = Module['_zval_get_string_func'] =
8555
8727
  wasmExports['zval_get_string_func'];
8728
+ _zend_is_true = Module['_zend_is_true'] = wasmExports['zend_is_true'];
8556
8729
  _numeric_compare_function = Module['_numeric_compare_function'] =
8557
8730
  wasmExports['numeric_compare_function'];
8558
8731
  _compare_function = Module['_compare_function'] =
@@ -8590,9 +8763,12 @@ export function init(RuntimeName, PHPLoader) {
8590
8763
  wasmExports['zend_argument_count_error'];
8591
8764
  _zend_value_error = Module['_zend_value_error'] =
8592
8765
  wasmExports['zend_value_error'];
8766
+ _strtoll = Module['_strtoll'] = wasmExports['strtoll'];
8593
8767
  _strlen = Module['_strlen'] = wasmExports['strlen'];
8594
8768
  _memcmp = Module['_memcmp'] = wasmExports['memcmp'];
8595
8769
  _free = Module['_free'] = wasmExports['free'];
8770
+ _clock_gettime = Module['_clock_gettime'] =
8771
+ wasmExports['clock_gettime'];
8596
8772
  _malloc =
8597
8773
  PHPLoader['malloc'] =
8598
8774
  Module['_malloc'] =
@@ -8604,26 +8780,41 @@ export function init(RuntimeName, PHPLoader) {
8604
8780
  _dlclose = Module['_dlclose'] = wasmExports['dlclose'];
8605
8781
  _strcmp = Module['_strcmp'] = wasmExports['strcmp'];
8606
8782
  _getenv = Module['_getenv'] = wasmExports['getenv'];
8783
+ ___wasm_setjmp = Module['___wasm_setjmp'] =
8784
+ wasmExports['__wasm_setjmp'];
8785
+ ___wasm_setjmp_test = Module['___wasm_setjmp_test'] =
8786
+ wasmExports['__wasm_setjmp_test'];
8787
+ ___wasm_longjmp = Module['___wasm_longjmp'] =
8788
+ wasmExports['__wasm_longjmp'];
8607
8789
  _atoi = Module['_atoi'] = wasmExports['atoi'];
8608
8790
  ___errno_location = Module['___errno_location'] =
8609
8791
  wasmExports['__errno_location'];
8610
8792
  _strrchr = Module['_strrchr'] = wasmExports['strrchr'];
8611
8793
  _strcasecmp = Module['_strcasecmp'] = wasmExports['strcasecmp'];
8612
8794
  _memchr = Module['_memchr'] = wasmExports['memchr'];
8795
+ _isalnum = Module['_isalnum'] = wasmExports['isalnum'];
8613
8796
  _fwrite = Module['_fwrite'] = wasmExports['fwrite'];
8614
8797
  _strncmp = Module['_strncmp'] = wasmExports['strncmp'];
8615
8798
  _strtok_r = Module['_strtok_r'] = wasmExports['strtok_r'];
8799
+ _unlink = Module['_unlink'] = wasmExports['unlink'];
8616
8800
  _fileno = Module['_fileno'] = wasmExports['fileno'];
8617
8801
  _fread = Module['_fread'] = wasmExports['fread'];
8618
8802
  _fclose = Module['_fclose'] = wasmExports['fclose'];
8619
8803
  _strtoul = Module['_strtoul'] = wasmExports['strtoul'];
8620
8804
  _strstr = Module['_strstr'] = wasmExports['strstr'];
8805
+ _write = Module['_write'] = wasmExports['write'];
8621
8806
  _close = Module['_close'] = wasmExports['close'];
8622
8807
  _tolower = Module['_tolower'] = wasmExports['tolower'];
8808
+ _fseek = Module['_fseek'] = wasmExports['fseek'];
8623
8809
  _stat = Module['_stat'] = wasmExports['stat'];
8624
8810
  _gettimeofday = Module['_gettimeofday'] = wasmExports['gettimeofday'];
8625
8811
  _fopen = Module['_fopen'] = wasmExports['fopen'];
8812
+ _getcwd = Module['_getcwd'] = wasmExports['getcwd'];
8626
8813
  _open = Module['_open'] = wasmExports['open'];
8814
+ _rename = Module['_rename'] = wasmExports['rename'];
8815
+ _mkdir = Module['_mkdir'] = wasmExports['mkdir'];
8816
+ _rmdir = Module['_rmdir'] = wasmExports['rmdir'];
8817
+ _opendir = Module['_opendir'] = wasmExports['opendir'];
8627
8818
  _strncpy = Module['_strncpy'] = wasmExports['strncpy'];
8628
8819
  _realloc = Module['_realloc'] = wasmExports['realloc'];
8629
8820
  _localtime_r = Module['_localtime_r'] = wasmExports['localtime_r'];
@@ -8643,10 +8834,13 @@ export function init(RuntimeName, PHPLoader) {
8643
8834
  _setlocale = Module['_setlocale'] = wasmExports['setlocale'];
8644
8835
  _calloc = wasmExports['calloc'];
8645
8836
  _qsort = Module['_qsort'] = wasmExports['qsort'];
8837
+ _readdir = Module['_readdir'] = wasmExports['readdir'];
8838
+ _closedir = Module['_closedir'] = wasmExports['closedir'];
8646
8839
  _isdigit = Module['_isdigit'] = wasmExports['isdigit'];
8647
8840
  _wasm_popen = Module['_wasm_popen'] = wasmExports['wasm_popen'];
8648
8841
  _wasm_php_exec = Module['_wasm_php_exec'] =
8649
8842
  wasmExports['wasm_php_exec'];
8843
+ _strerror_r = Module['_strerror_r'] = wasmExports['strerror_r'];
8650
8844
  _php_pollfd_for = Module['_php_pollfd_for'] =
8651
8845
  wasmExports['php_pollfd_for'];
8652
8846
  _htons = wasmExports['htons'];
@@ -8659,11 +8853,15 @@ export function init(RuntimeName, PHPLoader) {
8659
8853
  _abort = Module['_abort'] = wasmExports['abort'];
8660
8854
  _mmap = Module['_mmap'] = wasmExports['mmap'];
8661
8855
  _munmap = Module['_munmap'] = wasmExports['munmap'];
8856
+ _writev = Module['_writev'] = wasmExports['writev'];
8662
8857
  _fgets = Module['_fgets'] = wasmExports['fgets'];
8663
8858
  _initgroups = Module['_initgroups'] = wasmExports['initgroups'];
8664
8859
  _atol = Module['_atol'] = wasmExports['atol'];
8665
8860
  _strcat = Module['_strcat'] = wasmExports['strcat'];
8861
+ _posix_memalign = Module['_posix_memalign'] =
8862
+ wasmExports['posix_memalign'];
8666
8863
  _strcpy = Module['_strcpy'] = wasmExports['strcpy'];
8864
+ _ftell = Module['_ftell'] = wasmExports['ftell'];
8667
8865
  _wasm_read = Module['_wasm_read'] = wasmExports['wasm_read'];
8668
8866
  _feof = Module['_feof'] = wasmExports['feof'];
8669
8867
  _strncat = Module['_strncat'] = wasmExports['strncat'];
@@ -8717,8 +8915,45 @@ export function init(RuntimeName, PHPLoader) {
8717
8915
  Module['_wasm_free'] =
8718
8916
  wasmExports['wasm_free'];
8719
8917
  _wasm_trace = Module['_wasm_trace'] = wasmExports['wasm_trace'];
8918
+ _getentropy = Module['_getentropy'] = wasmExports['getentropy'];
8919
+ _pthread_cond_signal = Module['_pthread_cond_signal'] =
8920
+ wasmExports['pthread_cond_signal'];
8921
+ _pthread_cond_wait = Module['_pthread_cond_wait'] =
8922
+ wasmExports['pthread_cond_wait'];
8923
+ _pthread_condattr_destroy = Module['_pthread_condattr_destroy'] =
8924
+ wasmExports['pthread_condattr_destroy'];
8925
+ _pthread_condattr_init = Module['_pthread_condattr_init'] =
8926
+ wasmExports['pthread_condattr_init'];
8927
+ _pthread_condattr_setclock = Module['_pthread_condattr_setclock'] =
8928
+ wasmExports['pthread_condattr_setclock'];
8929
+ _pthread_mutex_trylock = Module['_pthread_mutex_trylock'] =
8930
+ wasmExports['pthread_mutex_trylock'];
8931
+ _pthread_mutexattr_destroy = Module['_pthread_mutexattr_destroy'] =
8932
+ wasmExports['pthread_mutexattr_destroy'];
8933
+ _pthread_mutexattr_init = Module['_pthread_mutexattr_init'] =
8934
+ wasmExports['pthread_mutexattr_init'];
8935
+ _pthread_mutexattr_settype = Module['_pthread_mutexattr_settype'] =
8936
+ wasmExports['pthread_mutexattr_settype'];
8937
+ _sched_yield = Module['_sched_yield'] = wasmExports['sched_yield'];
8938
+ _sqlite3_auto_extension = Module['_sqlite3_auto_extension'] =
8939
+ wasmExports['sqlite3_auto_extension'];
8940
+ _sqlite3_cancel_auto_extension = Module[
8941
+ '_sqlite3_cancel_auto_extension'
8942
+ ] = wasmExports['sqlite3_cancel_auto_extension'];
8943
+ _pthread_mutex_init = Module['_pthread_mutex_init'] =
8944
+ wasmExports['pthread_mutex_init'];
8945
+ _pthread_mutex_destroy = Module['_pthread_mutex_destroy'] =
8946
+ wasmExports['pthread_mutex_destroy'];
8947
+ _pthread_mutex_lock = Module['_pthread_mutex_lock'] =
8948
+ wasmExports['pthread_mutex_lock'];
8949
+ _pthread_mutex_unlock = Module['_pthread_mutex_unlock'] =
8950
+ wasmExports['pthread_mutex_unlock'];
8720
8951
  _rewind = Module['_rewind'] = wasmExports['rewind'];
8721
8952
  _modf = Module['_modf'] = wasmExports['modf'];
8953
+ _pthread_cond_init = Module['_pthread_cond_init'] =
8954
+ wasmExports['pthread_cond_init'];
8955
+ _pthread_cond_destroy = Module['_pthread_cond_destroy'] =
8956
+ wasmExports['pthread_cond_destroy'];
8722
8957
  ___extenddftf2 = Module['___extenddftf2'] =
8723
8958
  wasmExports['__extenddftf2'];
8724
8959
  ___letf2 = Module['___letf2'] = wasmExports['__letf2'];
@@ -8729,6 +8964,8 @@ export function init(RuntimeName, PHPLoader) {
8729
8964
  ___cxa_atexit = Module['___cxa_atexit'] = wasmExports['__cxa_atexit'];
8730
8965
  ___dl_seterr = wasmExports['__dl_seterr'];
8731
8966
  __emscripten_find_dylib = wasmExports['_emscripten_find_dylib'];
8967
+ _pthread_cond_timedwait = Module['_pthread_cond_timedwait'] =
8968
+ wasmExports['pthread_cond_timedwait'];
8732
8969
  _mbstowcs = Module['_mbstowcs'] = wasmExports['mbstowcs'];
8733
8970
  _emscripten_builtin_memalign =
8734
8971
  wasmExports['emscripten_builtin_memalign'];
@@ -8770,65 +9007,66 @@ export function init(RuntimeName, PHPLoader) {
8770
9007
  wasmExports['__stack_pointer'];
8771
9008
  __indirect_function_table = wasmTable =
8772
9009
  wasmExports['__indirect_function_table'];
9010
+ ___c_longjmp = Module['___c_longjmp'] = wasmExports['__c_longjmp'];
8773
9011
  }
8774
- var _file_globals = (Module['_file_globals'] = 18119168);
8775
- var _sapi_module = (Module['_sapi_module'] = 18006096);
8776
- var _sapi_globals = (Module['_sapi_globals'] = 18006248);
8777
- var _compiler_globals = (Module['_compiler_globals'] = 18123240);
8778
- var _executor_globals = (Module['_executor_globals'] = 18123656);
8779
- var _zend_compile_string = (Module['_zend_compile_string'] = 18125076);
8780
- var _zend_ce_unit_enum = (Module['_zend_ce_unit_enum'] = 18005792);
8781
- var _zend_ce_backed_enum = (Module['_zend_ce_backed_enum'] = 18005796);
8782
- var _zend_ce_exception = (Module['_zend_ce_exception'] = 18119676);
8783
- var _zend_ce_throwable = (Module['_zend_ce_throwable'] = 18119680);
9012
+ var _file_globals = (Module['_file_globals'] = 18125344);
9013
+ var _sapi_module = (Module['_sapi_module'] = 18012272);
9014
+ var _sapi_globals = (Module['_sapi_globals'] = 18012424);
9015
+ var _compiler_globals = (Module['_compiler_globals'] = 18129416);
9016
+ var _executor_globals = (Module['_executor_globals'] = 18129832);
9017
+ var _zend_compile_string = (Module['_zend_compile_string'] = 18131252);
9018
+ var _zend_ce_unit_enum = (Module['_zend_ce_unit_enum'] = 18011968);
9019
+ var _zend_ce_backed_enum = (Module['_zend_ce_backed_enum'] = 18011972);
9020
+ var _zend_ce_exception = (Module['_zend_ce_exception'] = 18125852);
9021
+ var _zend_ce_throwable = (Module['_zend_ce_throwable'] = 18125856);
8784
9022
  var _zend_ce_division_by_zero_error = (Module[
8785
9023
  '_zend_ce_division_by_zero_error'
8786
- ] = 18119812);
9024
+ ] = 18125988);
8787
9025
  var _zend_ce_unhandled_match_error = (Module[
8788
9026
  '_zend_ce_unhandled_match_error'
8789
- ] = 18119816);
8790
- var _zend_empty_array = (Module['_zend_empty_array'] = 17502720);
8791
- var _zend_ce_traversable = (Module['_zend_ce_traversable'] = 18005452);
8792
- var _zend_ce_aggregate = (Module['_zend_ce_aggregate'] = 18005456);
8793
- var _zend_ce_iterator = (Module['_zend_ce_iterator'] = 18005460);
8794
- var _zend_ce_serializable = (Module['_zend_ce_serializable'] = 18005464);
8795
- var _zend_ce_arrayaccess = (Module['_zend_ce_arrayaccess'] = 18005468);
8796
- var _zend_ce_countable = (Module['_zend_ce_countable'] = 18005472);
8797
- var _zend_ce_stringable = (Module['_zend_ce_stringable'] = 18005476);
8798
- var _std_object_handlers = (Module['_std_object_handlers'] = 17486112);
8799
- var _zend_empty_string = (Module['_zend_empty_string'] = 18122004);
8800
- var _zend_known_strings = (Module['_zend_known_strings'] = 18122008);
9027
+ ] = 18125992);
9028
+ var _zend_empty_array = (Module['_zend_empty_array'] = 17508800);
9029
+ var _zend_ce_traversable = (Module['_zend_ce_traversable'] = 18011628);
9030
+ var _zend_ce_aggregate = (Module['_zend_ce_aggregate'] = 18011632);
9031
+ var _zend_ce_iterator = (Module['_zend_ce_iterator'] = 18011636);
9032
+ var _zend_ce_serializable = (Module['_zend_ce_serializable'] = 18011640);
9033
+ var _zend_ce_arrayaccess = (Module['_zend_ce_arrayaccess'] = 18011644);
9034
+ var _zend_ce_countable = (Module['_zend_ce_countable'] = 18011648);
9035
+ var _zend_ce_stringable = (Module['_zend_ce_stringable'] = 18011652);
9036
+ var _std_object_handlers = (Module['_std_object_handlers'] = 17492192);
9037
+ var _zend_empty_string = (Module['_zend_empty_string'] = 18128180);
9038
+ var _zend_known_strings = (Module['_zend_known_strings'] = 18128184);
8801
9039
  var _zend_string_init_interned = (Module['_zend_string_init_interned'] =
8802
- 18122076);
8803
- var _zend_one_char_string = (Module['_zend_one_char_string'] = 18122096);
9040
+ 18128252);
9041
+ var _zend_one_char_string = (Module['_zend_one_char_string'] = 18128272);
8804
9042
  var ___memory_base = (Module['___memory_base'] = 0);
8805
9043
  var ___table_base = (Module['___table_base'] = 1);
8806
- var _stdout = (Module['_stdout'] = 17998048);
9044
+ var _stdout = (Module['_stdout'] = 18004224);
8807
9045
  var __playground_zend_side_module_data_exports = (Module[
8808
9046
  '__playground_zend_side_module_data_exports'
8809
- ] = 17504432);
9047
+ ] = 17510512);
8810
9048
  var __playground_zend_side_module_function_exports = (Module[
8811
9049
  '__playground_zend_side_module_function_exports'
8812
- ] = 17504528);
8813
- var _timezone = (Module['_timezone'] = 18460352);
8814
- var _tzname = (Module['_tzname'] = 18460360);
8815
- var ___heap_base = 19522624;
9050
+ ] = 17510608);
9051
+ var _timezone = (Module['_timezone'] = 18466528);
9052
+ var _tzname = (Module['_tzname'] = 18466536);
9053
+ var ___heap_base = 19528800;
8816
9054
  var __ZNSt3__25ctypeIcE2idE = (Module['__ZNSt3__25ctypeIcE2idE'] =
8817
- 18474028);
9055
+ 18480204);
8818
9056
  var __ZTVN10__cxxabiv120__si_class_type_infoE = (Module[
8819
9057
  '__ZTVN10__cxxabiv120__si_class_type_infoE'
8820
- ] = 17998336);
9058
+ ] = 18004512);
8821
9059
  var __ZTVN10__cxxabiv117__class_type_infoE = (Module[
8822
9060
  '__ZTVN10__cxxabiv117__class_type_infoE'
8823
- ] = 17998296);
9061
+ ] = 18004472);
8824
9062
  var __ZTVN10__cxxabiv121__vmi_class_type_infoE = (Module[
8825
9063
  '__ZTVN10__cxxabiv121__vmi_class_type_infoE'
8826
- ] = 17998388);
9064
+ ] = 18004564);
8827
9065
  var __ZTISt20bad_array_new_length = (Module[
8828
9066
  '__ZTISt20bad_array_new_length'
8829
- ] = 17998508);
8830
- var __ZTVSt12length_error = (Module['__ZTVSt12length_error'] = 17998584);
8831
- var __ZTISt12length_error = (Module['__ZTISt12length_error'] = 17998604);
9067
+ ] = 18004684);
9068
+ var __ZTVSt12length_error = (Module['__ZTVSt12length_error'] = 18004760);
9069
+ var __ZTISt12length_error = (Module['__ZTISt12length_error'] = 18004780);
8832
9070
  var wasmImports = {
8833
9071
  __assert_fail: ___assert_fail,
8834
9072
  __asyncjs__js_module_onMessage,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@php-wasm/web-8-5",
3
- "version": "3.1.33",
3
+ "version": "3.1.35",
4
4
  "description": "PHP 8.5 WebAssembly binaries for web",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,10 +35,10 @@
35
35
  "node": ">=20.10.0",
36
36
  "npm": ">=10.2.3"
37
37
  },
38
- "gitHead": "f80a40d763283d582f9b97b0d5eb59bf54d2a943",
38
+ "gitHead": "9d29b73246e12465902d8ce42c0fe747125bc69a",
39
39
  "dependencies": {
40
40
  "wasm-feature-detect": "1.8.0",
41
- "@php-wasm/universal": "3.1.33"
41
+ "@php-wasm/universal": "3.1.35"
42
42
  },
43
43
  "packageManager": "npm@10.9.2",
44
44
  "overrides": {