Skip to content

Commit 6b97eb4

Browse files
authored
🏡 Javet v4.1.1 (#424)
* Upgraded Node.js to `v22.12.0` ([2024-12-03](https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V22.md#22.12.0)) * Upgraded V8 to `v13.2.152.16` (2024-12-05) * Upgraded Visual Studio 2022 to [v17.12.3](https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.12) * Added `getAbsoluteResourceName()` to `IV8ModuleResolver` * Fixed memory leaks in function callback in edge cases * `require(esm)` is enabled by default * Removed `isExperimentalRequireModule()`, `setExperimentalRequireModule` from `NodeFlags` * Added `isNoExperimentalRequireModule()`, `setNoExperimentalRequireModule` to `NodeFlags`
1 parent 20c5edd commit 6b97eb4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+380
-261
lines changed

.github/workflows/android_node_build.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ on:
88
workflow_dispatch:
99

1010
env:
11-
JAVET_NODE_VERSION: 22.11.0
12-
JAVET_VERSION: 4.1.0
11+
JAVET_NODE_VERSION: 22.12.0
12+
JAVET_VERSION: 4.1.1
1313
ROOT: /home/runner/work/Javet
1414

1515
jobs:

.github/workflows/android_v8_build.yml

+14-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ on:
88
workflow_dispatch:
99

1010
env:
11-
JAVET_V8_VERSION: 13.1.201.8
12-
JAVET_VERSION: 4.1.0
11+
JAVET_V8_VERSION: 13.2.152.16
12+
JAVET_VERSION: 4.1.1
1313
ROOT: /home/runner/work/Javet
1414

1515
jobs:
@@ -192,12 +192,24 @@ jobs:
192192
mkdir -p android/javet-android/src/main/jniLibs/x86
193193
mkdir -p android/javet-android/src/main/jniLibs/x86_64
194194
195+
- name: Download Javet arm i18n
196+
uses: actions/download-artifact@v4
197+
with:
198+
name: javet-android-v8-arm-${{ env.JAVET_VERSION }}-i18n
199+
path: android/javet-android/src/main/jniLibs/armeabi-v7a
200+
195201
- name: Download Javet arm64 i18n
196202
uses: actions/download-artifact@v4
197203
with:
198204
name: javet-android-v8-arm64-${{ env.JAVET_VERSION }}-i18n
199205
path: android/javet-android/src/main/jniLibs/arm64-v8a
200206

207+
- name: Download Javet x86 i18n
208+
uses: actions/download-artifact@v4
209+
with:
210+
name: javet-android-v8-x86-${{ env.JAVET_VERSION }}-i18n
211+
path: android/javet-android/src/main/jniLibs/x86
212+
201213
- name: Download Javet x86_64 i18n
202214
uses: actions/download-artifact@v4
203215
with:

.github/workflows/linux_build_artifact.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ on:
1717
env:
1818
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
1919
DOCKERHUB_REPO_JAVET: ${{ secrets.DOCKERHUB_REPO_JAVET }}
20-
JAVET_NODE_VERSION: 22.11.0
21-
JAVET_V8_VERSION: 13.1.201.8
22-
JAVET_VERSION: 4.1.0
20+
JAVET_NODE_VERSION: 22.12.0
21+
JAVET_V8_VERSION: 13.2.152.16
22+
JAVET_VERSION: 4.1.1
2323

2424
jobs:
2525
javet_linux_x86_64:

.github/workflows/linux_build_node_v8_image.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ on:
2121
env:
2222
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
2323
DOCKERHUB_REPO_JAVET: ${{ secrets.DOCKERHUB_REPO_JAVET }}
24-
JAVET_NODE_VERSION: 22.11.0
25-
JAVET_V8_VERSION: 13.1.201.8
26-
JAVET_VERSION: 4.1.0
24+
JAVET_NODE_VERSION: 22.12.0
25+
JAVET_V8_VERSION: 13.2.152.16
26+
JAVET_VERSION: 4.1.1
2727

2828
# if we skip a job using a job level `if` condition, then any dependent jobs also don't run.
2929
# we can skip a step of the job, using a step level `if` condition.

.github/workflows/linux_x86_64_build.yml

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ on:
77
workflow_dispatch:
88

99
env:
10-
JAVET_NODE_VERSION: 22.11.0
11-
JAVET_V8_VERSION: 13.1.201.8
12-
JAVET_VERSION: 4.1.0
10+
JAVET_NODE_VERSION: 22.12.0
11+
JAVET_V8_VERSION: 13.2.152.16
12+
JAVET_VERSION: 4.1.1
1313
ROOT: /home/runner/work/Javet
1414

1515
jobs:
@@ -62,6 +62,7 @@ jobs:
6262
gclient sync -D
6363
cd v8
6464
python3 tools/dev/v8gen.py x64.release -- v8_monolithic=true v8_use_external_startup_data=false is_component_build=false ${{ matrix.v8_flag }} v8_enable_pointer_compression=false v8_static_library=true symbol_level=0 use_custom_libcxx=false v8_enable_sandbox=false
65+
gn gen out.gn/x64.release
6566
sed -i '/#include "src\/libplatform\//a #include <cstdlib>' src/libplatform/default-thread-isolated-allocator.cc
6667
sed -i '/bool KernelHasPkruFix()/a const char* env = std::getenv("JAVET_DISABLE_PKU"); if (env && std::strlen(env) > 0) { return false; }' src/libplatform/default-thread-isolated-allocator.cc
6768
ninja -C out.gn/x64.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./

.github/workflows/macos_arm64_build.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ on:
77
workflow_dispatch:
88

99
env:
10-
JAVET_NODE_VERSION: 22.11.0
11-
JAVET_V8_VERSION: 13.1.201.8
12-
JAVET_VERSION: 4.1.0
10+
JAVET_NODE_VERSION: 22.12.0
11+
JAVET_V8_VERSION: 13.2.152.16
12+
JAVET_VERSION: 4.1.1
1313
ROOT: /Users/runner/work/Javet
1414

1515
jobs:

.github/workflows/macos_x86_64_build.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ on:
77
workflow_dispatch:
88

99
env:
10-
JAVET_NODE_VERSION: 22.11.0
11-
JAVET_V8_VERSION: 13.1.201.8
12-
JAVET_VERSION: 4.1.0
10+
JAVET_NODE_VERSION: 22.12.0
11+
JAVET_V8_VERSION: 13.2.152.16
12+
JAVET_VERSION: 4.1.1
1313
ROOT: /Users/runner/work/Javet
1414

1515
jobs:

.github/workflows/windows_x86_64_build.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ on:
77
workflow_dispatch:
88

99
env:
10-
JAVET_NODE_VERSION: 22.11.0
11-
JAVET_V8_VERSION: 13.1.201.8
12-
JAVET_VERSION: 4.1.0
10+
JAVET_NODE_VERSION: 22.12.0
11+
JAVET_V8_VERSION: 13.2.152.16
12+
JAVET_VERSION: 4.1.1
1313
ROOT: D:\a\Javet
1414

1515
jobs:
@@ -93,6 +93,8 @@ jobs:
9393
run: |
9494
cd ../google/v8
9595
sed -i '/static_assert(alignof(Type) <= alignof(decltype(/d' src/objects/tagged-field.h
96+
sed -i 's/__attribute__((tls_model(V8_TLS_MODEL)))/ /g' src/execution/isolate.h
97+
sed -i 's/__attribute__((tls_model(V8_TLS_MODEL)))/ /g' src/heap/local-heap.h
9698
9799
- name: Build Javet JNI
98100
run: |

README.rst

+35-34
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ arm ✔️ ❌ ❌ ❌
5050
arm64 ✔️ ✔️ ✔️ ❌
5151
=========== ======= ======= ======= =======
5252

53-
* Node.js ``v22.11.0`` + V8 ``v13.1.201.8``
53+
* Node.js ``v22.12.0`` + V8 ``v13.2.152.16``
5454
* i18n and non-i18n
5555
* Dynamic switch between Node.js and V8 mode
5656
* Polyfill V8 mode with `Javenode <https://github.com/caoccao/Javenode>`_
@@ -80,112 +80,112 @@ Maven
8080
<dependency>
8181
<groupId>com.caoccao.javet</groupId>
8282
<artifactId>javet</artifactId>
83-
<version>4.1.0</version>
83+
<version>4.1.1</version>
8484
</dependency>
8585
8686
<!-- Node.js Linux (x86_64) -->
8787
<dependency>
8888
<groupId>com.caoccao.javet</groupId>
8989
<artifactId>javet-node-linux-x86_64</artifactId>
90-
<version>4.1.0</version>
90+
<version>4.1.1</version>
9191
</dependency>
9292
9393
<!-- Node.js Linux (arm64) -->
9494
<dependency>
9595
<groupId>com.caoccao.javet</groupId>
9696
<artifactId>javet-node-linux-arm64</artifactId>
97-
<version>4.1.0</version>
97+
<version>4.1.1</version>
9898
</dependency>
9999
100100
<!-- Node.js Mac OS (x86_64) -->
101101
<dependency>
102102
<groupId>com.caoccao.javet</groupId>
103103
<artifactId>javet-node-macos-x86_64</artifactId>
104-
<version>4.1.0</version>
104+
<version>4.1.1</version>
105105
</dependency>
106106
107107
<!-- Node.js Mac OS (arm64) -->
108108
<dependency>
109109
<groupId>com.caoccao.javet</groupId>
110110
<artifactId>javet-node-macos-arm64</artifactId>
111-
<version>4.1.0</version>
111+
<version>4.1.1</version>
112112
</dependency>
113113
114114
<!-- Node.js Windows (x86_64) -->
115115
<dependency>
116116
<groupId>com.caoccao.javet</groupId>
117117
<artifactId>javet-node-windows-x86_64</artifactId>
118-
<version>4.1.0</version>
118+
<version>4.1.1</version>
119119
</dependency>
120120
121121
<!-- V8 Linux (x86_64) -->
122122
<dependency>
123123
<groupId>com.caoccao.javet</groupId>
124124
<artifactId>javet-v8-linux-x86_64</artifactId>
125-
<version>4.1.0</version>
125+
<version>4.1.1</version>
126126
</dependency>
127127
128128
<!-- V8 Linux (arm64) -->
129129
<dependency>
130130
<groupId>com.caoccao.javet</groupId>
131131
<artifactId>javet-v8-linux-arm64</artifactId>
132-
<version>4.1.0</version>
132+
<version>4.1.1</version>
133133
</dependency>
134134
135135
<!-- V8 Mac OS (x86_64) -->
136136
<dependency>
137137
<groupId>com.caoccao.javet</groupId>
138138
<artifactId>javet-v8-macos-x86_64</artifactId>
139-
<version>4.1.0</version>
139+
<version>4.1.1</version>
140140
</dependency>
141141
142142
<!-- V8 Mac OS (arm64) -->
143143
<dependency>
144144
<groupId>com.caoccao.javet</groupId>
145145
<artifactId>javet-v8-macos-arm64</artifactId>
146-
<version>4.1.0</version>
146+
<version>4.1.1</version>
147147
</dependency>
148148
149149
<!-- V8 Windows (x86_64) -->
150150
<dependency>
151151
<groupId>com.caoccao.javet</groupId>
152152
<artifactId>javet-v8-windows-x86_64</artifactId>
153-
<version>4.1.0</version>
153+
<version>4.1.1</version>
154154
</dependency>
155155
156156
Gradle Kotlin DSL
157157
^^^^^^^^^^^^^^^^^
158158

159159
.. code-block:: kotlin
160160
161-
implementation("com.caoccao.javet:javet:4.1.0") // Core (Must-have)
162-
implementation("com.caoccao.javet:javet-node-linux-arm64:4.1.0")
163-
implementation("com.caoccao.javet:javet-node-linux-x86_64:4.1.0")
164-
implementation("com.caoccao.javet:javet-node-macos-arm64:4.1.0")
165-
implementation("com.caoccao.javet:javet-node-macos-x86_64:4.1.0")
166-
implementation("com.caoccao.javet:javet-node-windows-x86_64:4.1.0")
167-
implementation("com.caoccao.javet:javet-v8-linux-arm64:4.1.0")
168-
implementation("com.caoccao.javet:javet-v8-linux-x86_64:4.1.0")
169-
implementation("com.caoccao.javet:javet-v8-macos-arm64:4.1.0")
170-
implementation("com.caoccao.javet:javet-v8-macos-x86_64:4.1.0")
171-
implementation("com.caoccao.javet:javet-v8-windows-x86_64:4.1.0")
161+
implementation("com.caoccao.javet:javet:4.1.1") // Core (Must-have)
162+
implementation("com.caoccao.javet:javet-node-linux-arm64:4.1.1")
163+
implementation("com.caoccao.javet:javet-node-linux-x86_64:4.1.1")
164+
implementation("com.caoccao.javet:javet-node-macos-arm64:4.1.1")
165+
implementation("com.caoccao.javet:javet-node-macos-x86_64:4.1.1")
166+
implementation("com.caoccao.javet:javet-node-windows-x86_64:4.1.1")
167+
implementation("com.caoccao.javet:javet-v8-linux-arm64:4.1.1")
168+
implementation("com.caoccao.javet:javet-v8-linux-x86_64:4.1.1")
169+
implementation("com.caoccao.javet:javet-v8-macos-arm64:4.1.1")
170+
implementation("com.caoccao.javet:javet-v8-macos-x86_64:4.1.1")
171+
implementation("com.caoccao.javet:javet-v8-windows-x86_64:4.1.1")
172172
173173
Gradle Groovy DSL
174174
^^^^^^^^^^^^^^^^^
175175

176176
.. code-block:: groovy
177177
178-
implementation 'com.caoccao.javet:javet:4.1.0' // Core (Must-have)
179-
implementation 'com.caoccao.javet:javet-node-linux-arm64:4.1.0'
180-
implementation 'com.caoccao.javet:javet-node-linux-x86_64:4.1.0'
181-
implementation 'com.caoccao.javet:javet-node-macos-arm64:4.1.0'
182-
implementation 'com.caoccao.javet:javet-node-macos-x86_64:4.1.0'
183-
implementation 'com.caoccao.javet:javet-node-windows-x86_64:4.1.0'
184-
implementation 'com.caoccao.javet:javet-v8-linux-arm64:4.1.0'
185-
implementation 'com.caoccao.javet:javet-v8-linux-x86_64:4.1.0'
186-
implementation 'com.caoccao.javet:javet-v8-macos-arm64:4.1.0'
187-
implementation 'com.caoccao.javet:javet-v8-macos-x86_64:4.1.0'
188-
implementation 'com.caoccao.javet:javet-v8-windows-x86_64:4.1.0'
178+
implementation 'com.caoccao.javet:javet:4.1.1' // Core (Must-have)
179+
implementation 'com.caoccao.javet:javet-node-linux-arm64:4.1.1'
180+
implementation 'com.caoccao.javet:javet-node-linux-x86_64:4.1.1'
181+
implementation 'com.caoccao.javet:javet-node-macos-arm64:4.1.1'
182+
implementation 'com.caoccao.javet:javet-node-macos-x86_64:4.1.1'
183+
implementation 'com.caoccao.javet:javet-node-windows-x86_64:4.1.1'
184+
implementation 'com.caoccao.javet:javet-v8-linux-arm64:4.1.1'
185+
implementation 'com.caoccao.javet:javet-v8-linux-x86_64:4.1.1'
186+
implementation 'com.caoccao.javet:javet-v8-macos-arm64:4.1.1'
187+
implementation 'com.caoccao.javet:javet-v8-macos-x86_64:4.1.1'
188+
implementation 'com.caoccao.javet:javet-v8-windows-x86_64:4.1.1'
189189
190190
For more detail, please visit the `installation <https://www.caoccao.com/Javet/tutorial/basic/installation.html>`_ page.
191191

@@ -222,6 +222,7 @@ Blog
222222
* `How to Compromise V8 on JVM <https://blog.caoccao.com/how-to-compromise-v8-on-jvm-ceb385572461>`_
223223
* `Is TypeScript a Good Choice for a Script Engine? <https://blog.caoccao.com/is-typescript-a-good-choice-for-a-script-engine-01fe69921ace>`_
224224
* `Run TypeScript Directly in Java <https://blog.caoccao.com/run-typescript-directly-in-java-82b7003b44b8>`_
225+
* `SSR — React + Spring Boot with Javet <https://blog.caoccao.com/ssr-react-spring-boot-with-javet-536282ff0edb>`_
225226

226227
Documents
227228
=========

android/javet-android/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ object Config {
7373
const val ANDROIDX_TEST = "1.1.5"
7474
const val APPCOMPAT = "1.3.1"
7575
const val DESUGAR_JDK_LIBS = "2.0.4"
76-
const val JAVET = "4.1.0"
76+
const val JAVET = "4.1.1"
7777
const val JUNIT = "5.10.1"
7878
}
7979
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
android:versionCode="1"
4-
android:versionName="4.1.0"
4+
android:versionName="4.1.1"
55
>
66

77
</manifest>

android/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<groupId>com.caoccao.javet</groupId>
55
<artifactId>javet-android</artifactId>
6-
<version>4.1.0</version>
6+
<version>4.1.1</version>
77
<name>javet</name>
88
<packaging>aar</packaging>
99
<description>Javet is Java + V8 (JAVa + V + EighT). It is an awesome way of embedding V8 in Java.</description>
@@ -29,7 +29,7 @@
2929
<connection>scm:git:git://github.com/caoccao/Javet.git</connection>
3030
<developerConnection>scm:git:git@github.com:caoccao/caoccao.git</developerConnection>
3131
<url>https://github.com/caoccao/Javet</url>
32-
<tag>4.1.0</tag>
32+
<tag>4.1.1</tag>
3333
</scm>
3434

3535
<properties>

build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ object Config {
6666
const val BYTE_BUDDY = "1.15.5"
6767
const val JACKSON_DATABIND = "2.16.0"
6868
const val JAVA_VERSION = "1.8"
69-
const val JAVET = "4.1.0"
69+
const val JAVET = "4.1.1"
7070
const val JAVET_BUDDY = "0.4.0"
7171
const val JETTY_WEBSOCKET = "9.4.53.v20231009"
7272
const val JUNIT = "5.11.3"

cpp/build-android.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Usage for V8: sh build-android.sh -DV8_DIR=${HOME}/v8 -DCMAKE_ANDROID_NDK=${HOME}/android -DCMAKE_ANDROID_ARCH=arm64
44
# Usage for Node: sh build-android.sh -DNODE_DIR=${HOME}/node -DCMAKE_ANDROID_NDK=${HOME}/android -DCMAKE_ANDROID_ARCH=arm64
5-
JAVET_VERSION=4.1.0
5+
JAVET_VERSION=4.1.1
66
rm -rf build_android
77
mkdir build_android
88
cd build_android

cpp/build-linux-arm64.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Usage for V8: sh build-linux-arm64.sh -DV8_DIR=${HOME}/v8
44
# Usage for Node: sh build-linux-arm64.sh -DNODE_DIR=${HOME}/node
5-
JAVET_VERSION=4.1.0
5+
JAVET_VERSION=4.1.1
66
rm -rf build_linux_arm64
77
mkdir build_linux_arm64
88
cd build_linux_arm64

cpp/build-linux-x86_64.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Usage for V8: sh build-linux-x86_64.sh -DV8_DIR=${HOME}/v8
44
# Usage for Node: sh build-linux-x86_64.sh -DNODE_DIR=${HOME}/node
5-
JAVET_VERSION=4.1.0
5+
JAVET_VERSION=4.1.1
66
rm -rf build_linux_x86_64
77
mkdir build_linux_x86_64
88
cd build_linux_x86_64

cpp/build-macos.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Usage for V8: sh build-macos.sh -DV8_DIR=${HOME}/v8
44
# Usage for Node: sh build-macos.sh -DNODE_DIR=${HOME}/node
5-
JAVET_VERSION=4.1.0
5+
JAVET_VERSION=4.1.1
66
rm -rf build_macos
77
mkdir build_macos
88
cd build_macos

cpp/build-windows.cmd

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@echo off
22
REM Usage for V8: build -DV8_DIR=C:\v8
33
REM Usage for Node: build -DNODE_DIR=C:\node
4-
SET JAVET_VERSION=4.1.0
4+
SET JAVET_VERSION=4.1.1
55
rd /s/q build_windows
66
mkdir build_windows
77
cd build_windows

0 commit comments

Comments
 (0)