Skip to content

Commit e14b687

Browse files
committed
[WiP] Enable Wasm EH by default
1 parent 25f0bbf commit e14b687

File tree

9 files changed

+23
-19
lines changed

9 files changed

+23
-19
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ jobs:
4646
matrix:
4747
include:
4848
- os: ubuntu-24.04
49-
nodejs_version: 16
49+
nodejs_version: 17
5050
- os: macos-15
51-
nodejs_version: 16
51+
nodejs_version: 17
5252
- os: windows-2022
53-
nodejs_version: 16
53+
nodejs_version: 17
5454
steps:
5555
- uses: actions/checkout@v6
5656
- uses: actions/setup-node@v6

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ Uses libvips v8.18.0-rc2, compiled with Emscripten v4.0.21.
2424
[#105](https://github.com/kleisauke/wasm-vips/pull/105)
2525
- Make `filename` properties optional.
2626
- Update methods/enums for libvips 8.18.
27+
- Enable WebAssembly Exception Handling feature by default.
28+
- Drop support for Node.js 16, now requires Node.js >= 17.
2729

2830
## [v0.0.16] - 2025-11-07
2931

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,24 @@ https://github.com/kleisauke/wasm-vips/issues/1).
1616

1717
## Engine support
1818

19-
An engine that supports [WebAssembly SIMD](https://webassembly.org/features/).
20-
This is present on most major browser engines and is part of [Baseline 2023](
19+
An engine that supports [WebAssembly SIMD](https://caniuse.com/wasm-simd)
20+
and [WebAssembly Exception Handling](
21+
https://caniuse.com/wf-wasm-exception-handling). This is present on most
22+
major browser engines and is part of [Baseline 2023](
2123
https://web.dev/baseline/2023).
2224

23-
For V8-based engines, at least version 9.1.54 is required to match the final
24-
SIMD opcodes, this corresponds to Chrome 91, Node.js 16.4.0 and Deno 1.9.0.
25+
For V8-based engines, at least version 9.5 is required, this corresponds
26+
to Chrome 95, Node.js 17.0.0 and Deno 1.16.0.
2527

2628
For Spidermonkey-based engines, the JavaScript engine used in Mozilla Firefox
27-
and whose version numbers are aligned, at least version 89 is required.
29+
and whose version numbers are aligned, at least version 100 is required.
2830

2931
For JavaScriptCore-based engines, the built-in JavaScript engine for WebKit,
3032
at least version 615.1.17 is required. This corresponds to Safari 16.4.
3133

3234
| ![Chrome](https://github.com/alrra/browser-logos/raw/main/src/chrome/chrome_32x32.png)<br>Chrome | ![Firefox](https://github.com/alrra/browser-logos/raw/main/src/firefox/firefox_32x32.png)<br>Firefox | ![Safari](https://github.com/alrra/browser-logos/raw/main/src/safari/safari_32x32.png)<br>Safari | ![Edge](https://github.com/alrra/browser-logos/raw/main/src/edge/edge_32x32.png)<br>Edge | ![Node.js](https://github.com/alrra/browser-logos/raw/main/src/node.js/node.js_32x32.png)<br>Node.js | ![Deno](https://github.com/alrra/browser-logos/raw/main/src/deno/deno_32x32.png)<br>Deno |
3335
|:---:|:---:|:---:|:---:|:---:|:---:|
34-
| :heavy_check_mark:<br>[version 91+](https://chromestatus.com/feature/6533147810332672) | :heavy_check_mark:<br>[version 89+](https://bugzil.la/1695585) | :heavy_check_mark:<br>[version 16.4+](https://webkit.org/blog/13966/webkit-features-in-safari-16-4/#javascript-and-webassembly) | :heavy_check_mark:<br>[version 91+](https://chromestatus.com/feature/6533147810332672) | :heavy_check_mark:<br>[version 16.4+](https://github.com/nodejs/node/pull/38273) | :heavy_check_mark:<br>[version 1.9+](https://github.com/denoland/deno/pull/10152) |
36+
| :heavy_check_mark:<br>[version 95+](https://chromestatus.com/feature/4756734233018368) | :heavy_check_mark:<br>[version 100+](https://bugzil.la/1335652) | :heavy_check_mark:<br>[version 16.4+](https://webkit.org/blog/13966/webkit-features-in-safari-16-4/#javascript-and-webassembly) | :heavy_check_mark:<br>[version 95+](https://chromestatus.com/feature/4756734233018368) | :heavy_check_mark:<br>[version 17.0+](https://github.com/nodejs/node/pull/40178) | :heavy_check_mark:<br>[version 1.16+](https://github.com/denoland/deno/pull/12564) |
3537

3638
## Installation
3739

build.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ WASM_BIGINT=true
3535
WASM_FS=false
3636

3737
# Leverage Wasm EH instructions for setjmp/longjmp support
38-
# and throwing/catching exceptions, disabled by default
38+
# and throwing/catching exceptions, enabled by default
3939
# https://github.com/WebAssembly/exception-handling
40-
WASM_EH=false
40+
WASM_EH=true
4141

4242
# Emit instructions for the standardized Wasm EH proposal with exnref
4343
# (adopted on Oct 2023), disabled by default
@@ -74,13 +74,13 @@ while [ $# -gt 0 ]; do
7474
case $1 in
7575
--enable-lto) LTO=true ;;
7676
--enable-wasm-fs) WASM_FS=true ;;
77-
--enable-wasm-eh) WASM_EH=true ;;
7877
--enable-new-wasm-eh)
7978
WASM_EH=true
8079
WASM_EXNREF=true
8180
;;
8281
--disable-simd) SIMD=false ;;
8382
--disable-wasm-bigint) WASM_BIGINT=false ;;
83+
--disable-wasm-eh) WASM_EH=false ;;
8484
--disable-uhdr) UHDR=false ;;
8585
--disable-jxl) JXL=false ;;
8686
--disable-avif) AVIF=false ;;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"serve": "^14.2.5"
6161
},
6262
"engines": {
63-
"node": ">=16.4.0"
63+
"node": ">=17.0.0"
6464
},
6565
"semistandard": {
6666
"globals": [

playground/src/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ <h1>wasm-vips playground</h1>
3232
This is a playground for experimenting with wasm-vips, written by <a href="https://kleisauke.nl/">Kleis Auke Wolthuizen</a>.
3333
</p>
3434
<p>
35-
All embedded demos are intended to run in the browser that supports <a href="https://webassembly.org/features/">WebAssembly SIMD</a>.
35+
All embedded demos are intended to run in the browser that supports <a href="https://caniuse.com/wasm-simd">WebAssembly SIMD</a> and <a href="https://caniuse.com/wf-wasm-exception-handling">WebAssembly Exception Handling</a>.
3636
This is present on most major browser engines and is part of <a href="https://web.dev/baseline/2023">Baseline 2023</a>.
3737
</p>
3838
</footer>

src/meson.build

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ if 'web' in get_option('environments')
9898
web_link_args = [
9999
'--use-preload-plugins',
100100
'-sPTHREAD_POOL_SIZE=navigator.hardwareConcurrency>6?navigator.hardwareConcurrency:6',
101-
'-sMIN_CHROME_VERSION=91',
102-
'-sMIN_FIREFOX_VERSION=89',
101+
'-sMIN_CHROME_VERSION=95',
102+
'-sMIN_FIREFOX_VERSION=100',
103103
'-sMIN_SAFARI_VERSION=160400',
104104
]
105105

@@ -131,7 +131,7 @@ if 'web' in get_option('environments')
131131
endif
132132

133133
if 'node' in get_option('environments')
134-
node_link_args = ['-sENVIRONMENT=node', '-sMIN_NODE_VERSION=160400']
134+
node_link_args = ['-sENVIRONMENT=node', '-sMIN_NODE_VERSION=170000']
135135
if not get_option('wasmfs')
136136
node_link_args += ['-sNODERAWFS']
137137
endif

test/bench/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
"benchmark": "^2.1.4"
2424
},
2525
"engines": {
26-
"node": ">=16.4.0"
26+
"node": ">=17.0.0"
2727
}
2828
}

test/unit/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
"mocha": "^11.7.5"
2424
},
2525
"engines": {
26-
"node": ">=16.4.0"
26+
"node": ">=17.0.0"
2727
}
2828
}

0 commit comments

Comments
 (0)