Skip to content

Commit 9f9724c

Browse files
authored
😖 Javet v3.0.4 (#298)
* Upgraded V8 to `v12.2.281.16` (2024-02-15) * Upgraded Node.js to `v20.11.1` ([2024-02-14](https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.11.1)) * Added proxy plugin system for converters * Added `createTargetObject()`, `getProxyPlugin()`, `proxyDeleteProperty()`, `toJSON()` to `IJavetDirectProxyHandler` * Added `asBoolean()`, `asDouble()`, `asInt()`, `asLong()`, `asString()` to `IV8Value` * Added `IClassProxyPlugin`, `JavetProxyPluginArray`, `JavetProxyPluginClass`, `JavetProxyPluginDefault`, `JavetProxyPluginList`, `JavetProxyPluginMap`, `JavetProxyPluginSet` * Added `V8ValueBuiltInReflect`, `JavetEntityObject`, `JavetEntityPropertyDescriptor` * Added `BindingContextStore`, `ClassDescriptorStore` * Added `createV8ValueStringObject()`, `createV8ValueError()`, `throwError()` to `V8Runtime` * Added `V8ValueBooleanObject`, `V8ValueDoubleObject`, `V8ValueIntegerObject`, `V8ValueLongObject`, `V8ValueStringObject` * Added `V8ValueErrorType`, `V8ErrorTemplate`, `JavetEntityError` * Added `getErrorType()` to `V8ValueError` * Added `getProxyPlugins()`, `isProxyArrayEnabled()`, `setProxyArrayEnabled()`, to `JavetConverterConfig` * Added `getProxyPlugin()`, `proxyGetOwnPropertyDescriptor()` to `IJavetDirectProxyHandler` * Added `getOwnPropertyDescriptor()` to `BaseJavetReflectionProxyHandler` * Added `flat()`, `shift()`, `unshift()` to `IV8ValueArray` * Added `asArray()`, `clear()` to `V8ValueMap` * Added `asArray()`, `clear()` to `V8ValueSet` * Improved performance of `JavetObjectConverter` * Fixed improper conversions in `JavetBridgeConverter` * Fixed a memory leak in adding a V8 module with the same name * Swapped `JavetScriptingError.getMessage()` and `JavetScriptingError.getDetailedMessage()` * Removed `JavetProxySymbolIterableConverter`, `JavetProxySymbolToPrimitiveConverter` * Removed `executePrimitive()` from `IV8Executable`
1 parent 5acc069 commit 9f9724c

File tree

657 files changed

+53136
-9347
lines changed

Some content is hidden

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

657 files changed

+53136
-9347
lines changed

.github/workflows/android_build.yml

+36-44
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ on:
88
workflow_dispatch:
99

1010
env:
11-
JAVET_NODE_VERSION: 20.11.0
12-
JAVET_V8_VERSION: 12.1.285.26
13-
JAVET_VERSION: 3.0.3
11+
JAVET_NODE_VERSION: 20.11.1
12+
JAVET_V8_VERSION: 12.2.281.16
13+
JAVET_VERSION: 3.0.4
1414
ROOT: /home/runner/work/Javet
1515

1616
jobs:
@@ -21,14 +21,14 @@ jobs:
2121
steps:
2222

2323
- name: Checkout the code
24-
uses: actions/checkout@v3
24+
uses: actions/checkout@v4
2525

2626
- name: Setup Ubuntu
2727
run: |
2828
sudo apt-get install -y execstack gcc-multilib
2929
3030
- name: Setup Python
31-
uses: actions/setup-python@v4
31+
uses: actions/setup-python@v5
3232
with:
3333
python-version: '3.11'
3434

@@ -61,19 +61,17 @@ jobs:
6161
gclient sync -D
6262
cd v8
6363
python3 tools/dev/v8gen.py arm.release -- 'target_os="android"' 'target_cpu="arm"' 'v8_target_cpu="arm"' v8_monolithic=true v8_use_external_startup_data=false is_component_build=false v8_enable_i18n_support=false v8_enable_pointer_compression=false v8_static_library=true symbol_level=0 use_custom_libcxx=false v8_enable_sandbox=false
64-
sed -i 's/char\[\]/char/g' src/wasm/wasm-engine.cc
65-
sed -i 's/source_url_ = String::cast(script->name())->ToCString();/std::unique_ptr<char[]> source_url = String::cast(script->name())->ToCString(); source_url_ = {source_url.release(), source_url.get_deleter()};/' src/wasm/wasm-engine.cc
6664
ninja -C out.gn/arm.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./
6765
ninja -C out.gn/arm.release v8_monolith
6866
6967
- name: Setup JDK 11
70-
uses: actions/setup-java@v3
68+
uses: actions/setup-java@v4
7169
with:
7270
distribution: corretto
7371
java-version: 11
7472

7573
- name: Setup Cmake
76-
uses: jwlawson/actions-setup-cmake@v1.13
74+
uses: jwlawson/actions-setup-cmake@v2.0
7775
with:
7876
cmake-version: '3.23.x'
7977

@@ -83,7 +81,7 @@ jobs:
8381
sh ./build-android.sh -DV8_DIR=${{ env.ROOT }}/google/v8 -DCMAKE_ANDROID_NDK=${{ steps.setup-ndk.outputs.ndk-path }} -DCMAKE_ANDROID_ARCH=arm
8482
8583
- name: Upload the Artifact
86-
uses: actions/upload-artifact@v3
84+
uses: actions/upload-artifact@v4
8785
with:
8886
name: javet-android-v8-arm-${{ env.JAVET_VERSION }}
8987
path: android/javet-android/src/main/jniLibs/armeabi-v7a/*.so
@@ -95,14 +93,14 @@ jobs:
9593
steps:
9694

9795
- name: Checkout the code
98-
uses: actions/checkout@v3
96+
uses: actions/checkout@v4
9997

10098
- name: Setup Ubuntu
10199
run: |
102100
sudo apt-get install -y execstack gcc-multilib
103101
104102
- name: Setup Python
105-
uses: actions/setup-python@v4
103+
uses: actions/setup-python@v5
106104
with:
107105
python-version: '3.11'
108106

@@ -135,19 +133,17 @@ jobs:
135133
gclient sync -D
136134
cd v8
137135
python3 tools/dev/v8gen.py arm64.release -- 'target_os="android"' 'target_cpu="arm64"' 'v8_target_cpu="arm64"' v8_monolithic=true v8_use_external_startup_data=false is_component_build=false v8_enable_i18n_support=false v8_enable_pointer_compression=false v8_static_library=true symbol_level=0 use_custom_libcxx=false v8_enable_sandbox=false
138-
sed -i 's/char\[\]/char/g' src/wasm/wasm-engine.cc
139-
sed -i 's/source_url_ = String::cast(script->name())->ToCString();/std::unique_ptr<char[]> source_url = String::cast(script->name())->ToCString(); source_url_ = {source_url.release(), source_url.get_deleter()};/' src/wasm/wasm-engine.cc
140136
ninja -C out.gn/arm64.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./
141137
ninja -C out.gn/arm64.release v8_monolith
142138
143139
- name: Setup JDK 11
144-
uses: actions/setup-java@v3
140+
uses: actions/setup-java@v4
145141
with:
146142
distribution: corretto
147143
java-version: 11
148144

149145
- name: Setup Cmake
150-
uses: jwlawson/actions-setup-cmake@v1.13
146+
uses: jwlawson/actions-setup-cmake@v2.0
151147
with:
152148
cmake-version: '3.23.x'
153149

@@ -157,7 +153,7 @@ jobs:
157153
sh ./build-android.sh -DV8_DIR=${{ env.ROOT }}/google/v8 -DCMAKE_ANDROID_NDK=${{ steps.setup-ndk.outputs.ndk-path }} -DCMAKE_ANDROID_ARCH=arm64
158154
159155
- name: Upload the Artifact
160-
uses: actions/upload-artifact@v3
156+
uses: actions/upload-artifact@v4
161157
with:
162158
name: javet-android-v8-arm64-${{ env.JAVET_VERSION }}
163159
path: android/javet-android/src/main/jniLibs/arm64-v8a/*.so
@@ -169,14 +165,14 @@ jobs:
169165
steps:
170166

171167
- name: Checkout the code
172-
uses: actions/checkout@v3
168+
uses: actions/checkout@v4
173169

174170
- name: Setup Ubuntu
175171
run: |
176172
sudo apt-get install -y execstack gcc-multilib
177173
178174
- name: Setup Python
179-
uses: actions/setup-python@v4
175+
uses: actions/setup-python@v5
180176
with:
181177
python-version: '3.11'
182178

@@ -209,19 +205,17 @@ jobs:
209205
gclient sync -D
210206
cd v8
211207
python3 tools/dev/v8gen.py ia32.release -- 'target_os="android"' 'target_cpu="x86"' 'v8_target_cpu="x86"' v8_monolithic=true v8_use_external_startup_data=false is_component_build=false v8_enable_i18n_support=false v8_enable_pointer_compression=false v8_static_library=true symbol_level=0 use_custom_libcxx=false v8_enable_sandbox=false
212-
sed -i 's/char\[\]/char/g' src/wasm/wasm-engine.cc
213-
sed -i 's/source_url_ = String::cast(script->name())->ToCString();/std::unique_ptr<char[]> source_url = String::cast(script->name())->ToCString(); source_url_ = {source_url.release(), source_url.get_deleter()};/' src/wasm/wasm-engine.cc
214208
ninja -C out.gn/ia32.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./
215209
ninja -C out.gn/ia32.release v8_monolith
216210
217211
- name: Setup JDK 11
218-
uses: actions/setup-java@v3
212+
uses: actions/setup-java@v4
219213
with:
220214
distribution: corretto
221215
java-version: 11
222216

223217
- name: Setup Cmake
224-
uses: jwlawson/actions-setup-cmake@v1.13
218+
uses: jwlawson/actions-setup-cmake@v2.0
225219
with:
226220
cmake-version: '3.23.x'
227221

@@ -231,7 +225,7 @@ jobs:
231225
sh ./build-android.sh -DV8_DIR=${{ env.ROOT }}/google/v8 -DCMAKE_ANDROID_NDK=${{ steps.setup-ndk.outputs.ndk-path }} -DCMAKE_ANDROID_ARCH=x86
232226
233227
- name: Upload the Artifact
234-
uses: actions/upload-artifact@v3
228+
uses: actions/upload-artifact@v4
235229
with:
236230
name: javet-android-v8-x86-${{ env.JAVET_VERSION }}
237231
path: android/javet-android/src/main/jniLibs/x86/*.so
@@ -243,14 +237,14 @@ jobs:
243237
steps:
244238

245239
- name: Checkout the code
246-
uses: actions/checkout@v3
240+
uses: actions/checkout@v4
247241

248242
- name: Setup Ubuntu
249243
run: |
250244
sudo apt-get install -y execstack gcc-multilib
251245
252246
- name: Setup Python
253-
uses: actions/setup-python@v4
247+
uses: actions/setup-python@v5
254248
with:
255249
python-version: '3.11'
256250

@@ -283,19 +277,17 @@ jobs:
283277
gclient sync -D
284278
cd v8
285279
python3 tools/dev/v8gen.py x64.release -- 'target_os="android"' 'target_cpu="x64"' 'v8_target_cpu="x64"' v8_monolithic=true v8_use_external_startup_data=false is_component_build=false v8_enable_i18n_support=false v8_enable_pointer_compression=false v8_static_library=true symbol_level=0 use_custom_libcxx=false v8_enable_sandbox=false
286-
sed -i 's/char\[\]/char/g' src/wasm/wasm-engine.cc
287-
sed -i 's/source_url_ = String::cast(script->name())->ToCString();/std::unique_ptr<char[]> source_url = String::cast(script->name())->ToCString(); source_url_ = {source_url.release(), source_url.get_deleter()};/' src/wasm/wasm-engine.cc
288280
ninja -C out.gn/x64.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./
289281
ninja -C out.gn/x64.release v8_monolith
290282
291283
- name: Setup JDK 11
292-
uses: actions/setup-java@v3
284+
uses: actions/setup-java@v4
293285
with:
294286
distribution: corretto
295287
java-version: 11
296288

297289
- name: Setup Cmake
298-
uses: jwlawson/actions-setup-cmake@v1.13
290+
uses: jwlawson/actions-setup-cmake@v2.0
299291
with:
300292
cmake-version: '3.23.x'
301293

@@ -305,7 +297,7 @@ jobs:
305297
sh ./build-android.sh -DV8_DIR=${{ env.ROOT }}/google/v8 -DCMAKE_ANDROID_NDK=${{ steps.setup-ndk.outputs.ndk-path }} -DCMAKE_ANDROID_ARCH=x86_64
306298
307299
- name: Upload the Artifact
308-
uses: actions/upload-artifact@v3
300+
uses: actions/upload-artifact@v4
309301
with:
310302
name: javet-android-v8-x86_64-${{ env.JAVET_VERSION }}
311303
path: android/javet-android/src/main/jniLibs/x86_64/*.so
@@ -318,21 +310,21 @@ jobs:
318310
steps:
319311

320312
- name: Checkout the code
321-
uses: actions/checkout@v3
313+
uses: actions/checkout@v4
322314

323315
- name: Setup JDK 17
324-
uses: actions/setup-java@v3
316+
uses: actions/setup-java@v4
325317
with:
326318
distribution: corretto
327319
java-version: 17
328320

329321
- name: Setup Python
330-
uses: actions/setup-python@v4
322+
uses: actions/setup-python@v5
331323
with:
332324
python-version: '3.11'
333325

334326
- name: Setup Gradle
335-
uses: gradle/gradle-build-action@v2
327+
uses: gradle/gradle-build-action@v3
336328
with:
337329
gradle-version: 8.2
338330

@@ -344,25 +336,25 @@ jobs:
344336
mkdir -p android/javet-android/src/main/jniLibs/x86_64
345337
346338
- name: Download Javet arm
347-
uses: actions/download-artifact@v3
339+
uses: actions/download-artifact@v4
348340
with:
349341
name: javet-android-v8-arm-${{ env.JAVET_VERSION }}
350342
path: android/javet-android/src/main/jniLibs/armeabi-v7a
351343

352344
- name: Download Javet arm64
353-
uses: actions/download-artifact@v3
345+
uses: actions/download-artifact@v4
354346
with:
355347
name: javet-android-v8-arm64-${{ env.JAVET_VERSION }}
356348
path: android/javet-android/src/main/jniLibs/arm64-v8a
357349

358350
- name: Download Javet x86
359-
uses: actions/download-artifact@v3
351+
uses: actions/download-artifact@v4
360352
with:
361353
name: javet-android-v8-x86-${{ env.JAVET_VERSION }}
362354
path: android/javet-android/src/main/jniLibs/x86
363355

364356
- name: Download Javet x86_64
365-
uses: actions/download-artifact@v3
357+
uses: actions/download-artifact@v4
366358
with:
367359
name: javet-android-v8-x86_64-${{ env.JAVET_VERSION }}
368360
path: android/javet-android/src/main/jniLibs/x86_64
@@ -375,27 +367,27 @@ jobs:
375367
gradle build --debug
376368
377369
- name: Upload the Artifact
378-
uses: actions/upload-artifact@v3
370+
uses: actions/upload-artifact@v4
379371
with:
380372
name: javet-android-${{ env.JAVET_VERSION }}
381373
path: android/javet-android/build/outputs/aar/javet*release.aar
382374

383375
- name: Delete Javet arm
384-
uses: geekyeggo/delete-artifact@v2
376+
uses: geekyeggo/delete-artifact@v4
385377
with:
386378
name: javet-android-v8-arm-${{ env.JAVET_VERSION }}
387379

388380
- name: Delete Javet arm64
389-
uses: geekyeggo/delete-artifact@v2
381+
uses: geekyeggo/delete-artifact@v4
390382
with:
391383
name: javet-android-v8-arm64-${{ env.JAVET_VERSION }}
392384

393385
- name: Delete Javet x86
394-
uses: geekyeggo/delete-artifact@v2
386+
uses: geekyeggo/delete-artifact@v4
395387
with:
396388
name: javet-android-v8-x86-${{ env.JAVET_VERSION }}
397389

398390
- name: Delete Javet x86_64
399-
uses: geekyeggo/delete-artifact@v2
391+
uses: geekyeggo/delete-artifact@v4
400392
with:
401393
name: javet-android-v8-x86_64-${{ env.JAVET_VERSION }}

.github/workflows/linux_build_artifact.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@ on:
1717
env:
1818
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
1919
DOCKERHUB_REPO_JAVET: ${{ secrets.DOCKERHUB_REPO_JAVET }}
20-
JAVET_NODE_VERSION: 20.11.0
21-
JAVET_V8_VERSION: 12.1.285.26
22-
JAVET_VERSION: 3.0.3
20+
JAVET_NODE_VERSION: 20.11.1
21+
JAVET_V8_VERSION: 12.2.281.16
22+
JAVET_VERSION: 3.0.4
2323

2424
jobs:
2525
javet_linux_x86_64:
2626
name: Build Javet Linux x86_64 Artifact
2727
runs-on: ubuntu-latest
2828
steps:
2929
- name: Checkout the code
30-
uses: actions/checkout@v3
30+
uses: actions/checkout@v4
3131

3232
- name: Build the Artifact
3333
run: |
@@ -42,7 +42,7 @@ jobs:
4242
run: mkdir $PWD/build && docker run --rm -i -v $PWD/build:/output javet:local cp -rf /Javet/build/libs /output
4343

4444
- name: Upload the Artifact
45-
uses: actions/upload-artifact@v3
45+
uses: actions/upload-artifact@v4
4646
with:
4747
name: javet-linux-x86_64
4848
path: build/libs/javet*.jar

.github/workflows/linux_build_node_v8_image.yml

+7-7
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: 20.11.0
25-
JAVET_V8_VERSION: 12.1.285.26
26-
JAVET_VERSION: 3.0.3
24+
JAVET_NODE_VERSION: 20.11.1
25+
JAVET_V8_VERSION: 12.2.281.16
26+
JAVET_VERSION: 3.0.4
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.
@@ -44,7 +44,7 @@ jobs:
4444

4545
- name: Checkout the code
4646
if: inputs.skip_base_jvm == false
47-
uses: actions/checkout@v3
47+
uses: actions/checkout@v4
4848

4949
- name: Build Ubuntu, Build Tools and JDK 8 Base Image
5050
if: inputs.skip_base_jvm == false
@@ -74,7 +74,7 @@ jobs:
7474

7575
- name: Checkout the code
7676
if: inputs.skip_base_node == false
77-
uses: actions/checkout@v3
77+
uses: actions/checkout@v4
7878

7979
- name: Build Node.js Base Image
8080
if: inputs.skip_base_node == false
@@ -106,7 +106,7 @@ jobs:
106106

107107
- name: Checkout the code
108108
if: inputs.skip_base_v8 == false
109-
uses: actions/checkout@v3
109+
uses: actions/checkout@v4
110110

111111
- name: Build V8 Base Image
112112
if: inputs.skip_base_v8 == false
@@ -136,7 +136,7 @@ jobs:
136136
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
137137

138138
- name: Checkout the code
139-
uses: actions/checkout@v3
139+
uses: actions/checkout@v4
140140

141141
- name: Build Gradle Base Image
142142
run: |

0 commit comments

Comments
 (0)