160 Commits
Author SHA1 Message Date
Frank Denis e18eee6532 emscripten: build native ESM module 2026-02-11 12:00:10 +01:00
Frank Denis 9486c53695 Emscripten: add an option to compile with SIMD 2026-01-22 10:38:35 +01:00
Frank Denis aa0126c996 Emscripten: remove LTO
In Emscripten 4, LTO seems to be causing significant performance
regressions in the webassembly code.

Reported by @cooper667 -- Thanks!

See https://github.com/jedisct1/libsodium.js/issues/359
2026-01-17 12:20:09 +01:00
Frank Denis 4d6e5f280d Bump max memory of JavaScript Sumo builds to 80 MiB
So that crypto_pwhash functions can work with the interactive
settings in pure JavaScript, without WebAssembly.
2026-01-11 22:59:35 +01:00
Frank Denis 6b48659e3d Export missing crypto_ipcrypt_nd_keygen() helper function 2026-01-07 23:00:08 +01:00
Frank Denis d832790fa6 Regen emscripten 2026-01-06 15:42:08 +01:00
Frank Denis ed5b6b4b20 Regen emscripten 2026-01-06 15:42:07 +01:00
Frank Denis 5aa6d1910b Import ipcrypt 2026-01-06 15:42:07 +01:00
Frank Denis 9010e0634c Emscripten: handle empty CFLAGS 2026-01-06 23:09:45 +01:00
Frank Denis afc81e4429 Replace -s RESERVED_FUNCTION_POINTERS=8 with -sALLOW_TABLE_GROWTH 2026-01-06 14:43:19 +01:00
Frank Denis 27b1c7e1eb Modernize emscripten optimizations 2026-01-06 14:29:20 +01:00
Frank Denis 5a18746b9a Emscripten: add -s SINGLE_FILE_BINARY_ENCODE=0
Emscripten 4 changed the WASM binary encoding mode from base64 to
a custom UTF-8 binary encoding with binaryDecode().

The new encoding uses control characters and non-printable ASCII
that get corrupted when served to browsers.
2025-12-31 00:39:21 +01:00
Frank Denis 3d0ac8ab70 Emscripten: do not use WASM_BIGINT, for compatibility 2025-12-28 13:40:50 +01:00
Frank Denis 87c5b533f8 emscripten.sh: initialize Module.getRandomValue before WASM loads 2025-12-28 13:19:16 +01:00
Frank Denis 4662af939f emscripten: remove old JS test files 2025-12-08 20:35:27 +01:00
Frank Denis fb3f2be750 emscripten: avoid grep on binary files 2025-12-08 20:33:04 +01:00
Frank Denis 1d6e8925fa emscripten.sh: properly detect the Javascript runtime 2025-12-08 20:14:52 +01:00
Frank Denis ac706cacc7 Update emscripten symbols 2025-12-08 19:52:06 +01:00
Frank Denis ca638e8b93 Export _crypto_aead_aes256gcm_is_available to JavaScript
Fixes https://github.com/jedisct1/libsodium.js/issues/342
2024-07-08 18:20:11 +02:00
Frank Denis 2e662fb56f Try running the JavaScript tests with Bun before Node 2024-05-20 21:38:14 +02:00
Frank Denis bf4fb64457 Emscripten: export crypto_aead_aegis* in standard builds 2024-03-24 10:41:56 +01:00
Frank Denis f6d0efefc3 Sync 2023-11-30 15:44:36 +01:00
Frank Denis 854947a4ce Add AEGIS AEADs 2023-09-13 09:00:06 +02:00
Frank Denis 41e93e96c0 emscripten: use different settings for wasm and js builds 2023-02-16 20:08:23 +01:00
Frank Denis 81f58a5c58 emscripten: remove pwhash_* from non-sumo builds 2023-02-16 19:36:15 +01:00
Frank Denis b9b0c62e46 emscripten: EXTRA_EXPORTED_RUNTIME_METHODS -> EXPORTED_RUNTIME_METHODS 2023-02-16 19:21:16 +01:00
Frank Denis 6318c8c6af emscripten: setting Module.TOTAL_MEMORY doesn't do anything 2023-02-15 20:02:04 +01:00
Ryan Lester 403da0d1fc fix for asm.js async loading 2021-01-29 21:36:13 +01:00
Simon Wachter d5115e26c8 emscripten: build with NODEJS_CATCH_REJECTION=0 (#1025)
This stops emscripten from adding a `unhandledRejection` handler on the global `process` object that forcefully exits the process.

This allows fixing jedisct1/emscripten.js#253 because we no longer need to remove these listeners to compensate after the fact.
2021-01-28 16:32:11 +01:00
Frank Denis 3e10dcd813 emscripten: RUNNING_JS_OPTS has been removed in recent versions 2020-10-13 16:19:49 +02:00
Frank Denis d553485a92 emscripten: force filesystem inclusion for tests 2020-05-26 17:34:28 +02:00
Ryan Lester d257ec5780 workaround for error caused by latest emscripten 2019-09-11 16:04:34 +02:00
willclarktech 549bf059cd Set NODEJS_CATCH_EXIT=0 in emscripten LDFLAGS 2019-08-25 23:53:05 +02:00
Frank Denis 940ef42797 1.0.18 2019-05-30 21:57:51 +02:00
Frank Denis bb6f156412 Shorten 2019-05-12 13:53:53 +02:00
bas-d 5b9bc08d2f Properly check if console exists. 2019-05-12 13:53:38 +02:00
Frank Denis 1ae8e5e3b0 Export UTF8ToString 2019-05-04 19:21:21 +02:00
Frank Denis b7bf7d9c83 undef _box_curve25519xchacha20poly1305_messagebytes_max in !sumo builds 2019-01-06 20:33:22 +01:00
Frank Denis 0e0dbde088 Emscripten: enable ALLOW_MEMORY_GROWTH 2018-12-30 14:57:06 +01:00
Frank Denis b3dc89368e Regen emscripten symbols 2018-12-30 10:37:02 +01:00
Frank Denis e60049aad1 Revert "Add crypto_kx_ed25519" and "Add low-level kx_curve25519 functions"
This reverts commit 2d736dc2bc.
This reverts commit 7f3bc5cd08.
2018-12-25 19:22:33 +01:00
Frank Denis 7e8c2d34e5 Regen emscripten symbols 2018-12-25 12:50:13 +01:00
Frank Denis fdeb11d81c Regen emscripten symbols 2018-12-20 20:09:57 +01:00
Ryan Lester 34cbaa8dcd useBackupModule getRandomValue fix 2018-09-29 18:22:42 -04:00
Ryan Lester f642149364 asm.js fallback fix 2018-08-30 16:54:29 -04:00
Ryan Lester 73687a0044 style consistency fix 2018-08-30 16:54:15 -04:00
Frank Denis 72ad112e01 Emscripten: remove -s NO_FILESYSTEM=1
Emscripten support for this has been broken for way too long.
2018-08-29 14:02:15 +02:00
Ryan Lester 8e138b9f14 iOS fix 2018-08-22 20:06:32 -04:00
Ryan Lester 787d173483 fix for emscripten breaking change (https://github.com/kripken/emscripten/pull/6419) 2018-06-20 14:25:08 -04:00
Frank Denis 6382b91060 wasm bug check: use a function more likely to be present in minimal builds 2018-03-06 10:56:46 +01:00