diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e44e3c5ea..f66cefa6b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -46,11 +46,11 @@ jobs:
matrix:
include:
- os: ubuntu-22.04
- nodejs_version: 16
+ nodejs_version: 17
- os: macos-11
- nodejs_version: 16
+ nodejs_version: 17
- os: windows-2022
- nodejs_version: 16
+ nodejs_version: 17
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2d16ef0ef..bbf9222f1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,9 @@ Uses libvips v8.15.2, compiled with Emscripten v3.1.58.
- Inline worker script (`.worker.js`) into the main output file.
[emscripten-core/emscripten#21701](https://github.com/emscripten-core/emscripten/pull/21701)
+- Enable WebAssembly multi-value and reference types features.
+ [llvm/llvm-project#80923](https://github.com/llvm/llvm-project/pull/80923)
+- Drop support for Node.js 16, now requires Node.js >= 17.2.0.
## [v0.0.8] - 2024-03-17
diff --git a/README.md b/README.md
index 4de134900..4da216aa5 100644
--- a/README.md
+++ b/README.md
@@ -16,11 +16,12 @@ https://github.com/kleisauke/wasm-vips/issues/1).
## Engine support
-An engine that [supports WebAssembly SIMD](https://webassembly.org/roadmap/).
+An engine that supports [WebAssembly SIMD](https://caniuse.com/wasm-simd) and
+[WebAssembly Reference Types](https://caniuse.com/wasm-reference-types).
This is present on most major browser engines.
-For V8-based engines, at least version 9.1.54 is required to match the final
-SIMD opcodes, this corresponds to Chrome 91, Node.js 16.4.0 and Deno 1.9.0.
+For V8-based engines, at least version 9.6 is required, this corresponds to
+Chrome 96, Node.js 17.2.0 and Deno 1.16.0.
For Spidermonkey-based engines, the JavaScript engine used in Mozilla Firefox
and whose version numbers are aligned, at least version 89 is required.
@@ -30,7 +31,7 @@ at least version 615.1.17 is required. This corresponds to Safari 16.4.
| ![Chrome](https://github.com/alrra/browser-logos/raw/main/src/chrome/chrome_32x32.png)
Chrome | ![Firefox](https://github.com/alrra/browser-logos/raw/main/src/firefox/firefox_32x32.png)
Firefox | ![Safari](https://github.com/alrra/browser-logos/raw/main/src/safari/safari_32x32.png)
Safari | ![Edge](https://github.com/alrra/browser-logos/raw/main/src/edge/edge_32x32.png)
Edge | ![Node.js](https://github.com/alrra/browser-logos/raw/main/src/node.js/node.js_32x32.png)
Node.js | ![Deno](https://github.com/alrra/browser-logos/raw/main/src/deno/deno_32x32.png)
Deno |
|:---:|:---:|:---:|:---:|:---:|:---:|
-| :heavy_check_mark:
[version 91+](https://www.chromestatus.com/feature/6533147810332672) | :heavy_check_mark:
[version 89+](https://bugzilla.mozilla.org/show_bug.cgi?id=1695585) | :heavy_check_mark:
[version 16.4+](https://webkit.org/blog/13966/webkit-features-in-safari-16-4/#javascript-and-webassembly) | :heavy_check_mark:
[version 91+](https://www.chromestatus.com/feature/6533147810332672) | :heavy_check_mark:
[version 16.4+](https://github.com/nodejs/node/pull/38273) | :heavy_check_mark:
[version 1.9+](https://github.com/denoland/deno/pull/10152) |
+| :heavy_check_mark:
[version 96+](https://chromestatus.com/feature/5166497248837632) | :heavy_check_mark:
[version 89+](https://bugzilla.mozilla.org/show_bug.cgi?id=1695585) | :heavy_check_mark:
[version 16.4+](https://webkit.org/blog/13966/webkit-features-in-safari-16-4/#javascript-and-webassembly) | :heavy_check_mark:
[version 96+](https://chromestatus.com/feature/5166497248837632) | :heavy_check_mark:
[version 17.2+](https://github.com/nodejs/node/pull/40488) | :heavy_check_mark:
[version 1.16+](https://github.com/denoland/deno/pull/12564) |
## Installation
diff --git a/package.json b/package.json
index 1b5a412b2..29f1159c6 100644
--- a/package.json
+++ b/package.json
@@ -56,7 +56,7 @@
"serve": "^14.2.3"
},
"engines": {
- "node": ">=16.4.0"
+ "node": ">=17.2.0"
},
"semistandard": {
"globals": [
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 930a7c875..16b018c39 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -150,7 +150,7 @@ if ("node" IN_LIST ENVIRONMENT)
set(NODE_LINK_OPTIONS
-sENVIRONMENT=node,worker
$<$>:-sNODERAWFS>
- -sMIN_NODE_VERSION=160400
+ -sMIN_NODE_VERSION=170200
)
target_link_options(${PROJECT_NAME}-node
diff --git a/test/bench/package.json b/test/bench/package.json
index 658345c77..bede240ca 100644
--- a/test/bench/package.json
+++ b/test/bench/package.json
@@ -23,6 +23,6 @@
"benchmark": "^2.1.4"
},
"engines": {
- "node": ">=16.4.0"
+ "node": ">=17.2.0"
}
}
diff --git a/test/unit/package.json b/test/unit/package.json
index adbe1e527..d4df63c8c 100644
--- a/test/unit/package.json
+++ b/test/unit/package.json
@@ -23,6 +23,6 @@
"mocha": "^10.4.0"
},
"engines": {
- "node": ">=16.4.0"
+ "node": ">=17.2.0"
}
}