diff --git a/docz/data/engines.xls b/docz/data/engines.xls
index 9c4422c..da177de 100644
--- a/docz/data/engines.xls
+++ b/docz/data/engines.xls
@@ -172,8 +172,8 @@
| Perl |
✔ |
✔ |
- ✱ |
- ✱ |
+ ✔ |
+ ✘ |
✔ |
✔ |
@@ -182,8 +182,8 @@
C |
✔ |
✔ |
- ✱ |
- ✱ |
+ ✔ |
+ ✔ |
✔ |
✔ |
@@ -273,7 +273,7 @@
✔ |
✔ |
|
- |
+ ✔ |
✔ |
✔ |
@@ -303,7 +303,7 @@
✔ |
✔ |
✔ |
- ✘ |
+ ✔ |
✔ |
✔ |
@@ -383,7 +383,7 @@
✔ |
✔ |
✔ |
- ✱ |
+ ✔ |
✔ |
✔ |
diff --git a/docz/docs/03-demos/01-math/01-summary.md b/docz/docs/03-demos/01-math/01-summary.md
index ab49ebe..f2dc962 100644
--- a/docz/docs/03-demos/01-math/01-summary.md
+++ b/docz/docs/03-demos/01-math/01-summary.md
@@ -40,9 +40,9 @@ This browser demo was tested in the following environments:
| Browser | Date |
|:-------------|:-----------|
-| Chromium 133 | 2025-03-30 |
-| Safari 18.3 | 2025-03-30 |
-| Konqueror 22 | 2025-04-23 |
+| Chromium 146 | 2026-05-07 |
+| Safari 26.2 | 2026-05-07 |
+| Konqueror 25 | 2026-05-07 |
:::
diff --git a/docz/docs/03-demos/02-frontend/09-blazor.md b/docz/docs/03-demos/02-frontend/09-blazor.md
index 59e10eb..f60ece6 100644
--- a/docz/docs/03-demos/02-frontend/09-blazor.md
+++ b/docz/docs/03-demos/02-frontend/09-blazor.md
@@ -297,8 +297,8 @@ This demo was tested in the following deployments:
|:-------------|:-----------|
| `darwin-x64` | 2026-03-07 |
| `darwin-arm` | 2026-03-07 |
-| `win11-x64` | 2025-04-17 |
-| `win11-arm` | 2025-04-24 |
+| `win11-x64` | 2026-05-08 |
+| `win11-arm` | 2026-05-09 |
:::
diff --git a/docz/docs/03-demos/03-net/09-dom.md b/docz/docs/03-demos/03-net/09-dom.md
index c7ec90c..1c4e87c 100644
--- a/docz/docs/03-demos/03-net/09-dom.md
+++ b/docz/docs/03-demos/03-net/09-dom.md
@@ -338,7 +338,7 @@ The script will create a file `SheetJSCheerio.xlsx` that can be opened.
### DenoDOM
[DenoDOM](https://deno.land/x/deno_dom) provides a DOM framework for Deno. For
-the tested version (`0.1.48`), the following patches were needed:
+the tested version (`0.1.56`), the following patches were needed:
- TABLE `rows` property (explained above)
- TR `cells` property (explained above)
@@ -349,7 +349,7 @@ This example fetches [a sample table](pathname:///dom/SheetJSTable.html):
// @deno-types="https://cdn.sheetjs.com/xlsx-${current}/package/types/index.d.ts"
import * as XLSX from 'https://cdn.sheetjs.com/xlsx-${current}/package/xlsx.mjs';
\n\
-import { DOMParser } from 'https://deno.land/x/deno_dom@v0.1.48/deno-dom-wasm.ts';
+import { DOMParser } from 'https://deno.land/x/deno_dom@v0.1.56/deno-dom-wasm.ts';
\n\
const doc = new DOMParser().parseFromString(
await (await fetch('https://docs.sheetjs.com/dom/SheetJSTable.html')).text(),
@@ -376,7 +376,7 @@ This demo was tested in the following deployments:
|:-------------|:--------|:-------|:-----------|
| `darwin-x64` | 0.1.48 | 2.7.4 | 2026-03-07 |
| `darwin-arm` | 0.1.48 | 2.7.4 | 2026-03-12 |
-| `win11-x64` | 0.1.48 | 2.2.12 | 2025-04-28 |
+| `win11-x64` | 0.1.56 | 2.7.14 | 2026-05-09 |
| `win11-arm` | 0.1.48 | 2.7.7 | 2026-03-22 |
| `linux-x64` | 0.1.48 | 2.7.4 | 2026-03-07 |
| `linux-arm` | 0.1.48 | 2.7.4 | 2026-03-07 |
diff --git a/docz/docs/03-demos/20-cli/08-boxednode.md b/docz/docs/03-demos/20-cli/08-boxednode.md
index 48125f3..6af66b5 100644
--- a/docz/docs/03-demos/20-cli/08-boxednode.md
+++ b/docz/docs/03-demos/20-cli/08-boxednode.md
@@ -32,7 +32,7 @@ This demo was tested in the following deployments:
|:-------------|:--------|:----------|:-----------|
| `darwin-x64` | `3.0.0` | `25.8.0` | 2026-03-08 |
| `darwin-arm` | `3.0.0` | `23.11.0` | 2026-03-13 |
-| `win11-x64` | `2.4.4` | `16.20.2` | 2025-05-07 |
+| `win11-x64` | `3.0.0` | `22.22.2` | 2026-05-08 |
| `linux-x64` | `3.0.0` | `25.8.0` | 2026-03-08 |
| `linux-arm` | `2.4.4` | `23.8.0` | 2025-02-15 |
@@ -121,20 +121,20 @@ npx -y boxednode@2.4.4 -s xlsx-cli.js -t xlsx-cli -n 23.8.0
-```bash
-npx -y boxednode@2.4.4 -s xlsx-cli.js -t xlsx-cli.exe -n 16.20.2
-```
-
:::info pass
-The Windows builds require Visual Studio with "Desktop development with C++"
-workload, Python 3.11, and NASM[^2].
+Windows x64 builds require Visual Studio with the "Desktop development with C++"
+workload, Python 3.11.9, and NASM[^2].
**The build command must be run in "x64 Native Tools Command Prompt"**
:::
-:::caution pass
+```bash
+npx -y boxednode@3.0.0 -s xlsx-cli.js -t xlsx-cli.exe -n 22.22.2
+```
+
+:::caution Troubleshooting
In some test runs, the build failed:
@@ -158,25 +158,21 @@ Please use python3.11 or python3.10 or python3.9 or python3.8 or python3.7 or py
In the most recent test, Python 3.11.8 was installed from the official site.
-:::
+---
-:::caution pass
-
-When the demo was last tested on Windows, the build failed:
+In some test runs, the build failed with error code `MSB8020`:
```
-error MSB8020: The build tools for Visual Studio 2019 (Platform Toolset = 'v142') cannot be found. To build using the v142 build tools, please install Visual Studio 2019 build tools.
+error MSB8020: The build tools for Visual Studio 2019 (Platform Toolset = 'v143') cannot be found. To build using the v143 build tools, please install Visual Studio 2019 build tools.
```
This error was fixed by installing the following components from Visual Studio:
-- `C++/CLI support for v142 build tools`
-- `MSVC v142 - VS 2019 - C++ x64/x86 build tools`
-- `MSVC v142 - VS 2019 - C++ x64/x86 Spectre-mitigated libs`
+- `C++/CLI support for v143 build tools`
+- `MSVC v143 - VS 2022 - C++ x64/x86 build tools`
+- `MSVC v143 - VS 2022 - C++ x64/x86 Spectre-mitigated libs`
-:::
-
-:::caution pass
+---
In the most recent Windows test against NodeJS `20.8.0`, the build failed due
to an issue in the OpenSSL dependency:
@@ -186,8 +182,8 @@ to an issue in the OpenSSL dependency:
```
SheetJS libraries are compatible with NodeJS versions dating back to `v0.8`. The
-workaround is to select NodeJS `v16.20.2` using the `-n` flag. This version was
-was chosen since NodeJS `v18` upgraded the OpenSSL dependency.
+workaround is to select NodeJS `v22.22.2` using the `-n` flag. In previous test
+runs, the recommended version was `v16.20.2`.
:::
diff --git a/docz/docs/03-demos/42-engines/01-duktape.md b/docz/docs/03-demos/42-engines/01-duktape.md
index 7860126..1b1fc22 100644
--- a/docz/docs/03-demos/42-engines/01-duktape.md
+++ b/docz/docs/03-demos/42-engines/01-duktape.md
@@ -1141,6 +1141,7 @@ This demo was tested in the following deployments:
|:-------------|:--------|:-----------|
| `darwin-x64` | `2.2.0` | 2026-01-21 |
| `darwin-arm` | `2.2.0` | 2026-03-07 |
+| `win11-arm` | `2.2.0` | 2026-05-09 |
| `linux-x64` | `2.2.0` | 2025-04-21 |
| `linux-arm` | `2.2.0` | 2026-03-07 |
@@ -1162,7 +1163,7 @@ sudo pacman -S libxcrypt
1) Install the `JavaScript::Duktape::XS` library:
```bash
-cpan install JavaScript::Duktape::XS
+cpan install -T JavaScript::Duktape::XS
```
:::note pass
@@ -1181,6 +1182,23 @@ sudo cpan install JavaScript::Duktape::XS
curl -LO https://docs.sheetjs.com/duk/SheetJSDuk.pl
```
+:::caution pass
+
+PowerShell `curl` is incompatible with the official `curl` program. The command
+may fail with a parameter error:
+
+```
+Invoke-WebRequest : A parameter cannot be found that matches parameter name 'LO'.
+```
+
+`curl.exe` must be used instead:
+
+```bash
+curl.exe -LO https://docs.sheetjs.com/duk/SheetJSDuk.pl
+```
+
+:::
+
3) Download the SheetJS ExtendScript build and test file:
{`\
@@ -1188,6 +1206,24 @@ curl -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.extendscript.
curl -LO https://docs.sheetjs.com/pres.xlsx`}
+:::caution pass
+
+PowerShell `curl` is incompatible with the official `curl` program. The command
+may fail with a parameter error:
+
+```
+Invoke-WebRequest : A parameter cannot be found that matches parameter name 'LO'.
+```
+
+`curl.exe` must be used instead:
+
+{`\
+curl.exe -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.extendscript.js
+curl.exe -LO https://docs.sheetjs.com/pres.xlsx`}
+
+
+:::
+
4) Run the script:
```bash
@@ -1237,39 +1273,12 @@ This demo was tested in the following deployments:
| `darwin-x64` | `2.2.1` | 2026-01-21 |
| `darwin-arm` | `2.2.1` | 2026-03-07 |
| `win11-x64` | `2.2.1` | 2026-02-02 |
-| `win11-arm` | `2.2.1` | 2026-02-02 |
+| `win11-arm` | `2.2.1` | 2026-05-09 |
| `linux-x64` | `2.2.1` | 2026-01-08 |
| `linux-arm` | `2.2.1` | 2026-03-07 |
:::
-:::caution pass
-
-The `ducc` crate cannot compile Duktape from source in Windows on ARM, so the
-x64 Rust toolchain must be used through the X64 compatibility layer.
-
-
- Windows on ARM steps (click to show)
-
-The following commands switch to the X64 toolchain:
-
-```pwsh
-rustup toolchain install stable-x86_64-pc-windows-msvc --force-non-host
-rustup default stable-x86_64-pc-windows-msvc --force-non-host
-```
-
----
-
-The following command switches back to the native toolchain:
-
-```pwsh
-rustup default stable
-```
-
-
-
-:::
-
1) Create a new project:
```bash
@@ -1338,6 +1347,22 @@ If the program succeeded, the CSV contents will be printed to console and the
file `sheetjsw.xlsb` will be created. That file can be opened with a spreadsheet
editor that supports XLSB spreadsheets.
+:::caution pass
+
+When this demo was last tested on Windows on ARM, the build step failed:
+
+```
+fatal error C1189: #error: cannot determine intptr type
+```
+
+The macro `DUK_F_ARM64` must be manually defined through the `CFLAGS` variable:
+
+```cmd
+set CFLAGS=/DDUK_F_ARM64
+cargo run -- pres.numbers
+```
+
+:::
[^1]: See [Foreign Function Interface](https://www.php.net/manual/en/book.ffi.php) in the PHP documentation.
[^2]: See [`ctypes`](https://docs.python.org/3/library/ctypes.html) in the Python documentation.
\ No newline at end of file
diff --git a/docz/docs/03-demos/42-engines/05-jint.md b/docz/docs/03-demos/42-engines/05-jint.md
index 19cb1b9..7b56097 100644
--- a/docz/docs/03-demos/42-engines/05-jint.md
+++ b/docz/docs/03-demos/42-engines/05-jint.md
@@ -167,7 +167,7 @@ This demo was tested in the following deployments:
| `darwin-arm` | `4.6.3` | 2026-03-22 |
| `win11-x64` | `4.6.3` | 2026-05-05 |
| `win11-arm` | `4.6.3` | 2026-03-22 |
-| `linux-x64` | `4.2.2` | 2025-06-16 |
+| `linux-x64` | `4.8.0` | 2026-05-07 |
| `linux-arm` | `4.5.0` | 2026-03-07 |
:::
@@ -248,12 +248,12 @@ dotnet run
```bash
dotnet nuget add source https://www.myget.org/F/jint/api/v3/index.json
-dotnet add package Jint --version 4.6.3
+dotnet add package Jint --version 4.8.0
```
To verify Jint is installed, replace `Program.cs` with the following:
-```csharp title="Program.cs"
+```csharp title="Program.cs (replace contents)"
var engine = new Jint.Engine();
Console.WriteLine("Hello {0}", engine.Evaluate("'Sheet' + 'JS'"));
```
@@ -304,7 +304,7 @@ curl.exe -LO https://docs.sheetjs.com/pres.xlsx`}
6) Replace `Program.cs` with the following:
-```csharp title="Program.cs"
+```csharp title="Program.cs (replace contents)"
var engine = new Jint.Engine();
engine.Evaluate("global = globalThis;");
engine.Evaluate(File.ReadAllText("shim.min.js"));
@@ -324,7 +324,7 @@ dotnet run
7) Replace `Program.cs` with the following:
-```csharp title="Program.cs"
+```csharp title="Program.cs (replace contents)"
using Jint;
/* Initialize Jint */
diff --git a/docz/docs/03-demos/42-engines/09-hermes.md b/docz/docs/03-demos/42-engines/09-hermes.md
index 09b4a1c..d72c2e9 100644
--- a/docz/docs/03-demos/42-engines/09-hermes.md
+++ b/docz/docs/03-demos/42-engines/09-hermes.md
@@ -613,7 +613,7 @@ contents of the first sheet as CSV rows.
:::info pass
-On ARM64, the commands must be run in a "ARM64 Native Tools Command Prompt".
+The commands must be run in a "Native Tools Command Prompt".
:::
@@ -647,17 +647,14 @@ settings pane, scroll down and turn off the alias for `python.exe`.
:::
-1) Set up `depot_tools`.
+1) Set up `depot_tools` to `c:\src\`:
-[`depot_tools.zip`](https://storage.googleapis.com/chrome-infra/depot_tools.zip)
-must be downloaded and extracted to `c:\src\depot_tools\`.
-
-:::note pass
-
-This ZIP has a number of hidden files and folders (including `.git`) which
-should be extracted along with the normal files.
-
-:::
+```cmd
+cd c:\
+mkdir src
+cd src
+git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
+```
Add the path `c:\src\depot_tools\` to the User `PATH` environment variable
@@ -680,7 +677,7 @@ Click "OK" in each window (3 windows) and restart your computer.
2) Delete `c:\src\depot_tools\ninja` if it exists, then download the
-[official Windows release](https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-win.zip)
+[official Windows release](https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip)
and move the `ninja.exe` into `c:\src\depot_tools`. If a `ninja.exe` exists in
the folder, replace the existing program.
@@ -720,13 +717,13 @@ git config --global http.sslVerify true
```bash
cd hermes-windows
-.\.ado\scripts\cibuild.ps1 -AppPlatform win32 -Platform x64 -ToolsPlatform x64
+powershell .\.ado\scripts\cibuild.ps1 -AppPlatform win32 -Platform x64 -ToolsPlatform x64
cd ..
```
:::note pass
-The script may fail with the message:
+The build may fail with the message:
> cannot be loaded because running scripts is disabled on this system
@@ -767,28 +764,15 @@ cmake --build ./build
-6) Copy every generated `.lib` and `.dll` file into the main folder. The
-following commands should be run in a PowerShell session:
-
-
-
+6) Copy every generated `.lib` and `.dll` file into the main folder:
```powershell
-dir -r -Path .\hermes-windows\workspace\build\win32-x64-debug\ -Filter "*.dll" | Copy-Item -Destination .\
-dir -r -Path .\hermes-windows\workspace\build\win32-x64-debug\ -Filter "*.lib" | Copy-Item -Destination .\
+for /r build %f in (*.dll) do copy /Y "%f" .
+for /r build %f in (*.lib) do copy /Y "%f" .
+for /r hermes-windows %f in (*.dll) do copy /Y "%f" .
+for /r hermes-windows %f in (*.lib) do copy /Y "%f" .
```
-
-
-
-```powershell
-dir -r -Path .\build -Filter "*.dll" | Copy-Item -Destination .\
-dir -r -Path .\build -Filter "*.lib" | Copy-Item -Destination .\
-```
-
-
-
-
7) Download [`sheetjs-hermes.cpp`](pathname:///hermes/sheetjs-hermesw.cpp):
```bash
@@ -801,12 +785,6 @@ curl -o sheetjs-hermesw.cpp https://docs.sheetjs.com/hermes/sheetjs-hermesw.cpp
cl /MDd sheetjs-hermesw.cpp DbgHelp.lib *.lib /I hermes-windows\API /I hermes-windows\include /I hermes-windows\public\ /I hermes-windows\API\jsi icuuc.lib icuin.lib
```
-:::caution pass
-
-If `cl` is not found, run the command in the "Native Tools Command Prompt"
-
-:::
-
:::info pass
In some test runs, the build failed due to duplicate symbols:
@@ -855,7 +833,7 @@ This demo was tested in the following deployments:
|:-------------|:---------|:-----------|
| `darwin-x64` | `0.13.0` | 2026-03-06 |
| `darwin-arm` | `0.13.0` | 2026-03-06 |
-| `win11-x64` | `0.13.0` | 2025-04-28 |
+| `win11-x64` | `0.13.0` | 2026-05-10 |
| `win11-arm` | `0.13.0` | 2025-02-23 |
| `linux-x64` | `0.13.0` | 2025-04-21 |
| `linux-arm` | `0.13.0` | 2026-03-07 |
@@ -869,6 +847,12 @@ binary. Nevertheless, the process was tested using `qemu-user` to simulate the
Due to limitations of the standalone binary, this demo will encode a test file
as a Base64 string and directly add it to an amalgamated script.
+:::info pass
+
+In Windows, the demo should be run in "Command Prompt".
+
+:::
+
#### Install CLI
0) Install the Hermes command line tools:
@@ -922,13 +906,19 @@ mkdir sheetjs-hermes-cli
cd sheetjs-hermes-cli
```
-3) Copy the binary from Step 1 into the current folder. For example, on macOS:
+3) Copy the binary from Step 1 into the current folder.
+
+
+
+
+The typical location is `~/.jsvu/engines/hermes-0.13.0/hermes-0.13.0`:
```bash
cp ~/.jsvu/engines/hermes-0.13.0/hermes-0.13.0 .
```
-:::note pass
+
+
On Windows, all DLLs must be copied:
@@ -937,7 +927,8 @@ copy %userprofile%\.jsvu\engines\hermes-0.13.0\hermes-0.13.0.exe .
copy %userprofile%\.jsvu\engines\hermes-0.13.0\*.dll .
```
-:::
+
+
#### Create Script
@@ -978,10 +969,24 @@ console.log(XLSX.utils.sheet_to_csv(wb.Sheets[wb.SheetNames[0]]));
7) Create the amalgamation `sheetjs.hermes.js`:
+
+
+
```bash
cat global.js xlsx.full.min.js payload.js hermes.js > sheetjs.hermes.js
```
+
+
+
+```cmd
+type global.js xlsx.full.min.js payload.js hermes.js > sheetjs.hermes.js
+```
+
+
+
+
+
The final script defines `global` before loading the standalone library. Once
ready, it will read the bundled test data and print the contents as CSV.
diff --git a/docz/docs/03-demos/42-engines/15-rb.md b/docz/docs/03-demos/42-engines/15-rb.md
index 37bfd76..69cae54 100644
--- a/docz/docs/03-demos/42-engines/15-rb.md
+++ b/docz/docs/03-demos/42-engines/15-rb.md
@@ -89,14 +89,11 @@ This demo was tested in the following deployments:
|:-------------|:---------|:---------|:-----------|
| `darwin-x64` | `2.6.10` | `2.10.0` | 2026-01-21 |
| `darwin-arm` | `2.6.10` | `2.10.0` | 2026-03-07 |
-| `win11-x64` | `3.3.8` | `2.10.0` | 2025-04-28 |
-| `win11-arm` | `3.2.3` | `2.10.0` | 2025-02-23 |
+| `win11-x64` | `4.0.3` | `2.10.1` | 2026-05-09 |
+| `win11-arm` | `4.0.3` | `2.10.1` | 2026-05-09 |
| `linux-x64` | `3.3.8` | `2.10.0` | 2026-03-08 |
| `linux-arm` | `3.3.8` | `2.10.0` | 2026-03-07 |
-When the demo was last tested, there was no official Ruby release for Windows
-on ARM. The `win11-arm` test was run in WSL.
-
:::
0) Install Ruby, `gem` (RubyGems), and the dependencies:
diff --git a/docz/docs/03-demos/42-engines/20-chakra.md b/docz/docs/03-demos/42-engines/20-chakra.md
index add5af7..127ead2 100644
--- a/docz/docs/03-demos/42-engines/20-chakra.md
+++ b/docz/docs/03-demos/42-engines/20-chakra.md
@@ -133,8 +133,8 @@ This demo was tested in the following deployments:
|:-------------|:-----------|:-----------|
| `darwin-x64` | `792ee76` | 2026-01-20 |
| `darwin-arm` | `792ee76` | 2026-03-08 |
-| `win11-x64` | `36becec` | 2025-04-28 |
-| `win11-arm` | `e26c81f` | 2025-02-23 |
+| `win11-x64` | `97e68c9` | 2026-05-09 |
+| `win11-arm` | `97e68c9` | 2026-05-09 |
| `linux-x64` | `792ee76` | 2026-03-08 |
| `linux-arm` | `792ee76` | 2026-01-10 |
@@ -204,7 +204,7 @@ The commands in this demo should be run in "ARM64 Native Tools Command Prompt".
```bash
git clone https://github.com/chakra-core/ChakraCore.git
cd ChakraCore
-git checkout 792ee76
+git checkout 97e68c9
cd ..
```
@@ -416,9 +416,9 @@ msbuild /m /p:Platform=x64 /p:Configuration=Debug /p:RuntimeLib=static_library B
cd ..
```
-:::caution pass
+:::caution Troubleshooting
-During some test runs, the build failed with a message referencing `cfguard.h`:
+In some test runs, the build failed with a message referencing `cfguard.h`:
```
44>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\cfguard.h(44,1): error C2220: the following warning is treated as an error
@@ -474,7 +474,7 @@ cd ..
:::caution pass
-During some test runs, the build failed with a message referencing `LegalizeMD.cpp`:
+In some test runs, the build failed with a message referencing `LegalizeMD.cpp`:
```
...\ChakraCore\lib\Backend\arm64\LegalizeMD.cpp(323,16): warning C1489: 'fPostRegAlloc': local variable is initialized but not referenced [...]
@@ -606,7 +606,7 @@ If successful, the program will print the contents of the first sheet as CSV.
:::note Tested Deployments
-This demo was last tested on 2026-01-10 against `ch` commit `792ee76`.
+This demo was last tested on 2026-05-09 against `ch` commit `97e68c9`.
:::
@@ -660,19 +660,26 @@ console.log(XLSX.utils.sheet_to_csv(wb.Sheets[wb.SheetNames[0]]));
4) Create the amalgamation `xlsx.chakra.js`:
+
+
+
```bash
cat global.js xlsx.full.min.js payload.js chakra.js > xlsx.chakra.js
```
+
+
+
+```cmd
+type global.js xlsx.full.min.js payload.js chakra.js > xlsx.chakra.js
+```
+
+
+
+
The final script defines `global` before loading the standalone library. Once
ready, it will read the bundled test data and print the contents as CSV.
-:::note pass
-
-On Windows, the command should be run in WSL.
-
-:::
-
5) Run the script using the ChakraCore standalone binary:
@@ -699,6 +706,16 @@ The "Integration Example" stores `ch` in the `ChakraCore/out/Test/` folder:
.\ch.exe xlsx.chakra.js
```
+:::note pass
+
+The "Integration Example" makes `ChakraCore\Build\VcBuild\bin\x64_debug\ch.exe`:
+
+```bash
+ChakraCore\Build\VcBuild\bin\x64_debug\ch.exe xlsx.chakra.js
+```
+
+:::
+
diff --git a/docz/docs/03-demos/42-engines/21-boa.md b/docz/docs/03-demos/42-engines/21-boa.md
index d88a588..a3b1ea6 100644
--- a/docz/docs/03-demos/42-engines/21-boa.md
+++ b/docz/docs/03-demos/42-engines/21-boa.md
@@ -107,7 +107,7 @@ This demo was tested in the following deployments:
|:-------------|:---------|:-----------|
| `darwin-x64` | `0.20.1` | 2026-01-21 |
| `darwin-arm` | `0.21.0` | 2026-03-07 |
-| `win11-x64` | `0.20.0` | 2025-04-28 |
+| `win11-x64` | `0.21.1` | 2026-05-08 |
| `win11-arm` | `0.21.0` | 2026-03-22 |
| `linux-x64` | `0.21.0` | 2026-01-08 |
| `linux-arm` | `0.21.0` | 2026-03-07 |
diff --git a/docz/docs/03-demos/42-engines/22-perl.md b/docz/docs/03-demos/42-engines/22-perl.md
index 2578f5c..3ba21c2 100644
--- a/docz/docs/03-demos/42-engines/22-perl.md
+++ b/docz/docs/03-demos/42-engines/22-perl.md
@@ -131,13 +131,11 @@ This demo was tested in the following deployments:
|:-------------|:--------|:-----------|
| `darwin-x64` | `0.066` | 2026-01-21 |
| `darwin-arm` | `0.066` | 2026-03-07 |
-| `win11-x64` | `0.066` | 2026-01-10 |
-| `win11-arm` | `0.066` | 2026-01-10 |
+| `win11-x64` | `0.066` | 2026-05-09 |
+| `win11-arm` | `0.066` | 2026-05-09 |
| `linux-x64` | `0.066` | 2026-03-07 |
| `linux-arm` | `0.066` | 2026-03-07 |
-The Windows tests were run in WSL.
-
:::
1) Install `JE` and `File::Slurp` through CPAN:
@@ -168,12 +166,44 @@ sudo cpan install JE File::Slurp
curl -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.extendscript.js`}
+:::note pass
+
+In PowerShell, the command may fail with a parameter error:
+
+```
+Invoke-WebRequest : A parameter cannot be found that matches parameter name 'LO'.
+```
+
+`curl.exe` must be invoked directly:
+
+{`\
+curl.exe -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.extendscript.js`}
+
+
+:::
+
3) Download the demo [`SheetJE.pl`](pathname:///perl/SheetJE.pl):
```bash
curl -LO https://docs.sheetjs.com/perl/SheetJE.pl
```
+:::note pass
+
+In PowerShell, the command may fail with a parameter error:
+
+```
+Invoke-WebRequest : A parameter cannot be found that matches parameter name 'LO'.
+```
+
+`curl.exe` must be invoked directly:
+
+```bash
+curl.exe -LO https://docs.sheetjs.com/perl/SheetJE.pl
+```
+
+:::
+
4) Download the [test file](pathname:///cd.xls) and run:
```bash
@@ -181,5 +211,22 @@ curl -LO https://docs.sheetjs.com/cd.xls
perl SheetJE.pl cd.xls
```
+:::note pass
+
+In PowerShell, the command may fail with a parameter error:
+
+```
+Invoke-WebRequest : A parameter cannot be found that matches parameter name 'LO'.
+```
+
+`curl.exe` must be invoked directly:
+
+```bash
+curl.exe -LO https://docs.sheetjs.com/cd.xls
+perl SheetJE.pl cd.xls
+```
+
+:::
+
After a short wait, the contents will be displayed in CSV form. The script will
also generate the spreadsheet `SheetJE.fods` which can be opened in LibreOffice.
\ No newline at end of file
diff --git a/docz/docs/03-demos/42-engines/23-jerryscript.md b/docz/docs/03-demos/42-engines/23-jerryscript.md
index aa07f55..da7bfcf 100644
--- a/docz/docs/03-demos/42-engines/23-jerryscript.md
+++ b/docz/docs/03-demos/42-engines/23-jerryscript.md
@@ -5,6 +5,8 @@ pagination_next: solutions/input
---
import current from '/version.js';
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
[JerryScript](https://jerryscript.net/) is a lightweight JavaScript engine. It
@@ -38,13 +40,11 @@ This demo was tested in the following environments:
|:-------------|:----------|:-----------|
| `darwin-x64` | `b706935` | 2026-01-21 |
| `darwin-arm` | `b706935` | 2026-03-07 |
-| `win11-x64` | `5020015` | 2025-04-23 |
-| `win11-arm` | `5020015` | 2025-02-23 |
+| `win11-x64` | `b706935` | 2026-05-08 |
+| `win11-arm` | `b706935` | 2026-05-09 |
| `linux-x64` | `b706935` | 2026-03-07 |
| `linux-arm` | `b706935` | 2026-03-07 |
-The Windows tests were run in WSL.
-
:::
## Integration Details
@@ -339,6 +339,13 @@ This function can be used to pull the `csv` value from the previous section:
The "Integration Example" covers a traditional integration in a C application,
while the "CLI Test" demonstrates other concepts using the `jerry` CLI tool.
+:::note pass
+
+The Windows build requires Visual Studio with "Desktop development with C++".
+**Commands must be run in a "Native Tools Command Prompt" session.**
+
+:::
+
### Integration Example
@@ -346,7 +353,7 @@ while the "CLI Test" demonstrates other concepts using the `jerry` CLI tool.
The JerryScript build system requires `cmake`.
-Debian and WSL additionally require `python3` and `python-is-python3` packages.
+Debian and Ubuntu additionally require `python3` and `python-is-python3` .
@@ -359,6 +366,9 @@ cd SheetJSJerry
2) Clone the repository and build the library with required options:
+
+
+
```bash
git clone --depth=1 https://github.com/jerryscript-project/jerryscript.git
cd jerryscript
@@ -366,16 +376,42 @@ python3 tools/build.py --error-messages=ON --logging=ON --mem-heap=8192 --cpoint
cd ..
```
+
+
+
+```powershell
+git clone --depth=1 https://github.com/jerryscript-project/jerryscript.git
+cd jerryscript
+python tools/build.py --error-messages=ON --logging=ON --mem-heap=8192 --cpointer-32bit=ON
+cd ..
+```
+
+
+
+
:::caution pass
In some tests, the build step failed with compiler warnings treated as errors.
The flags `-Wno-error` and `-Wno-unterminated-string-initialization` should be
added to the build:
+
+
+
```bash
python3 tools/build.py --error-messages=ON --logging=ON --mem-heap=8192 --cpointer-32bit=ON --compile-flag="-Wno-error" --compile-flag="-Wno-unterminated-string-initialization"
```
+
+
+
+```powershell
+python tools/build.py --error-messages=ON --logging=ON --mem-heap=8192 --cpointer-32bit=ON --compile-flag="-Wno-error" --compile-flag="-Wno-unterminated-string-initialization"
+```
+
+
+
+
:::
3) Download the SheetJS Standalone script, shim script and test file. Move all
@@ -402,16 +438,42 @@ curl -LO https://docs.sheetjs.com/jerryscript/sheetjs.jerry.c
5) Build the sample application:
+
+
+
```bash
gcc -o sheetjs.jerry -Ijerryscript/jerry-ext/include -Ijerryscript/jerry-math/include -Ijerryscript/jerry-core/include sheetjs.jerry.c -ljerry-core -ljerry-ext -ljerry-port -lm -Ljerryscript/build/lib -Wno-pointer-sign
```
+
+
+
+```powershell
+cl /Fe:sheetjs.jerry.exe /Ijerryscript/jerry-ext/include /Ijerryscript/jerry-math/include /Ijerryscript/jerry-core/include sheetjs.jerry.c /MD /link /LIBPATH:jerryscript/build/lib /LIBPATH:jerryscript/build/lib/MinSizeRel jerry-core.lib jerry-ext.lib jerry-port.lib
+```
+
+
+
+
6) Run the test program:
+
+
+
```bash
./sheetjs.jerry pres.xlsx
```
+
+
+
+```powershell
+.\sheetjs.jerry.exe pres.xlsx
+```
+
+
+
+
If successful, the program will print contents of the first sheet as CSV rows.
### CLI Test
@@ -427,12 +489,27 @@ as a Base64 string and directly add it to an amalgamated script.
If the "Integration Example" was not tested, run the following commands:
+
+
+
```bash
git clone --depth=1 https://github.com/jerryscript-project/jerryscript.git
cd jerryscript
python3 tools/build.py --error-messages=ON --logging=ON --mem-heap=8192 --cpointer-32bit=ON
```
+
+
+
+```powershell
+git clone --depth=1 https://github.com/jerryscript-project/jerryscript.git
+cd jerryscript
+python tools/build.py --error-messages=ON --logging=ON --mem-heap=8192 --cpointer-32bit=ON
+```
+
+
+
+
If the "Integration Example" was tested, enter the `jerryscript` folder:
```bash
@@ -478,19 +555,45 @@ console.log(XLSX.utils.sheet_to_csv(wb.Sheets[wb.SheetNames[0]]));
4) Create the amalgamation `xlsx.jerry.js`:
+
+
+
```bash
cat global.js xlsx.full.min.js payload.js jerry.js > xlsx.jerry.js
```
+
+
+
+```cmd
+type global.js xlsx.full.min.js payload.js jerry.js > xlsx.jerry.js
+```
+
+
+
+
The final script defines `global` before loading the standalone library. Once
ready, it will read the bundled test data and print the contents as CSV.
5) Run the script using the `jerry` standalone binary:
+
+
+
```bash
build/bin/jerry xlsx.jerry.js; echo $?
```
+
+
+
+```cmd
+build\bin\MinSizeRel\jerry.exe xlsx.jerry.js
+```
+
+
+
+
If successful, the contents of the test file will be displayed in CSV rows. The
status code `0` will be printed after the rows.
diff --git a/docz/docs/03-demos/42-engines/24-graaljs.md b/docz/docs/03-demos/42-engines/24-graaljs.md
index 50ecc2e..7dd755c 100644
--- a/docz/docs/03-demos/42-engines/24-graaljs.md
+++ b/docz/docs/03-demos/42-engines/24-graaljs.md
@@ -54,14 +54,16 @@ This demo was tested in the following deployments:
| OpenJDK | GraalJS | Date |
|:--------|:--------|:-----------|
-| 24.0.1 | 24.2.1 | 2025-05-06 |
-| 23.0.2 | 24.2.1 | 2025-05-06 |
-| 22.0.2 | 24.2.1 | 2025-05-06 |
-| 21.0.7 | 24.2.1 | 2025-05-06 |
-| 20.0.2 | 24.2.1 | 2025-05-06 |
-| 19.0.2 | 24.2.1 | 2025-05-06 |
-| 18.0.2 | 24.2.1 | 2025-05-06 |
-| 17.0.15 | 24.2.1 | 2025-05-06 |
+| 26 | 25.0.2 | 2026-05-07 |
+| 25.0.2 | 25.0.2 | 2026-05-07 |
+| 24.0.2 | 25.0.2 | 2026-05-07 |
+| 23.0.2 | 25.0.2 | 2026-05-07 |
+| 22.0.2 | 25.0.2 | 2026-05-07 |
+| 21.0.10 | 25.0.2 | 2026-05-07 |
+| 20.0.2 | 25.0.2 | 2026-05-07 |
+| 19.0.2 | 25.0.2 | 2026-05-07 |
+| 18.0.2 | 25.0.2 | 2026-05-07 |
+| 17.0.18 | 25.0.2 | 2026-05-07 |
:::
@@ -70,14 +72,14 @@ This demo was tested in the following deployments:
0) Download GraalJS and its dependencies:
```bash
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-scriptengine/24.2.1/js-scriptengine-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-language/24.2.1/js-language-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/polyglot/polyglot/24.2.1/polyglot-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/collections/24.2.1/collections-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/truffle/truffle-api/24.2.1/truffle-api-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/nativeimage/24.2.1/nativeimage-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/shadowed/icu4j/24.2.1/icu4j-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/regex/regex/24.2.1/regex-24.2.1.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-scriptengine/25.0.2/js-scriptengine-25.0.2.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-language/25.0.2/js-language-25.0.2.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/polyglot/polyglot/25.0.2/polyglot-25.0.2.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/collections/25.0.2/collections-25.0.2.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/truffle/truffle-api/25.0.2/truffle-api-25.0.2.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/nativeimage/25.0.2/nativeimage-25.0.2.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/shadowed/icu4j/25.0.2/icu4j-25.0.2.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/regex/regex/25.0.2/regex-25.0.2.jar"
```
1) Download the SheetJS Standalone script, shim script and test file. Move all
@@ -118,14 +120,14 @@ CSV rows from the first worksheet.
```bash
-java -cp ".:js-scriptengine-24.2.1.jar:js-language-24.2.1.jar:polyglot-24.2.1.jar:collections-24.2.1.jar:truffle-api-24.2.1.jar:nativeimage-24.2.1.jar:icu4j-24.2.1.jar:regex-24.2.1.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
+java -cp ".:js-scriptengine-25.0.2.jar:js-language-25.0.2.jar:polyglot-25.0.2.jar:collections-25.0.2.jar:truffle-api-25.0.2.jar:nativeimage-25.0.2.jar:icu4j-25.0.2.jar:regex-25.0.2.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
```
```bash
-java -cp ".;js-scriptengine-24.2.1.jar;js-language-24.2.1.jar;polyglot-24.2.1.jar;collections-24.2.1.jar;truffle-api-24.2.1.jar;nativeimage-24.2.1.jar;icu4j-24.2.1.jar;regex-24.2.1.jar" -D"polyglot.js.nashorn-compat=true" SheetJSNashorn pres.xlsx
+java -cp ".;js-scriptengine-25.0.2.jar;js-language-25.0.2.jar;polyglot-25.0.2.jar;collections-25.0.2.jar;truffle-api-25.0.2.jar;nativeimage-25.0.2.jar;icu4j-25.0.2.jar;regex-25.0.2.jar" -D"polyglot.js.nashorn-compat=true" SheetJSNashorn pres.xlsx
```
@@ -155,14 +157,14 @@ cd sheethorn
```bash
-java -cp ".:js-scriptengine-24.2.1.jar:js-language-24.2.1.jar:polyglot-24.2.1.jar:collections-24.2.1.jar:truffle-api-24.2.1.jar:nativeimage-24.2.1.jar:icu4j-24.2.1.jar:regex-24.2.1.jar:SheetJSNashorn.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
+java -cp ".:js-scriptengine-25.0.2.jar:js-language-25.0.2.jar:polyglot-25.0.2.jar:collections-25.0.2.jar:truffle-api-25.0.2.jar:nativeimage-25.0.2.jar:icu4j-25.0.2.jar:regex-25.0.2.jar:SheetJSNashorn.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
```
```bash
-java -cp ".;js-scriptengine-24.2.1.jar;js-language-24.2.1.jar;polyglot-24.2.1.jar;collections-24.2.1.jar;truffle-api-24.2.1.jar;nativeimage-24.2.1.jar;icu4j-24.2.1.jar;regex-24.2.1.jar;SheetJSNashorn.jar" -D"polyglot.js.nashorn-compat=true" SheetJSNashorn pres.xlsx
+java -cp ".;js-scriptengine-25.0.2.jar;js-language-25.0.2.jar;polyglot-25.0.2.jar;collections-25.0.2.jar;truffle-api-25.0.2.jar;nativeimage-25.0.2.jar;icu4j-25.0.2.jar;regex-25.0.2.jar;SheetJSNashorn.jar" -D"polyglot.js.nashorn-compat=true" SheetJSNashorn pres.xlsx
```
diff --git a/docz/docs/03-demos/42-engines/26-jurassic.md b/docz/docs/03-demos/42-engines/26-jurassic.md
index 8e51d3f..37685c0 100644
--- a/docz/docs/03-demos/42-engines/26-jurassic.md
+++ b/docz/docs/03-demos/42-engines/26-jurassic.md
@@ -178,7 +178,7 @@ This demo was tested in the following deployments:
|:-------------|:---------|:-----------|
| `darwin-x64` | `3.2.9` | 2026-01-21 |
| `darwin-arm` | `3.2.9` | 2026-03-07 |
-| `win11-x64` | `3.2.9` | 2025-04-23 |
+| `win11-x64` | `3.2.9` | 2026-05-07 |
| `win11-arm` | `3.2.9` | 2026-03-22 |
| `linux-x64` | `3.2.9` | 2026-03-07 |
| `linux-arm` | `3.2.9` | 2026-03-07 |
@@ -265,7 +265,7 @@ dotnet add package Jurassic --version 3.2.9
To verify Jurassic is installed, replace `Program.cs` with the following:
-```csharp title="Program.cs"
+```csharp title="Program.cs (replace contents)"
var engine = new Jurassic.ScriptEngine();
Console.WriteLine("Hello {0}", engine.Evaluate("'Sheet' + 'JS'"));
```
@@ -316,7 +316,7 @@ curl.exe -LO https://docs.sheetjs.com/pres.xlsx`}
6) Replace `Program.cs` with the following:
-```csharp title="Program.cs"
+```csharp title="Program.cs (replace contents)"
var engine = new Jurassic.ScriptEngine();
engine.Evaluate("var global = (function(){ return this; }).call(null);");
engine.Evaluate(File.ReadAllText("shim.min.js"));
@@ -336,7 +336,7 @@ dotnet run
7) Replace `Program.cs` with the following:
-```csharp title="Program.cs"
+```csharp title="Program.cs (replace contents)"
var engine = new Jurassic.ScriptEngine();
/* Initialize Jurassic */
diff --git a/docz/docs/03-demos/42-engines/index.md b/docz/docs/03-demos/42-engines/index.md
index f8ef9e8..2c42e7e 100644
--- a/docz/docs/03-demos/42-engines/index.md
+++ b/docz/docs/03-demos/42-engines/index.md
@@ -96,13 +96,13 @@ The following bindings have been tested:
:::note pass
+Crosses (✘) mark tests for Windows on ARM that use the X64 compatibility layer.
+Proper Windows x64 binaries were cross-compiled and run in Windows on ARM.
+
Asterisks (✱) in the Windows columns mark tests that were run in Windows
Subsystem for Linux (WSL). In some cases, community efforts have produced forks
with native Windows support.
-Crosses (✘) mark tests for Windows on ARM that use the X64 compatibility layer.
-Proper Windows x64 binaries were cross-compiled and run in Windows on ARM.
-
Blank cells mark untested or unsupported configurations. With cross-compilation,
V8 can run natively in Windows on ARM. The `win11-arm` platform is not tested
since the official build infrastructure does not support Windows on ARM and the
diff --git a/docz/docs/09-miscellany/05-contributing.md b/docz/docs/09-miscellany/05-contributing.md
index 3c9e855..ff035b2 100644
--- a/docz/docs/09-miscellany/05-contributing.md
+++ b/docz/docs/09-miscellany/05-contributing.md
@@ -45,7 +45,7 @@ These instructions were tested on the following platforms:
| Linux (Debian Linux AArch64) | `linux-arm` | 2026-03-05 |
| MacOS 15.6 (x64) | `darwin-x64` | 2026-01-21 |
| MacOS 15.7 (ARM64) | `darwin-arm` | 2026-02-02 |
-| Windows 11 (x64) + WSL Ubuntu | `win11-x64` | 2025-06-20 |
+| Windows 11 (x64) + WSL Ubuntu | `win11-x64` | 2026-05-07 |
| Windows 11 (ARM) + WSL Ubuntu | `win11-arm` | 2026-03-08 |
With some additional dependencies, the unminified scripts are reproducible and
@@ -83,19 +83,30 @@ to install every listed feature that is available for the Windows version.
:::
-The following PowerShell command updates WSL:
+After installing WSL, the following PowerShell command will update WSL:
```powershell
wsl --update
```
-The following PowerShell command installs Ubuntu within WSL:
+WSL does not automatically install a Linux distribution. The following command
+installs Ubuntu:
```powershell
wsl --install Ubuntu
```
-:::note pass
+The installation process will create a default Unix user account. The password
+need not match the Windows user password.
+
+:::danger Telemetry
+
+In some test runs, Ubuntu requested "platform metrics collection". If prompted
+to opt-in, type `n` and press Enter
+
+:::
+
+:::caution Troubleshooting
In some versions of `wsl`, the `-d` flag must be specified:
@@ -103,9 +114,7 @@ In some versions of `wsl`, the `-d` flag must be specified:
wsl --install -d Ubuntu
```
-:::
-
-:::info pass
+---
In some tests, the install failed with a `WSL_E_DEFAULT_DISTRO_NOT_FOUND` error.
@@ -118,9 +127,7 @@ wsl --set-default-version 2
wsl --install Ubuntu
```
-:::
-
-:::caution pass
+---
In Windows 11 24H2, the `wsl` commands may fail with the following message:
@@ -159,7 +166,7 @@ sudo apt-get install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
```
-C) Exit the WSL session and start a new session
+C) Exit the WSL session and start a new session by running `bash`.
D) Install NodeJS 16 using NVM:
@@ -468,6 +475,14 @@ sudo apt-get install -y make
### Build from source tree
+:::info pass
+
+In Windows, commands should be run within a WSL `bash` session.
+
+In MacOS and Linux, commands should run in a standard shell session.
+
+:::
+
0) Clone the project:
```bash
diff --git a/tests/engines/graaljs.sh b/tests/engines/graaljs.sh
index f002e0d..0aefff1 100755
--- a/tests/engines/graaljs.sh
+++ b/tests/engines/graaljs.sh
@@ -1,18 +1,20 @@
#!/bin/bash
# https://docs.sheetjs.com/docs/demos/engines/graaljs
+GRAAL_VERSION="25.0.2"
+
cd /tmp
rm -rf sheetjs-graaljs
mkdir -p sheetjs-graaljs
cd sheetjs-graaljs
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-scriptengine/24.2.1/js-scriptengine-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-language/24.2.1/js-language-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/polyglot/polyglot/24.2.1/polyglot-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/collections/24.2.1/collections-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/truffle/truffle-api/24.2.1/truffle-api-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/nativeimage/24.2.1/nativeimage-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/shadowed/icu4j/24.2.1/icu4j-24.2.1.jar"
-curl -LO "https://repo1.maven.org/maven2/org/graalvm/regex/regex/24.2.1/regex-24.2.1.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-scriptengine/${GRAAL_VERSION}/js-scriptengine-${GRAAL_VERSION}.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-language/${GRAAL_VERSION}/js-language-${GRAAL_VERSION}.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/polyglot/polyglot/${GRAAL_VERSION}/polyglot-${GRAAL_VERSION}.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/collections/${GRAAL_VERSION}/collections-${GRAAL_VERSION}.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/truffle/truffle-api/${GRAAL_VERSION}/truffle-api-${GRAAL_VERSION}.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/nativeimage/${GRAAL_VERSION}/nativeimage-${GRAAL_VERSION}.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/shadowed/icu4j/${GRAAL_VERSION}/icu4j-${GRAAL_VERSION}.jar"
+curl -LO "https://repo1.maven.org/maven2/org/graalvm/regex/regex/${GRAAL_VERSION}/regex-${GRAAL_VERSION}.jar"
curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js
curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/shim.min.js
@@ -20,19 +22,19 @@ curl -LO https://sheetjs.com/pres.xlsx
curl -LO https://docs.sheetjs.com/nashorn/SheetJSNashorn.java
-for n in {17..24}; do
+for n in {17..26}; do
export JAVA_HOME=`/usr/libexec/java_home -v $n`
java -version
rm -fr SheetJSNashorn.class SheetJSNashorn.jar sheethorn
javac SheetJSNashorn.java
- java -cp ".:js-scriptengine-24.2.1.jar:js-language-24.2.1.jar:polyglot-24.2.1.jar:collections-24.2.1.jar:truffle-api-24.2.1.jar:nativeimage-24.2.1.jar:icu4j-24.2.1.jar:regex-24.2.1.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
+ java -cp ".:js-scriptengine-${GRAAL_VERSION}.jar:js-language-${GRAAL_VERSION}.jar:polyglot-${GRAAL_VERSION}.jar:collections-${GRAAL_VERSION}.jar:truffle-api-${GRAAL_VERSION}.jar:nativeimage-${GRAAL_VERSION}.jar:icu4j-${GRAAL_VERSION}.jar:regex-${GRAAL_VERSION}.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
jar -cf SheetJSNashorn.jar SheetJSNashorn.class xlsx.full.min.js shim.min.js
mkdir -p sheethorn
cp *.jar pres.xlsx sheethorn
cd sheethorn
- java -cp ".:js-scriptengine-24.2.1.jar:js-language-24.2.1.jar:polyglot-24.2.1.jar:collections-24.2.1.jar:truffle-api-24.2.1.jar:nativeimage-24.2.1.jar:icu4j-24.2.1.jar:regex-24.2.1.jar:SheetJSNashorn.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
+ java -cp ".:js-scriptengine-${GRAAL_VERSION}.jar:js-language-${GRAAL_VERSION}.jar:polyglot-${GRAAL_VERSION}.jar:collections-${GRAAL_VERSION}.jar:truffle-api-${GRAAL_VERSION}.jar:nativeimage-${GRAAL_VERSION}.jar:icu4j-${GRAAL_VERSION}.jar:regex-${GRAAL_VERSION}.jar:SheetJSNashorn.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
cd -
done