diff --git a/.github/workflows/android_build.yml b/.github/workflows/android_build.yml index 64b16b804..c7b8753ab 100644 --- a/.github/workflows/android_build.yml +++ b/.github/workflows/android_build.yml @@ -8,9 +8,9 @@ on: workflow_dispatch: env: - JAVET_NODE_VERSION: 20.11.0 - JAVET_V8_VERSION: 12.1.285.26 - JAVET_VERSION: 3.0.3 + JAVET_NODE_VERSION: 20.11.1 + JAVET_V8_VERSION: 12.2.281.16 + JAVET_VERSION: 3.0.4 ROOT: /home/runner/work/Javet jobs: @@ -21,14 +21,14 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Ubuntu run: | sudo apt-get install -y execstack gcc-multilib - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' @@ -61,19 +61,17 @@ jobs: gclient sync -D cd v8 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 - sed -i 's/char\[\]/char/g' src/wasm/wasm-engine.cc - sed -i 's/source_url_ = String::cast(script->name())->ToCString();/std::unique_ptr source_url = String::cast(script->name())->ToCString(); source_url_ = {source_url.release(), source_url.get_deleter()};/' src/wasm/wasm-engine.cc ninja -C out.gn/arm.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./ ninja -C out.gn/arm.release v8_monolith - name: Setup JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 11 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' @@ -83,7 +81,7 @@ jobs: sh ./build-android.sh -DV8_DIR=${{ env.ROOT }}/google/v8 -DCMAKE_ANDROID_NDK=${{ steps.setup-ndk.outputs.ndk-path }} -DCMAKE_ANDROID_ARCH=arm - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-android-v8-arm-${{ env.JAVET_VERSION }} path: android/javet-android/src/main/jniLibs/armeabi-v7a/*.so @@ -95,14 +93,14 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Ubuntu run: | sudo apt-get install -y execstack gcc-multilib - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' @@ -135,19 +133,17 @@ jobs: gclient sync -D cd v8 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 - sed -i 's/char\[\]/char/g' src/wasm/wasm-engine.cc - sed -i 's/source_url_ = String::cast(script->name())->ToCString();/std::unique_ptr source_url = String::cast(script->name())->ToCString(); source_url_ = {source_url.release(), source_url.get_deleter()};/' src/wasm/wasm-engine.cc ninja -C out.gn/arm64.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./ ninja -C out.gn/arm64.release v8_monolith - name: Setup JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 11 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' @@ -157,7 +153,7 @@ jobs: sh ./build-android.sh -DV8_DIR=${{ env.ROOT }}/google/v8 -DCMAKE_ANDROID_NDK=${{ steps.setup-ndk.outputs.ndk-path }} -DCMAKE_ANDROID_ARCH=arm64 - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-android-v8-arm64-${{ env.JAVET_VERSION }} path: android/javet-android/src/main/jniLibs/arm64-v8a/*.so @@ -169,14 +165,14 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Ubuntu run: | sudo apt-get install -y execstack gcc-multilib - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' @@ -209,19 +205,17 @@ jobs: gclient sync -D cd v8 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 - sed -i 's/char\[\]/char/g' src/wasm/wasm-engine.cc - sed -i 's/source_url_ = String::cast(script->name())->ToCString();/std::unique_ptr source_url = String::cast(script->name())->ToCString(); source_url_ = {source_url.release(), source_url.get_deleter()};/' src/wasm/wasm-engine.cc ninja -C out.gn/ia32.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./ ninja -C out.gn/ia32.release v8_monolith - name: Setup JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 11 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' @@ -231,7 +225,7 @@ jobs: sh ./build-android.sh -DV8_DIR=${{ env.ROOT }}/google/v8 -DCMAKE_ANDROID_NDK=${{ steps.setup-ndk.outputs.ndk-path }} -DCMAKE_ANDROID_ARCH=x86 - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-android-v8-x86-${{ env.JAVET_VERSION }} path: android/javet-android/src/main/jniLibs/x86/*.so @@ -243,14 +237,14 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Ubuntu run: | sudo apt-get install -y execstack gcc-multilib - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' @@ -283,19 +277,17 @@ jobs: gclient sync -D cd v8 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 - sed -i 's/char\[\]/char/g' src/wasm/wasm-engine.cc - sed -i 's/source_url_ = String::cast(script->name())->ToCString();/std::unique_ptr source_url = String::cast(script->name())->ToCString(); source_url_ = {source_url.release(), source_url.get_deleter()};/' src/wasm/wasm-engine.cc ninja -C out.gn/x64.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./ ninja -C out.gn/x64.release v8_monolith - name: Setup JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 11 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' @@ -305,7 +297,7 @@ jobs: sh ./build-android.sh -DV8_DIR=${{ env.ROOT }}/google/v8 -DCMAKE_ANDROID_NDK=${{ steps.setup-ndk.outputs.ndk-path }} -DCMAKE_ANDROID_ARCH=x86_64 - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-android-v8-x86_64-${{ env.JAVET_VERSION }} path: android/javet-android/src/main/jniLibs/x86_64/*.so @@ -318,21 +310,21 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 17 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 with: gradle-version: 8.2 @@ -344,25 +336,25 @@ jobs: mkdir -p android/javet-android/src/main/jniLibs/x86_64 - name: Download Javet arm - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-android-v8-arm-${{ env.JAVET_VERSION }} path: android/javet-android/src/main/jniLibs/armeabi-v7a - name: Download Javet arm64 - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-android-v8-arm64-${{ env.JAVET_VERSION }} path: android/javet-android/src/main/jniLibs/arm64-v8a - name: Download Javet x86 - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-android-v8-x86-${{ env.JAVET_VERSION }} path: android/javet-android/src/main/jniLibs/x86 - name: Download Javet x86_64 - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-android-v8-x86_64-${{ env.JAVET_VERSION }} path: android/javet-android/src/main/jniLibs/x86_64 @@ -375,27 +367,27 @@ jobs: gradle build --debug - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-android-${{ env.JAVET_VERSION }} path: android/javet-android/build/outputs/aar/javet*release.aar - name: Delete Javet arm - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-android-v8-arm-${{ env.JAVET_VERSION }} - name: Delete Javet arm64 - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-android-v8-arm64-${{ env.JAVET_VERSION }} - name: Delete Javet x86 - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-android-v8-x86-${{ env.JAVET_VERSION }} - name: Delete Javet x86_64 - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-android-v8-x86_64-${{ env.JAVET_VERSION }} diff --git a/.github/workflows/linux_build_artifact.yml b/.github/workflows/linux_build_artifact.yml index 03e7480e4..c8621a266 100644 --- a/.github/workflows/linux_build_artifact.yml +++ b/.github/workflows/linux_build_artifact.yml @@ -17,9 +17,9 @@ on: env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} DOCKERHUB_REPO_JAVET: ${{ secrets.DOCKERHUB_REPO_JAVET }} - JAVET_NODE_VERSION: 20.11.0 - JAVET_V8_VERSION: 12.1.285.26 - JAVET_VERSION: 3.0.3 + JAVET_NODE_VERSION: 20.11.1 + JAVET_V8_VERSION: 12.2.281.16 + JAVET_VERSION: 3.0.4 jobs: javet_linux_x86_64: @@ -27,7 +27,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build the Artifact run: | @@ -42,7 +42,7 @@ jobs: run: mkdir $PWD/build && docker run --rm -i -v $PWD/build:/output javet:local cp -rf /Javet/build/libs /output - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-linux-x86_64 path: build/libs/javet*.jar diff --git a/.github/workflows/linux_build_node_v8_image.yml b/.github/workflows/linux_build_node_v8_image.yml index 0c0f8c2b0..62c368ba3 100644 --- a/.github/workflows/linux_build_node_v8_image.yml +++ b/.github/workflows/linux_build_node_v8_image.yml @@ -21,9 +21,9 @@ on: env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} DOCKERHUB_REPO_JAVET: ${{ secrets.DOCKERHUB_REPO_JAVET }} - JAVET_NODE_VERSION: 20.11.0 - JAVET_V8_VERSION: 12.1.285.26 - JAVET_VERSION: 3.0.3 + JAVET_NODE_VERSION: 20.11.1 + JAVET_V8_VERSION: 12.2.281.16 + JAVET_VERSION: 3.0.4 # if we skip a job using a job level `if` condition, then any dependent jobs also don't run. # we can skip a step of the job, using a step level `if` condition. @@ -44,7 +44,7 @@ jobs: - name: Checkout the code if: inputs.skip_base_jvm == false - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build Ubuntu, Build Tools and JDK 8 Base Image if: inputs.skip_base_jvm == false @@ -74,7 +74,7 @@ jobs: - name: Checkout the code if: inputs.skip_base_node == false - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build Node.js Base Image if: inputs.skip_base_node == false @@ -106,7 +106,7 @@ jobs: - name: Checkout the code if: inputs.skip_base_v8 == false - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build V8 Base Image if: inputs.skip_base_v8 == false @@ -136,7 +136,7 @@ jobs: password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }} - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build Gradle Base Image run: | diff --git a/.github/workflows/linux_x86_64_build.yml b/.github/workflows/linux_x86_64_build.yml index cc87aabb1..3608f2e62 100644 --- a/.github/workflows/linux_x86_64_build.yml +++ b/.github/workflows/linux_x86_64_build.yml @@ -7,9 +7,9 @@ on: workflow_dispatch: env: - JAVET_NODE_VERSION: 20.11.0 - JAVET_V8_VERSION: 12.1.285.26 - JAVET_VERSION: 3.0.3 + JAVET_NODE_VERSION: 20.11.1 + JAVET_V8_VERSION: 12.2.281.16 + JAVET_VERSION: 3.0.4 ROOT: /home/runner/work/Javet jobs: @@ -20,14 +20,14 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Ubuntu run: | sudo apt-get install -y execstack - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' @@ -58,13 +58,13 @@ jobs: ninja -C out.gn/x64.release v8_monolith - name: Setup JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 8 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' @@ -74,7 +74,7 @@ jobs: sh ./build-linux-x86_64.sh -DV8_DIR=${{ env.ROOT }}/google/v8 - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-linux-v8-x86_64-${{ env.JAVET_VERSION }} path: src/main/resources/*.so @@ -86,14 +86,14 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Ubuntu run: | sudo apt-get install -y execstack - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' @@ -109,13 +109,13 @@ jobs: make -j4 - name: Setup JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 8 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' @@ -125,7 +125,7 @@ jobs: sh ./build-linux-x86_64.sh -DNODE_DIR=${{ env.ROOT }}/node - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-linux-node-x86_64-${{ env.JAVET_VERSION }} path: src/main/resources/*.so @@ -138,27 +138,27 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 8 - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 with: gradle-version: 8.2 - name: Download Javet V8 - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-linux-v8-x86_64-${{ env.JAVET_VERSION }} path: src/main/resources/ - name: Download Javet Node - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-linux-node-x86_64-${{ env.JAVET_VERSION }} path: src/main/resources/ @@ -178,7 +178,7 @@ jobs: args: 7z d build/libs/javet-${{ env.JAVET_VERSION }}-sources.jar *.so - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-linux-x86_64-${{ env.JAVET_VERSION }} path: | @@ -186,11 +186,11 @@ jobs: build/libs/*.pom - name: Delete Javet V8 - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-linux-v8-x86_64-${{ env.JAVET_VERSION }} - name: Delete Javet Node - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-linux-node-x86_64-${{ env.JAVET_VERSION }} diff --git a/.github/workflows/macos_arm64_build.yml b/.github/workflows/macos_arm64_build.yml index 9bd4f0a9d..bee16316f 100644 --- a/.github/workflows/macos_arm64_build.yml +++ b/.github/workflows/macos_arm64_build.yml @@ -7,23 +7,23 @@ on: workflow_dispatch: env: - JAVET_NODE_VERSION: 11.8.172.15 - JAVET_V8_VERSION: 11.8.172.15 - JAVET_VERSION: 3.0.3 + JAVET_NODE_VERSION: 20.11.1 + JAVET_V8_VERSION: 12.2.281.16 + JAVET_VERSION: 3.0.4 ROOT: /Users/runner/work/Javet jobs: build_javet_v8: name: Build Javet V8 - runs-on: macos-latest-x + runs-on: macos-14 steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' @@ -51,41 +51,42 @@ jobs: cd .. gclient sync -D cd v8 - python3 tools/dev/v8gen.py arm64.release -- 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 + python3 tools/dev/v8gen.py arm64.release -- v8_monolithic=true 'target_cpu="arm64"' 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 gn gen out.gn/arm64.release ninja -C out.gn/arm64.release v8_monolith || python3 ${{ env.ROOT }}/Javet/scripts/python/patch_v8_build.py -p ./ ninja -C out.gn/arm64.release v8_monolith - name: Setup JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 8 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' - name: Build Javet JNI run: | cd ${{ env.ROOT }}/Javet/cpp + sed -i '.bak' 's/`nproc`/2/g' build-macos.sh sh ./build-macos.sh -DV8_DIR=${{ env.ROOT }}/google/v8 - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-macos-v8-arm64-${{ env.JAVET_VERSION }} path: src/main/resources/*.dylib build_javet_node: name: Build Javet Node - runs-on: macos-latest-x + runs-on: macos-14 steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup XCode uses: maxim-lobanov/setup-xcode@v1 @@ -102,23 +103,24 @@ jobs: make -j4 - name: Setup JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 8 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' - name: Build Javet JNI run: | cd ${{ env.ROOT }}/Javet/cpp + sed -i '.bak' 's/`nproc`/2/g' build-macos.sh sh ./build-macos.sh -DNODE_DIR=${{ env.ROOT }}/node - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-macos-node-arm64-${{ env.JAVET_VERSION }} path: src/main/resources/*.dylib @@ -126,32 +128,32 @@ jobs: build_javet_jar: needs: [build_javet_v8, build_javet_node] name: Build Javet Jar - runs-on: macos-latest-x + runs-on: macos-14 steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 8 - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 with: gradle-version: 8.2 - name: Download Javet V8 - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-macos-v8-arm64-${{ env.JAVET_VERSION }} path: src/main/resources/ - name: Download Javet Node - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-macos-node-arm64-${{ env.JAVET_VERSION }} path: src/main/resources/ @@ -167,7 +169,7 @@ jobs: zip -d build/libs/javet-${{ env.JAVET_VERSION }}-sources.jar *.dylib - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-macos-arm64-${{ env.JAVET_VERSION }} path: | @@ -175,11 +177,11 @@ jobs: build/libs/*.pom - name: Delete Javet V8 - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-macos-v8-arm64-${{ env.JAVET_VERSION }} - name: Delete Javet Node - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-macos-node-arm64-${{ env.JAVET_VERSION }} diff --git a/.github/workflows/macos_x86_64_build.yml b/.github/workflows/macos_x86_64_build.yml index 1c2164217..f08ed0dab 100644 --- a/.github/workflows/macos_x86_64_build.yml +++ b/.github/workflows/macos_x86_64_build.yml @@ -7,9 +7,9 @@ on: workflow_dispatch: env: - JAVET_NODE_VERSION: 20.11.0 - JAVET_V8_VERSION: 12.1.285.26 - JAVET_VERSION: 3.0.3 + JAVET_NODE_VERSION: 20.11.1 + JAVET_V8_VERSION: 12.2.281.16 + JAVET_VERSION: 3.0.4 ROOT: /Users/runner/work/Javet jobs: @@ -20,10 +20,10 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' @@ -57,23 +57,24 @@ jobs: ninja -C out.gn/x64.release v8_monolith - name: Setup JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 8 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' - name: Build Javet JNI run: | cd ${{ env.ROOT }}/Javet/cpp + sed -i '.bak' 's/`nproc`/2/g' build-macos.sh sh ./build-macos.sh -DV8_DIR=${{ env.ROOT }}/google/v8 - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-macos-v8-x86_64-${{ env.JAVET_VERSION }} path: src/main/resources/*.dylib @@ -85,7 +86,7 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup XCode uses: maxim-lobanov/setup-xcode@v1 @@ -102,23 +103,24 @@ jobs: make -j4 - name: Setup JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 8 - name: Setup Cmake - uses: jwlawson/actions-setup-cmake@v1.13 + uses: jwlawson/actions-setup-cmake@v2.0 with: cmake-version: '3.23.x' - name: Build Javet JNI run: | cd ${{ env.ROOT }}/Javet/cpp + sed -i '.bak' 's/`nproc`/2/g' build-macos.sh sh ./build-macos.sh -DNODE_DIR=${{ env.ROOT }}/node - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-macos-node-x86_64-${{ env.JAVET_VERSION }} path: src/main/resources/*.dylib @@ -131,27 +133,27 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: corretto java-version: 8 - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 with: gradle-version: 8.2 - name: Download Javet V8 - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-macos-v8-x86_64-${{ env.JAVET_VERSION }} path: src/main/resources/ - name: Download Javet Node - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: javet-macos-node-x86_64-${{ env.JAVET_VERSION }} path: src/main/resources/ @@ -167,7 +169,7 @@ jobs: zip -d build/libs/javet-${{ env.JAVET_VERSION }}-sources.jar *.dylib - name: Upload the Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-macos-x86_64-${{ env.JAVET_VERSION }} path: | @@ -175,11 +177,11 @@ jobs: build/libs/*.pom - name: Delete Javet V8 - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-macos-v8-x86_64-${{ env.JAVET_VERSION }} - name: Delete Javet Node - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v4 with: name: javet-macos-node-x86_64-${{ env.JAVET_VERSION }} diff --git a/.github/workflows/pages_build.yml b/.github/workflows/pages_build.yml index e7cedea64..ddf0c030c 100644 --- a/.github/workflows/pages_build.yml +++ b/.github/workflows/pages_build.yml @@ -16,21 +16,21 @@ jobs: steps: - name: Checkout the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up JDK 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'corretto' java-version: '8' - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v3 with: - gradle-version: 7.2 + gradle-version: 8.2 - name: Setup Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON_VERSION }} @@ -50,7 +50,7 @@ jobs: run: xcopy /y/s build\docs\javadoc .\docs\_build\html\reference\javadoc - name: Upload the artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: javet-docs path: ./docs/_build/html diff --git a/README.rst b/README.rst index d67694efb..59e028518 100644 --- a/README.rst +++ b/README.rst @@ -3,7 +3,7 @@ Javet |Maven Central| |Discord| |Donate| -|Linux x86_64 Build| |MacOS x86_64 Build| |Android Build| +|Linux x86_64 Build| |MacOS x86_64 Build| |MacOS arm64 Build| |Android Build| .. |Maven Central| image:: https://img.shields.io/maven-central/v/com.caoccao.javet/javet?style=for-the-badge :target: https://central.sonatype.com/search?q=g:com.caoccao.javet @@ -20,12 +20,15 @@ Javet .. |MacOS x86_64 Build| image:: https://github.com/caoccao/Javet/actions/workflows/macos_x86_64_build.yml/badge.svg :target: https://github.com/caoccao/Javet/actions/workflows/macos_x86_64_build.yml +.. |MacOS arm64 Build| image:: https://github.com/caoccao/Javet/actions/workflows/macos_arm64_build.yml/badge.svg + :target: https://github.com/caoccao/Javet/actions/workflows/macos_arm64_build.yml + .. |Android Build| image:: https://github.com/caoccao/Javet/actions/workflows/android_build.yml/badge.svg :target: https://github.com/caoccao/Javet/actions/workflows/android_build.yml `Javet `_ is Java + V8 (JAVa + V + EighT). It is an awesome way of embedding Node.js and V8 in Java. -If you like my work, please **Star** this project. And, you may follow me `@sjtucaocao `_, or visit https://sjtucaocao.medium.com/ or https://caoccao.blogspot.com/. And the official support channel is at `discord `_. +If you like my work, please **Star** this project. And, you may follow me `@sjtucaocao `_, or visit https://blog.caoccao.com/ or https://caoccao.blogspot.com/. And the official support channel is at `discord `_. ๐Ÿ’– If you like my work, please `donate `_ to support me. If you have a retired Mac OS (x86_64) device and are fine with mailing it to me, that will be great because I don't have such device to support the community. Thank you for supporting Javet. @@ -41,7 +44,7 @@ arm โœ”๏ธ โŒ โŒ โŒ arm64 โœ”๏ธ โœ”๏ธ โœ”๏ธ โŒ =========== ======= ======= ======= ======= -* Node.js ``v20.11.0`` + V8 ``v12.1.285.26`` +* Node.js ``v20.11.1`` + V8 ``v12.2.281.16`` * Dynamic switch between Node.js and V8 mode (`Which mode do you prefer? `_) * Polyfill V8 mode with `Javenode `_ * V8 API exposure in JVM @@ -68,21 +71,21 @@ Maven com.caoccao.javet javet - 3.0.3 + 3.0.4 com.caoccao.javet javet-linux-arm64 - 3.0.3 + 3.0.4 com.caoccao.javet javet-macos - 3.0.3 + 3.0.4 Gradle Kotlin DSL @@ -90,20 +93,20 @@ Gradle Kotlin DSL .. code-block:: kotlin - implementation("com.caoccao.javet:javet:3.0.3") // Linux and Windows (x86_64) - implementation("com.caoccao.javet:javet-linux-arm64:3.0.3") // Linux (arm64) - implementation("com.caoccao.javet:javet-macos:3.0.3") // Mac OS (x86_64 and arm64) - implementation("com.caoccao.javet:javet-android:3.0.3") // Android (arm, arm64, x86 and x86_64) + implementation("com.caoccao.javet:javet:3.0.4") // Linux and Windows (x86_64) + implementation("com.caoccao.javet:javet-linux-arm64:3.0.4") // Linux (arm64) + implementation("com.caoccao.javet:javet-macos:3.0.4") // Mac OS (x86_64 and arm64) + implementation("com.caoccao.javet:javet-android:3.0.4") // Android (arm, arm64, x86 and x86_64) Gradle Groovy DSL ^^^^^^^^^^^^^^^^^ .. code-block:: groovy - implementation 'com.caoccao.javet:javet:3.0.3' // Linux and Windows (x86_64) - implementation 'com.caoccao.javet:javet-linux-arm64:3.0.3' // Linux (arm64) - implementation 'com.caoccao.javet:javet-macos:3.0.3' // Mac OS (x86_64 and arm64) - implementation 'com.caoccao.javet:javet-android:3.0.3' // Android (arm, arm64, x86 and x86_64) + implementation 'com.caoccao.javet:javet:3.0.4' // Linux and Windows (x86_64) + implementation 'com.caoccao.javet:javet-linux-arm64:3.0.4' // Linux (arm64) + implementation 'com.caoccao.javet:javet-macos:3.0.4' // Mac OS (x86_64 and arm64) + implementation 'com.caoccao.javet:javet-android:3.0.4' // Android (arm, arm64, x86 and x86_64) Hello Javet ----------- @@ -133,10 +136,10 @@ License Blog ==== -* `Performance Comparison of GraalJS, Javet and Nashorn `_ -* `How to Elegantly Expose JsonNode in V8 `_ -* `How to Compromise V8 on JVM `_ -* `Is TypeScript a Good Choice for a Script Engine? `_ +* `Performance Comparison of GraalJS, Javet and Nashorn `_ +* `How to Elegantly Expose JsonNode in V8 `_ +* `How to Compromise V8 on JVM `_ +* `Is TypeScript a Good Choice for a Script Engine? `_ Documents ========= diff --git a/android/javet-android/build.gradle.kts b/android/javet-android/build.gradle.kts index 82624f537..688d2e94c 100644 --- a/android/javet-android/build.gradle.kts +++ b/android/javet-android/build.gradle.kts @@ -73,7 +73,7 @@ object Config { const val ANDROIDX_TEST = "1.1.5" const val APPCOMPAT = "1.3.1" const val DESUGAR_JDK_LIBS = "2.0.4" - const val JAVET = "3.0.3" + const val JAVET = "3.0.4" const val JUNIT = "5.10.1" } } diff --git a/android/javet-android/src/main/AndroidManifest.xml b/android/javet-android/src/main/AndroidManifest.xml index e1281197c..b532c0758 100644 --- a/android/javet-android/src/main/AndroidManifest.xml +++ b/android/javet-android/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/android/pom.xml b/android/pom.xml index c5131f544..ec341fd68 100644 --- a/android/pom.xml +++ b/android/pom.xml @@ -3,7 +3,7 @@ com.caoccao.javet javet-android - 3.0.3 + 3.0.4 javet aar Javet is Java + V8 (JAVa + V + EighT). It is an awesome way of embedding V8 in Java. @@ -29,7 +29,7 @@ scm:git:git://github.com/caoccao/Javet.git scm:git:git@github.com:caoccao/caoccao.git https://github.com/caoccao/Javet - 3.0.3 + 3.0.4 diff --git a/build.gradle.kts b/build.gradle.kts index 20789868f..877b124d8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -72,7 +72,7 @@ object Config { const val BYTE_BUDDY = "1.14.10" const val JACKSON_DATABIND = "2.16.0" const val JAVA_VERSION = "1.8" - const val JAVET = "3.0.3" + const val JAVET = "3.0.4" const val JETTY_WEBSOCKET = "9.4.53.v20231009" const val JUNIT = "5.10.1" } diff --git a/cpp/build-android.sh b/cpp/build-android.sh index 8bc841751..63385f31c 100755 --- a/cpp/build-android.sh +++ b/cpp/build-android.sh @@ -2,7 +2,7 @@ # Usage for V8: sh build-android.sh -DV8_DIR=${HOME}/v8 -DCMAKE_ANDROID_NDK=${HOME}/android -DCMAKE_ANDROID_ARCH=arm64 # Usage for Node: sh build-android.sh -DNODE_DIR=${HOME}/node -DCMAKE_ANDROID_NDK=${HOME}/android -DCMAKE_ANDROID_ARCH=arm64 -JAVET_VERSION=3.0.3 +JAVET_VERSION=3.0.4 rm -rf build_android mkdir build_android cd build_android diff --git a/cpp/build-linux-arm64.sh b/cpp/build-linux-arm64.sh index 17cba4d85..cf828221a 100644 --- a/cpp/build-linux-arm64.sh +++ b/cpp/build-linux-arm64.sh @@ -2,7 +2,7 @@ # Usage for V8: sh build-linux-arm64.sh -DV8_DIR=${HOME}/v8 # Usage for Node: sh build-linux-arm64.sh -DNODE_DIR=${HOME}/node -JAVET_VERSION=3.0.3 +JAVET_VERSION=3.0.4 rm -rf build_linux_arm64 mkdir build_linux_arm64 cd build_linux_arm64 diff --git a/cpp/build-linux-x86_64.sh b/cpp/build-linux-x86_64.sh index ac5ea546c..7dcc963ca 100644 --- a/cpp/build-linux-x86_64.sh +++ b/cpp/build-linux-x86_64.sh @@ -2,7 +2,7 @@ # Usage for V8: sh build-linux-x86_64.sh -DV8_DIR=${HOME}/v8 # Usage for Node: sh build-linux-x86_64.sh -DNODE_DIR=${HOME}/node -JAVET_VERSION=3.0.3 +JAVET_VERSION=3.0.4 rm -rf build_linux_x86_64 mkdir build_linux_x86_64 cd build_linux_x86_64 diff --git a/cpp/build-macos.sh b/cpp/build-macos.sh index ff05c4203..81499ed1a 100755 --- a/cpp/build-macos.sh +++ b/cpp/build-macos.sh @@ -2,7 +2,7 @@ # Usage for V8: sh build-macos.sh -DV8_DIR=${HOME}/v8 # Usage for Node: sh build-macos.sh -DNODE_DIR=${HOME}/node -JAVET_VERSION=3.0.3 +JAVET_VERSION=3.0.4 rm -rf build_macos mkdir build_macos cd build_macos diff --git a/cpp/build-windows.cmd b/cpp/build-windows.cmd index c182d9c0f..944f8e8c6 100644 --- a/cpp/build-windows.cmd +++ b/cpp/build-windows.cmd @@ -1,7 +1,7 @@ @echo off REM Usage for V8: build -DV8_DIR=C:\v8 REM Usage for Node: build -DNODE_DIR=C:\node -SET JAVET_VERSION=3.0.3 +SET JAVET_VERSION=3.0.4 rd /s/q build_windows mkdir build_windows cd build_windows diff --git a/cpp/jni/com_caoccao_javet_interop_V8Native.h b/cpp/jni/com_caoccao_javet_interop_V8Native.h index 5fae83b54..71680808f 100644 --- a/cpp/jni/com_caoccao_javet_interop_V8Native.h +++ b/cpp/jni/com_caoccao_javet_interop_V8Native.h @@ -71,6 +71,22 @@ JNIEXPORT jint JNICALL Java_com_caoccao_javet_interop_V8Native_batchArrayGet JNIEXPORT jint JNICALL Java_com_caoccao_javet_interop_V8Native_batchObjectGet (JNIEnv *, jobject, jlong, jlong, jint, jobjectArray, jobjectArray, jint); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: booleanObjectCreate + * Signature: (JZ)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_booleanObjectCreate + (JNIEnv *, jobject, jlong, jboolean); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: booleanObjectValueOf + * Signature: (JJI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_booleanObjectValueOf + (JNIEnv *, jobject, jlong, jlong, jint); + /* * Class: com_caoccao_javet_interop_V8Native * Method: clearInternalStatistic @@ -151,6 +167,22 @@ JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_createV8Inspector JNIEXPORT jlong JNICALL Java_com_caoccao_javet_interop_V8Native_createV8Runtime (JNIEnv *, jobject, jobject); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: doubleObjectCreate + * Signature: (JD)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_doubleObjectCreate + (JNIEnv *, jobject, jlong, jdouble); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: doubleObjectValueOf + * Signature: (JJI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_doubleObjectValueOf + (JNIEnv *, jobject, jlong, jlong, jint); + /* * Class: com_caoccao_javet_interop_V8Native * Method: equals @@ -159,6 +191,14 @@ JNIEXPORT jlong JNICALL Java_com_caoccao_javet_interop_V8Native_createV8Runtime JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_equals (JNIEnv *, jobject, jlong, jlong, jlong); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: errorCreate + * Signature: (JILjava/lang/String;)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_errorCreate + (JNIEnv *, jobject, jlong, jint, jstring); + /* * Class: com_caoccao_javet_interop_V8Native * Method: functionCall @@ -415,6 +455,22 @@ JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_hasScheduledE JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_idleNotificationDeadline (JNIEnv *, jobject, jlong, jlong); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: integerObjectCreate + * Signature: (JI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_integerObjectCreate + (JNIEnv *, jobject, jlong, jint); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: integerObjectValueOf + * Signature: (JJI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_integerObjectValueOf + (JNIEnv *, jobject, jlong, jlong, jint); + /* * Class: com_caoccao_javet_interop_V8Native * Method: isDead @@ -447,6 +503,22 @@ JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_isWeak JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_lockV8Runtime (JNIEnv *, jobject, jlong); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: longObjectCreate + * Signature: (JJ)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_longObjectCreate + (JNIEnv *, jobject, jlong, jlong); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: longObjectValueOf + * Signature: (JJI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_longObjectValueOf + (JNIEnv *, jobject, jlong, jlong, jint); + /* * Class: com_caoccao_javet_interop_V8Native * Method: lowMemoryNotification @@ -455,6 +527,22 @@ JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_lockV8Runtime JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_lowMemoryNotification (JNIEnv *, jobject, jlong); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: mapAsArray + * Signature: (JJI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_mapAsArray + (JNIEnv *, jobject, jlong, jlong, jint); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: mapClear + * Signature: (JJI)V + */ +JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_mapClear + (JNIEnv *, jobject, jlong, jlong, jint); + /* * Class: com_caoccao_javet_interop_V8Native * Method: mapCreate @@ -1199,6 +1287,22 @@ JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_scriptRun JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_setAdd (JNIEnv *, jobject, jlong, jlong, jint, jobject); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: setAsArray + * Signature: (JJI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_setAsArray + (JNIEnv *, jobject, jlong, jlong, jint); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: setClear + * Signature: (JJI)V + */ +JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_setClear + (JNIEnv *, jobject, jlong, jlong, jint); + /* * Class: com_caoccao_javet_interop_V8Native * Method: setCreate @@ -1255,6 +1359,22 @@ JNIEXPORT jbyteArray JNICALL Java_com_caoccao_javet_interop_V8Native_snapshotCre JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_strictEquals (JNIEnv *, jobject, jlong, jlong, jlong); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: stringObjectCreate + * Signature: (JLjava/lang/String;)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_stringObjectCreate + (JNIEnv *, jobject, jlong, jstring); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: stringObjectValueOf + * Signature: (JJI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_stringObjectValueOf + (JNIEnv *, jobject, jlong, jlong, jint); + /* * Class: com_caoccao_javet_interop_V8Native * Method: symbolCreate @@ -1263,6 +1383,30 @@ JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_strictEquals JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_symbolCreate (JNIEnv *, jobject, jlong, jstring); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: symbolDescription + * Signature: (JJI)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_com_caoccao_javet_interop_V8Native_symbolDescription + (JNIEnv *, jobject, jlong, jlong, jint); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: symbolObjectValueOf + * Signature: (JJI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_symbolObjectValueOf + (JNIEnv *, jobject, jlong, jlong, jint); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: symbolToObject + * Signature: (JJI)Ljava/lang/Object; + */ +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_symbolToObject + (JNIEnv *, jobject, jlong, jlong, jint); + /* * Class: com_caoccao_javet_interop_V8Native * Method: terminateExecution @@ -1271,6 +1415,22 @@ JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_symbolCreate JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_terminateExecution (JNIEnv *, jobject, jlong); +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: throwError + * Signature: (JILjava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_throwError__JILjava_lang_String_2 + (JNIEnv *, jobject, jlong, jint, jstring); + +/* + * Class: com_caoccao_javet_interop_V8Native + * Method: throwError + * Signature: (JLjava/lang/Object;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_throwError__JLjava_lang_Object_2 + (JNIEnv *, jobject, jlong, jobject); + /* * Class: com_caoccao_javet_interop_V8Native * Method: toString diff --git a/cpp/jni/javet_converter.cpp b/cpp/jni/javet_converter.cpp index d84c28621..677fbdec3 100644 --- a/cpp/jni/javet_converter.cpp +++ b/cpp/jni/javet_converter.cpp @@ -101,10 +101,18 @@ namespace Javet { jmethodID jmethodIDV8ValueArrayBufferConstructor; jmethodID jmethodIDV8ValueArrayBufferGetHandle; + jclass jclassV8ValueBooleanObject; + jmethodID jmethodIDV8ValueBooleanObjectConstructor; + jmethodID jmethodIDV8ValueBooleanObjectGetHandle; + jclass jclassV8ValueDataView; jmethodID jmethodIDV8ValueDataViewConstructor; jmethodID jmethodIDV8ValueDataViewGetHandle; + jclass jclassV8ValueDoubleObject; + jmethodID jmethodIDV8ValueDoubleObjectConstructor; + jmethodID jmethodIDV8ValueDoubleObjectGetHandle; + jclass jclassV8ValueFunction; jmethodID jmethodIDV8ValueFunctionConstructor; jmethodID jmethodIDV8ValueFunctionGetHandle; @@ -117,10 +125,18 @@ namespace Javet { jmethodID jmethodIDV8ValueGlobalObjectConstructor; jmethodID jmethodIDV8ValueGlobalObjectGetHandle; + jclass jclassV8ValueIntegerObject; + jmethodID jmethodIDV8ValueIntegerObjectConstructor; + jmethodID jmethodIDV8ValueIntegerObjectGetHandle; + jclass jclassV8ValueIterator; jmethodID jmethodIDV8ValueIteratorConstructor; jmethodID jmethodIDV8ValueIteratorGetHandle; + jclass jclassV8ValueLongObject; + jmethodID jmethodIDV8ValueLongObjectConstructor; + jmethodID jmethodIDV8ValueLongObjectGetHandle; + jclass jclassV8ValueMap; jmethodID jmethodIDV8ValueMapConstructor; jmethodID jmethodIDV8ValueMapGetHandle; @@ -151,6 +167,10 @@ namespace Javet { jmethodID jmethodIDV8ValueSharedArrayBufferConstructor; jmethodID jmethodIDV8ValueSharedArrayBufferGetHandle; + jclass jclassV8ValueStringObject; + jmethodID jmethodIDV8ValueStringObjectConstructor; + jmethodID jmethodIDV8ValueStringObjectGetHandle; + jmethodID jmethodIDV8ValueSymbolConstructor; jmethodID jmethodIDV8ValueSymbolGetHandle; @@ -400,10 +420,18 @@ namespace Javet { jmethodIDV8ValueArrayBufferConstructor = jniEnv->GetMethodID(jclassV8ValueArrayBuffer, "", "(Lcom/caoccao/javet/interop/V8Runtime;JLjava/nio/ByteBuffer;)V"); jmethodIDV8ValueArrayBufferGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueArrayBuffer); + jclassV8ValueBooleanObject = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueBooleanObject"); + jmethodIDV8ValueBooleanObjectConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueBooleanObject); + jmethodIDV8ValueBooleanObjectGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueBooleanObject); + jclassV8ValueDataView = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueDataView"); jmethodIDV8ValueDataViewConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueDataView); jmethodIDV8ValueDataViewGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueDataView); + jclassV8ValueDoubleObject = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueDoubleObject"); + jmethodIDV8ValueDoubleObjectConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueDoubleObject); + jmethodIDV8ValueDoubleObjectGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueDoubleObject); + jclassV8ValueFunction = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueFunction"); jmethodIDV8ValueFunctionConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueFunction); jmethodIDV8ValueFunctionGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueFunction); @@ -416,10 +444,18 @@ namespace Javet { jmethodIDV8ValueGlobalObjectConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueGlobalObject); jmethodIDV8ValueGlobalObjectGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueGlobalObject); + jclassV8ValueIntegerObject = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueIntegerObject"); + jmethodIDV8ValueIntegerObjectConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueIntegerObject); + jmethodIDV8ValueIntegerObjectGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueIntegerObject); + jclassV8ValueIterator = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueIterator"); jmethodIDV8ValueIteratorConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueIterator); jmethodIDV8ValueIteratorGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueIterator); + jclassV8ValueLongObject = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueLongObject"); + jmethodIDV8ValueLongObjectConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueLongObject); + jmethodIDV8ValueLongObjectGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueLongObject); + jclassV8ValueMap = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueMap"); jmethodIDV8ValueMapConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueMap); jmethodIDV8ValueMapGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueMap); @@ -450,6 +486,10 @@ namespace Javet { jmethodIDV8ValueSharedArrayBufferConstructor = jniEnv->GetMethodID(jclassV8ValueSharedArrayBuffer, "", "(Lcom/caoccao/javet/interop/V8Runtime;JLjava/nio/ByteBuffer;)V"); jmethodIDV8ValueSharedArrayBufferGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueSharedArrayBuffer); + jclassV8ValueStringObject = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueStringObject"); + jmethodIDV8ValueStringObjectConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueStringObject); + jmethodIDV8ValueStringObjectGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueStringObject); + jclassV8ValueSymbol = FIND_CLASS(jniEnv, "com/caoccao/javet/values/reference/V8ValueSymbol"); jmethodIDV8ValueSymbolConstructor = GET_METHOD_CONSTRUCTOR(jniEnv, jclassV8ValueSymbol); jmethodIDV8ValueSymbolGetHandle = GET_METHOD_GET_HANDLE(jniEnv, jclassV8ValueSymbol); @@ -797,8 +837,36 @@ namespace Javet { v8Runtime->externalV8Runtime, ToV8PersistentReference(v8Context, v8Value)); } + if (v8Value->IsStringObject()) { + return jniEnv->NewObject( + jclassV8ValueStringObject, + jmethodIDV8ValueStringObjectConstructor, + v8Runtime->externalV8Runtime, + ToV8PersistentReference(v8Context, v8Value)); + } + if (v8Value->IsNumberObject()) { + return jniEnv->NewObject( + jclassV8ValueDoubleObject, + jmethodIDV8ValueDoubleObjectConstructor, + v8Runtime->externalV8Runtime, + ToV8PersistentReference(v8Context, v8Value)); + } + if (v8Value->IsBooleanObject()) { + return jniEnv->NewObject( + jclassV8ValueBooleanObject, + jmethodIDV8ValueBooleanObjectConstructor, + v8Runtime->externalV8Runtime, + ToV8PersistentReference(v8Context, v8Value)); + } + if (v8Value->IsBigIntObject()) { + return jniEnv->NewObject( + jclassV8ValueLongObject, + jmethodIDV8ValueLongObjectConstructor, + v8Runtime->externalV8Runtime, + ToV8PersistentReference(v8Context, v8Value)); + } // Primitive types - if (v8Value->IsBoolean() || v8Value->IsBooleanObject()) { + if (v8Value->IsBoolean()) { return jniEnv->CallObjectMethod( v8Runtime->externalV8Runtime, jmethodIDV8RuntimeCreateV8ValueBoolean, @@ -810,7 +878,7 @@ namespace Javet { jmethodIDV8RuntimeCreateV8ValueInteger, v8Value->Int32Value(v8Context).FromMaybe(0)); } - if (v8Value->IsBigInt() || v8Value->IsBigIntObject()) { + if (v8Value->IsBigInt()) { V8LocalBigInt v8LocalBigInt = v8Value->ToBigInt(v8Context).ToLocalChecked(); int wordCount = v8LocalBigInt->WordCount(); if (wordCount <= 1) { @@ -842,13 +910,13 @@ namespace Javet { jmethodIDV8RuntimeCreateV8ValueZonedDateTime, static_cast(v8Date->ValueOf())); } - if (v8Value->IsNumber() || v8Value->IsNumberObject()) { + if (v8Value->IsNumber()) { return jniEnv->CallObjectMethod( v8Runtime->externalV8Runtime, jmethodIDV8RuntimeCreateV8ValueDouble, v8Value->NumberValue(v8Context).FromMaybe(0)); } - if (v8Value->IsString() || v8Value->IsStringObject()) { + if (v8Value->IsString()) { return ToExternalV8ValuePrimitive( jniEnv, jclassV8ValueString, diff --git a/cpp/jni/javet_converter.h b/cpp/jni/javet_converter.h index 233d059e7..b00793a24 100644 --- a/cpp/jni/javet_converter.h +++ b/cpp/jni/javet_converter.h @@ -301,6 +301,12 @@ namespace Javet { const V8LocalContext& v8Context, const jstring mString) noexcept; + static inline V8LocalStringObject ToV8StringObject( + const V8LocalContext& v8Context, + const V8LocalString v8LocalString) noexcept { + return v8::StringObject::New(v8Context->GetIsolate(), v8LocalString).As(); + } + V8LocalValue ToV8Value( JNIEnv* jniEnv, const V8LocalContext& v8Context, diff --git a/cpp/jni/javet_enums.h b/cpp/jni/javet_enums.h index 857b8db6e..bf5e797f6 100644 --- a/cpp/jni/javet_enums.h +++ b/cpp/jni/javet_enums.h @@ -48,6 +48,19 @@ namespace Javet { }; }; + namespace V8ValueErrorType { + enum V8ValueErrorType { + Error = 0, + RangeError = 1, + ReferenceError = 2, + SyntaxError = 3, + TypeError = 4, + WasmCompileError = 5, + WasmLinkError = 6, + WasmRuntimeError = 7, + }; + }; + namespace V8ValueInternalType { enum V8ValueInternalType { Undefined = 0, @@ -128,6 +141,11 @@ namespace Javet { Script = 20, Module = 21, Context = 22, + BigIntObject = 23, + BooleanObject = 24, + IntegerObject = 25, + DoubleObject = 26, + StringObject = 27, DataView = 30, ArrayBuffer = 31, SharedArrayBuffer = 32, @@ -173,8 +191,12 @@ namespace Javet { constexpr auto IS_V8_ARRAY(jint type) { return type == Javet::Enums::V8ValueReferenceType::Array; } constexpr auto IS_V8_ARRAY_BUFFER(jint type) { return type == Javet::Enums::V8ValueReferenceType::ArrayBuffer; } constexpr auto IS_V8_ARGUMENTS(jint type) { return type == Javet::Enums::V8ValueReferenceType::Arguments; } +constexpr auto IS_V8_BIG_INT_OBJECT(jint type) { return type == Javet::Enums::V8ValueReferenceType::BigIntObject; } +constexpr auto IS_V8_BOOLEAN_OBJECT(jint type) { return type == Javet::Enums::V8ValueReferenceType::BooleanObject; } constexpr auto IS_V8_CONTEXT(jint type) { return type == Javet::Enums::V8ValueReferenceType::Context; } +constexpr auto IS_V8_DOUBLE_OBJECT(jint type) { return type == Javet::Enums::V8ValueReferenceType::DoubleObject; } constexpr auto IS_V8_FUNCTION(jint type) { return type == Javet::Enums::V8ValueReferenceType::Function; } +constexpr auto IS_V8_INTEGER_OBJECT(jint type) { return type == Javet::Enums::V8ValueReferenceType::IntegerObject; } constexpr auto IS_V8_MAP(jint type) { return type == Javet::Enums::V8ValueReferenceType::Map; } constexpr auto IS_V8_MODULE(jint type) { return type == Javet::Enums::V8ValueReferenceType::Module; } constexpr auto IS_V8_OBJECT(jint type) { return type == Javet::Enums::V8ValueReferenceType::Object; } @@ -182,5 +204,6 @@ constexpr auto IS_V8_PROMISE(jint type) { return type == Javet::Enums::V8ValueRe constexpr auto IS_V8_PROXY(jint type) { return type == Javet::Enums::V8ValueReferenceType::Proxy; } constexpr auto IS_V8_SCRIPT(jint type) { return type == Javet::Enums::V8ValueReferenceType::Script; } constexpr auto IS_V8_SET(jint type) { return type == Javet::Enums::V8ValueReferenceType::Set; } +constexpr auto IS_V8_STRING_OBJECT(jint type) { return type == Javet::Enums::V8ValueReferenceType::StringObject; } constexpr auto IS_V8_SYMBOL(jint type) { return type == Javet::Enums::V8ValueReferenceType::Symbol; } constexpr auto IS_V8_SYMBOL_OBJECT(jint type) { return type == Javet::Enums::V8ValueReferenceType::SymbolObject; } diff --git a/cpp/jni/javet_jni_boolean.cpp b/cpp/jni/javet_jni_boolean.cpp new file mode 100644 index 000000000..789947906 --- /dev/null +++ b/cpp/jni/javet_jni_boolean.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2021-2024. caoccao.com Sam Cao + * All rights reserved. + + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + + * http://www.apache.org/licenses/LICENSE-2.0 + + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "javet_jni.h" + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_booleanObjectCreate +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jboolean mBoolean) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8LocalBooleanObject = v8::BooleanObject::New(v8Context->GetIsolate(), mBoolean); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalBooleanObject); +} + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_booleanObjectValueOf +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_BOOLEAN_OBJECT(v8ValueType)) { + auto booleanValue = v8LocalValue.As()->ValueOf(); + auto v8LocalBoolean = Javet::Converter::ToV8Boolean(v8Context, booleanValue); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalBoolean); + } + return nullptr; +} diff --git a/cpp/jni/javet_jni_core_v8.cpp b/cpp/jni/javet_jni_core_v8.cpp index 0b6b714d2..b2e59c685 100644 --- a/cpp/jni/javet_jni_core_v8.cpp +++ b/cpp/jni/javet_jni_core_v8.cpp @@ -232,31 +232,6 @@ JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_hasInternalTy return false; } -JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_hasPendingException -(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { - RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); - auto v8InternalIsolate = reinterpret_cast(v8Context->GetIsolate()); - return HAS_PENDING_EXCEPTION(v8InternalIsolate); -} - -JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_hasPendingMessage -(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { - RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); - auto v8InternalIsolate = reinterpret_cast(v8Context->GetIsolate()); - return v8InternalIsolate->has_pending_message(); -} - -JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_hasScheduledException -(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { -#ifdef ENABLE_NODE - RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); - auto v8InternalIsolate = reinterpret_cast(v8Context->GetIsolate()); - return v8InternalIsolate->has_scheduled_exception(); -#else - return false; -#endif -} - JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_idleNotificationDeadline (JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong deadlineInMillis) { if (deadlineInMillis > 0) { @@ -302,19 +277,6 @@ JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_lowMemoryNotifica v8Context->GetIsolate()->LowMemoryNotification(); } -JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_promoteScheduledException -(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { -#ifdef ENABLE_NODE - RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); - auto v8InternalIsolate = reinterpret_cast(v8Context->GetIsolate()); - if (v8InternalIsolate->has_scheduled_exception()) { - v8InternalIsolate->PromoteScheduledException(); - return true; - } -#endif - return false; -} - JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_registerGCEpilogueCallback (JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { auto v8Runtime = Javet::V8Runtime::FromHandle(v8RuntimeHandle); @@ -352,12 +314,6 @@ JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_removeReferenceHa INCREASE_COUNTER(Javet::Monitor::CounterType::DeletePersistentReference); } -JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_reportPendingMessages -(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { - RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); - return Javet::Exceptions::HandlePendingException(jniEnv, v8Runtime, v8Context); -} - JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_requestGarbageCollectionForTesting (JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jboolean fullGC) { RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); diff --git a/cpp/jni/javet_jni_double.cpp b/cpp/jni/javet_jni_double.cpp new file mode 100644 index 000000000..dd717047e --- /dev/null +++ b/cpp/jni/javet_jni_double.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2021-2024. caoccao.com Sam Cao + * All rights reserved. + + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + + * http://www.apache.org/licenses/LICENSE-2.0 + + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "javet_jni.h" + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_doubleObjectCreate +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jdouble mDouble) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8LocalDoubleObject = v8::NumberObject::New(v8Context->GetIsolate(), mDouble); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalDoubleObject); +} + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_doubleObjectValueOf +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_DOUBLE_OBJECT(v8ValueType)) { + auto doubleValue = v8LocalValue.As()->ValueOf(); + auto v8LocalDouble = Javet::Converter::ToV8Double(v8Context, doubleValue); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalDouble); + } + return nullptr; +} diff --git a/cpp/jni/javet_jni_error.cpp b/cpp/jni/javet_jni_error.cpp new file mode 100644 index 000000000..97dba67bd --- /dev/null +++ b/cpp/jni/javet_jni_error.cpp @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2021-2024. caoccao.com Sam Cao + * All rights reserved. + + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + + * http://www.apache.org/licenses/LICENSE-2.0 + + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "javet_jni.h" + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_errorCreate +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jint mErrorTypeId, jstring mMessage) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto errorMessage = Javet::Converter::ToV8String(jniEnv, v8Context, mMessage); + using namespace Javet::Enums::V8ValueErrorType; + switch (mErrorTypeId) { + case V8ValueErrorType::Error: return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8::Exception::Error(errorMessage)); + case V8ValueErrorType::RangeError: return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8::Exception::RangeError(errorMessage)); + case V8ValueErrorType::ReferenceError: return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8::Exception::ReferenceError(errorMessage)); + case V8ValueErrorType::SyntaxError: return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8::Exception::SyntaxError(errorMessage)); + case V8ValueErrorType::TypeError: return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8::Exception::TypeError(errorMessage)); + case V8ValueErrorType::WasmCompileError: return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8::Exception::WasmCompileError(errorMessage)); + case V8ValueErrorType::WasmLinkError: return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8::Exception::WasmLinkError(errorMessage)); + case V8ValueErrorType::WasmRuntimeError: return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8::Exception::WasmRuntimeError(errorMessage)); + } + return Javet::Converter::ToExternalV8ValueUndefined(jniEnv, v8Runtime); +} + +JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_hasPendingException +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8InternalIsolate = reinterpret_cast(v8Context->GetIsolate()); + return HAS_PENDING_EXCEPTION(v8InternalIsolate); +} + +JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_hasPendingMessage +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8InternalIsolate = reinterpret_cast(v8Context->GetIsolate()); + return v8InternalIsolate->has_pending_message(); +} + +JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_hasScheduledException +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { +#ifdef ENABLE_NODE + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8InternalIsolate = reinterpret_cast(v8Context->GetIsolate()); + return v8InternalIsolate->has_scheduled_exception(); +#else + return false; +#endif +} + +JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_promoteScheduledException +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { +#ifdef ENABLE_NODE + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8InternalIsolate = reinterpret_cast(v8Context->GetIsolate()); + if (v8InternalIsolate->has_scheduled_exception()) { + v8InternalIsolate->PromoteScheduledException(); + return true; + } +#endif + return false; +} + +JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_reportPendingMessages +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + return Javet::Exceptions::HandlePendingException(jniEnv, v8Runtime, v8Context); +} + +JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_throwError__JILjava_lang_String_2 +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jint mErrorTypeId, jstring mMessage) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto errorMessage = Javet::Converter::ToV8String(jniEnv, v8Context, mMessage); + V8LocalValue v8LocalValueError; + using namespace Javet::Enums::V8ValueErrorType; + switch (mErrorTypeId) { + case V8ValueErrorType::Error: v8LocalValueError = v8::Exception::Error(errorMessage); break; + case V8ValueErrorType::RangeError: v8LocalValueError = v8::Exception::RangeError(errorMessage); break; + case V8ValueErrorType::ReferenceError: v8LocalValueError = v8::Exception::ReferenceError(errorMessage); break; + case V8ValueErrorType::SyntaxError: v8LocalValueError = v8::Exception::SyntaxError(errorMessage); break; + case V8ValueErrorType::TypeError: v8LocalValueError = v8::Exception::TypeError(errorMessage); break; + case V8ValueErrorType::WasmCompileError: v8LocalValueError = v8::Exception::WasmCompileError(errorMessage); break; + case V8ValueErrorType::WasmLinkError: v8LocalValueError = v8::Exception::WasmLinkError(errorMessage); break; + case V8ValueErrorType::WasmRuntimeError: v8LocalValueError = v8::Exception::WasmRuntimeError(errorMessage); break; + } + if (!v8LocalValueError.IsEmpty()) { + v8Context->GetIsolate()->ThrowException(v8LocalValueError); + return true; + } + return false; +} + +JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_throwError__JLjava_lang_Object_2 +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jobject mV8Value) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8LocalValue = Javet::Converter::ToV8Value(jniEnv, v8Context, mV8Value); + if (!v8LocalValue.IsEmpty()) { + v8Context->GetIsolate()->ThrowException(v8LocalValue); + return true; + } + return false; +} diff --git a/cpp/jni/javet_jni_integer.cpp b/cpp/jni/javet_jni_integer.cpp new file mode 100644 index 000000000..6e20264bd --- /dev/null +++ b/cpp/jni/javet_jni_integer.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2021-2024. caoccao.com Sam Cao + * All rights reserved. + + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + + * http://www.apache.org/licenses/LICENSE-2.0 + + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "javet_jni.h" + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_integerObjectCreate +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jint mInt) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8LocalDoubleObject = v8::NumberObject::New(v8Context->GetIsolate(), mInt); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalDoubleObject); +} + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_integerObjectValueOf +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_INTEGER_OBJECT(v8ValueType)) { + auto intValue = (int)(v8LocalValue.As()->ValueOf()); + auto v8LocalInteger = Javet::Converter::ToV8Integer(v8Context, intValue); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalInteger); + } + return nullptr; +} diff --git a/cpp/jni/javet_jni_long.cpp b/cpp/jni/javet_jni_long.cpp new file mode 100644 index 000000000..e76e9052c --- /dev/null +++ b/cpp/jni/javet_jni_long.cpp @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2021-2024. caoccao.com Sam Cao + * All rights reserved. + + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + + * http://www.apache.org/licenses/LICENSE-2.0 + + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "javet_jni.h" + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_longObjectCreate +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong mLong) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8LocalLongObject = v8::BigIntObject::New(v8Context->GetIsolate(), mLong); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalLongObject); +} + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_longObjectValueOf +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_BIG_INT_OBJECT(v8ValueType)) { + auto v8LocalBigInt = v8LocalValue.As()->ValueOf(); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalBigInt); + } + return nullptr; +} diff --git a/cpp/jni/javet_jni_map.cpp b/cpp/jni/javet_jni_map.cpp index b85c1bf8a..fe100e7be 100644 --- a/cpp/jni/javet_jni_map.cpp +++ b/cpp/jni/javet_jni_map.cpp @@ -100,6 +100,24 @@ JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_mapCreate return Javet::Converter::ToExternalV8ValueUndefined(jniEnv, v8Runtime); } +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_mapAsArray +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_MAP(v8ValueType)) { + auto v8LocalArray = v8LocalValue.As()->AsArray(); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalArray); + } + return Javet::Converter::ToExternalV8ValueUndefined(jniEnv, v8Runtime); +} + +JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_mapClear +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_MAP(v8ValueType)) { + v8LocalValue.As()->Clear(); + } +} + JNIEXPORT jboolean JNICALL Java_com_caoccao_javet_interop_V8Native_mapDelete (JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType, jobject key) { RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); diff --git a/cpp/jni/javet_jni_proxy.cpp b/cpp/jni/javet_jni_proxy.cpp index 3c1a022f2..65f9a5fdf 100644 --- a/cpp/jni/javet_jni_proxy.cpp +++ b/cpp/jni/javet_jni_proxy.cpp @@ -20,9 +20,16 @@ JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_proxyCreate (JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jobject mTarget) { RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); - V8LocalObject v8LocalObjectTaget = mTarget == nullptr - ? v8::Object::New(v8Context->GetIsolate()) - : Javet::Converter::ToV8Value(jniEnv, v8Context, mTarget).As(); + V8LocalObject v8LocalObjectTaget; + if (mTarget != nullptr) { + auto v8LocalValue = Javet::Converter::ToV8Value(jniEnv, v8Context, mTarget); + if (v8LocalValue->IsObject()) { + v8LocalObjectTaget = v8LocalValue.As(); + } + } + if (v8LocalObjectTaget.IsEmpty()) { + v8LocalObjectTaget = v8::Object::New(v8Context->GetIsolate()); + } auto v8LocalObjectHandler = v8::Object::New(v8Context->GetIsolate()); auto v8MaybeLocalProxy = v8::Proxy::New(v8Context, v8LocalObjectTaget, v8LocalObjectHandler); if (v8MaybeLocalProxy.IsEmpty()) { diff --git a/cpp/jni/javet_jni_set.cpp b/cpp/jni/javet_jni_set.cpp index 43e9f592c..5c5d507cc 100644 --- a/cpp/jni/javet_jni_set.cpp +++ b/cpp/jni/javet_jni_set.cpp @@ -29,6 +29,24 @@ JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_setAdd } } +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_setAsArray +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_SET(v8ValueType)) { + auto v8LocalArray = v8LocalValue.As()->AsArray(); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalArray); + } + return Javet::Converter::ToExternalV8ValueUndefined(jniEnv, v8Runtime); +} + +JNIEXPORT void JNICALL Java_com_caoccao_javet_interop_V8Native_setClear +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_SET(v8ValueType)) { + v8LocalValue.As()->Clear(); + } +} + JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_setCreate (JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle) { RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); diff --git a/cpp/jni/javet_jni_string.cpp b/cpp/jni/javet_jni_string.cpp new file mode 100644 index 000000000..49ba03309 --- /dev/null +++ b/cpp/jni/javet_jni_string.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2021-2024. caoccao.com Sam Cao + * All rights reserved. + + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + + * http://www.apache.org/licenses/LICENSE-2.0 + + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "javet_jni.h" + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_stringObjectCreate +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jstring mString) { + RUNTIME_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle); + auto v8LocalString = Javet::Converter::ToV8String(jniEnv, v8Context, mString); + auto v8LocalStringObject = v8::StringObject::New(v8Context->GetIsolate(), v8LocalString); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalStringObject); +} + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_stringObjectValueOf +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_STRING_OBJECT(v8ValueType)) { + auto v8LocalString = v8LocalValue.As()->ValueOf(); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalString); + } + return nullptr; +} diff --git a/cpp/jni/javet_jni_symbol.cpp b/cpp/jni/javet_jni_symbol.cpp index 1a6384a91..ff2ad0946 100644 --- a/cpp/jni/javet_jni_symbol.cpp +++ b/cpp/jni/javet_jni_symbol.cpp @@ -27,3 +27,33 @@ JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_symbolCreate } return Javet::Converter::ToExternalV8ValueUndefined(jniEnv, v8Runtime); } + +JNIEXPORT jstring JNICALL Java_com_caoccao_javet_interop_V8Native_symbolDescription +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_SYMBOL(v8ValueType)) { + auto v8String = v8LocalValue.As()->Description(v8Context->GetIsolate()).As(); + return Javet::Converter::ToJavaString(jniEnv, v8Context, v8String); + } + return nullptr; +} + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_symbolObjectValueOf +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_SYMBOL_OBJECT(v8ValueType)) { + auto v8LocalSymbol = v8LocalValue.As()->ValueOf(); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalSymbol); + } + return nullptr; +} + +JNIEXPORT jobject JNICALL Java_com_caoccao_javet_interop_V8Native_symbolToObject +(JNIEnv* jniEnv, jobject caller, jlong v8RuntimeHandle, jlong v8ValueHandle, jint v8ValueType) { + RUNTIME_AND_VALUE_HANDLES_TO_OBJECTS_WITH_SCOPE(v8RuntimeHandle, v8ValueHandle); + if (IS_V8_SYMBOL(v8ValueType)) { + auto v8LocalSymbolObject = v8::SymbolObject::New(v8Context->GetIsolate(), v8LocalValue.As()); + return v8Runtime->SafeToExternalV8Value(jniEnv, v8Context, v8LocalSymbolObject); + } + return nullptr; +} diff --git a/cpp/jni/javet_resource_node.rc b/cpp/jni/javet_resource_node.rc index d1474528f..5447ec362 100644 --- a/cpp/jni/javet_resource_node.rc +++ b/cpp/jni/javet_resource_node.rc @@ -61,8 +61,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,0,3,0 - PRODUCTVERSION 3,0,3,0 + FILEVERSION 3,0,4,0 + PRODUCTVERSION 3,0,4,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -79,12 +79,12 @@ BEGIN BEGIN VALUE "CompanyName", "caoccao.com" VALUE "FileDescription", "caoccao.com" - VALUE "FileVersion", "3.0.3.0" - VALUE "InternalName", "libjavet-node-windows-x86_64.v.3.0.3.dll" + VALUE "FileVersion", "3.0.4.0" + VALUE "InternalName", "libjavet-node-windows-x86_64.v.3.0.4.dll" VALUE "LegalCopyright", "Copyright (c) 2021-2024." - VALUE "OriginalFilename", "libjavet-node-windows-x86_64.v.3.0.3.dll" + VALUE "OriginalFilename", "libjavet-node-windows-x86_64.v.3.0.4.dll" VALUE "ProductName", "Javet Windows" - VALUE "ProductVersion", "3.0.3.0" + VALUE "ProductVersion", "3.0.4.0" END END BLOCK "VarFileInfo" diff --git a/cpp/jni/javet_resource_v8.rc b/cpp/jni/javet_resource_v8.rc index c2105864b..ace1ea802 100644 --- a/cpp/jni/javet_resource_v8.rc +++ b/cpp/jni/javet_resource_v8.rc @@ -61,8 +61,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,0,3,0 - PRODUCTVERSION 3,0,3,0 + FILEVERSION 3,0,4,0 + PRODUCTVERSION 3,0,4,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -79,12 +79,12 @@ BEGIN BEGIN VALUE "CompanyName", "caoccao.com" VALUE "FileDescription", "caoccao.com" - VALUE "FileVersion", "3.0.3.0" - VALUE "InternalName", "libjavet-v8-windows-x86_64.v.3.0.3.dll" + VALUE "FileVersion", "3.0.4.0" + VALUE "InternalName", "libjavet-v8-windows-x86_64.v.3.0.4.dll" VALUE "LegalCopyright", "Copyright (c) 2021-2024." - VALUE "OriginalFilename", "libjavet-v8-windows-x86_64.v.3.0.3.dll" + VALUE "OriginalFilename", "libjavet-v8-windows-x86_64.v.3.0.4.dll" VALUE "ProductName", "Javet Windows" - VALUE "ProductVersion", "3.0.3.0" + VALUE "ProductVersion", "3.0.4.0" END END BLOCK "VarFileInfo" diff --git a/cpp/jni/javet_v8.h b/cpp/jni/javet_v8.h index ea726fcaf..7c1ac7e60 100644 --- a/cpp/jni/javet_v8.h +++ b/cpp/jni/javet_v8.h @@ -42,7 +42,9 @@ using V8IsolateScope = v8::Isolate::Scope; using V8LocalArray = v8::Local; using V8LocalBigInt = v8::Local; +using V8LocalBigIntObject = v8::Local; using V8LocalBoolean = v8::Local; +using V8LocalBooleanObject = v8::Local; using V8LocalContext = v8::Local; using V8LocalData = v8::Local; using V8LocalFixedArray = v8::Local; @@ -52,6 +54,7 @@ using V8LocalMap = v8::Local; using V8LocalModule = v8::Local; using V8LocalName = v8::Local; using V8LocalNumber = v8::Local; +using V8LocalNumberObject = v8::Local; using V8LocalObject = v8::Local; using V8LocalPrimitive = v8::Local; using V8LocalPrimitiveArray = v8::Local; @@ -61,6 +64,7 @@ using V8LocalRegExp = v8::Local; using V8LocalScript = v8::Local; using V8LocalSet = v8::Local; using V8LocalString = v8::Local; +using V8LocalStringObject = v8::Local; using V8LocalSymbol = v8::Local; using V8LocalSymbolObject = v8::Local; using V8LocalValue = v8::Local; diff --git a/docker/android/base.Dockerfile b/docker/android/base.Dockerfile index 85a3fe186..77ab52e4c 100644 --- a/docker/android/base.Dockerfile +++ b/docker/android/base.Dockerfile @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Usage: docker build -t sjtucaocao/javet-android:3.0.3 -f docker/android/base.Dockerfile . +# Usage: docker build -t sjtucaocao/javet-android:3.0.4 -f docker/android/base.Dockerfile . -ARG JAVET_V8_VERSION=12.1.285.26 +ARG JAVET_V8_VERSION=12.2.281.16 FROM ubuntu:20.04 WORKDIR / diff --git a/docker/android/build.Dockerfile b/docker/android/build.Dockerfile index c377bd945..bbfa966ba 100644 --- a/docker/android/build.Dockerfile +++ b/docker/android/build.Dockerfile @@ -15,7 +15,7 @@ # Usage: docker build -t javet-android:local -f docker/android/build.Dockerfile . -FROM sjtucaocao/javet-android:3.0.3 +FROM sjtucaocao/javet-android:3.0.4 WORKDIR / # Copy Javet diff --git a/docker/linux-arm64/base_all_in_one.Dockerfile b/docker/linux-arm64/base_all_in_one.Dockerfile index 35d419ba1..81213842b 100644 --- a/docker/linux-arm64/base_all_in_one.Dockerfile +++ b/docker/linux-arm64/base_all_in_one.Dockerfile @@ -13,10 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Usage: docker build -t sjtucaocao/javet-arm64:3.0.3 -f docker/linux-arm64/base_all_in_one.Dockerfile . +# Usage: docker build -t sjtucaocao/javet-arm64:3.0.4 -f docker/linux-arm64/base_all_in_one.Dockerfile . ARG JAVET_NODE_VERSION=18.15.0 -ARG JAVET_V8_VERSION=12.1.285.26 +ARG JAVET_V8_VERSION=12.2.281.16 FROM ubuntu:20.04 WORKDIR / diff --git a/docker/linux-arm64/base_gradle.Dockerfile b/docker/linux-arm64/base_gradle.Dockerfile index cf8bba975..fe141bfae 100644 --- a/docker/linux-arm64/base_gradle.Dockerfile +++ b/docker/linux-arm64/base_gradle.Dockerfile @@ -14,7 +14,7 @@ # limitations under the License. # Usage: docker build \ -# -t sjtucaocao/javet:arm64-3.0.3 \ +# -t sjtucaocao/javet:arm64-3.0.4 \ # --build-arg JAVET_REPO=sjtucaocao/javet \ # -f docker/linux-arm64/base_gradle.Dockerfile . diff --git a/docker/linux-arm64/base_v8.Dockerfile b/docker/linux-arm64/base_v8.Dockerfile index 739514bd6..946634f8c 100644 --- a/docker/linux-arm64/base_v8.Dockerfile +++ b/docker/linux-arm64/base_v8.Dockerfile @@ -14,13 +14,13 @@ # limitations under the License. # Usage: docker build \ -# -t sjtucaocao/javet:arm64-base-v8_12.1.285.26 \ +# -t sjtucaocao/javet:arm64-base-v8_12.2.281.16 \ # --build-arg JAVET_REPO=sjtucaocao/javet \ -# --build-arg JAVET_V8_VERSION=12.1.285.26 \ +# --build-arg JAVET_V8_VERSION=12.2.281.16 \ # -f docker/linux-arm64/base_v8.Dockerfile . ARG JAVET_REPO=sjtucaocao/javet -ARG JAVET_V8_VERSION=12.1.285.26 +ARG JAVET_V8_VERSION=12.2.281.16 FROM ${JAVET_REPO}:arm64-base-jvm diff --git a/docker/linux-arm64/build_artifact.Dockerfile b/docker/linux-arm64/build_artifact.Dockerfile index 0aca526da..6f6eddaff 100644 --- a/docker/linux-arm64/build_artifact.Dockerfile +++ b/docker/linux-arm64/build_artifact.Dockerfile @@ -18,13 +18,13 @@ # --build-arg JAVET_REPO=sjtucaocao/javet \ # --build-arg JAVET_NODE_VERSION=18.12.1 \ # --build-arg JAVET_V8_VERSION=10.8.168.20 \ -# --build-arg JAVET_VERSION=3.0.3 \ +# --build-arg JAVET_VERSION=3.0.4 \ # -f docker/linux-arm64/build_artifact.Dockerfile . ARG JAVET_REPO=sjtucaocao/javet ARG JAVET_NODE_VERSION=18.12.1 ARG JAVET_V8_VERSION=10.8.168.20 -ARG JAVET_VERSION=3.0.3 +ARG JAVET_VERSION=3.0.4 FROM ${JAVET_REPO}:arm64-base-node_${JAVET_NODE_VERSION} as base-node diff --git a/docker/linux-x86_64/base_all_in_one.Dockerfile b/docker/linux-x86_64/base_all_in_one.Dockerfile index 3f0cd33b7..d6460461b 100644 --- a/docker/linux-x86_64/base_all_in_one.Dockerfile +++ b/docker/linux-x86_64/base_all_in_one.Dockerfile @@ -13,10 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Usage: docker build -t sjtucaocao/javet:3.0.3 -f docker/linux-x86_64/base_all_in_one.Dockerfile . +# Usage: docker build -t sjtucaocao/javet:3.0.4 -f docker/linux-x86_64/base_all_in_one.Dockerfile . -ARG JAVET_NODE_VERSION=20.11.0 -ARG JAVET_V8_VERSION=12.1.285.26 +ARG JAVET_NODE_VERSION=20.11.1 +ARG JAVET_V8_VERSION=12.2.281.16 FROM ubuntu:20.04 WORKDIR / diff --git a/docker/linux-x86_64/base_gradle.Dockerfile b/docker/linux-x86_64/base_gradle.Dockerfile index c69f62292..abc0d39e9 100644 --- a/docker/linux-x86_64/base_gradle.Dockerfile +++ b/docker/linux-x86_64/base_gradle.Dockerfile @@ -14,7 +14,7 @@ # limitations under the License. # Usage: docker build \ -# -t sjtucaocao/javet:x86_64-3.0.3 \ +# -t sjtucaocao/javet:x86_64-3.0.4 \ # --build-arg JAVET_REPO=sjtucaocao/javet \ # -f docker/linux-x86_64/base_gradle.Dockerfile . diff --git a/docker/linux-x86_64/base_node.Dockerfile b/docker/linux-x86_64/base_node.Dockerfile index 6ca5adf76..9d6732663 100644 --- a/docker/linux-x86_64/base_node.Dockerfile +++ b/docker/linux-x86_64/base_node.Dockerfile @@ -14,13 +14,13 @@ # limitations under the License. # Usage: docker build \ -# -t sjtucaocao/javet:x86_64-base-node_20.11.0 \ +# -t sjtucaocao/javet:x86_64-base-node_20.11.1 \ # --build-arg JAVET_REPO=sjtucaocao/javet \ -# --build-arg JAVET_NODE_VERSION=20.11.0 \ +# --build-arg JAVET_NODE_VERSION=20.11.1 \ # -f docker/linux-x86_64/base_node.Dockerfile . ARG JAVET_REPO=sjtucaocao/javet -ARG JAVET_NODE_VERSION=20.11.0 +ARG JAVET_NODE_VERSION=20.11.1 FROM ${JAVET_REPO}:x86_64-base-jvm diff --git a/docker/linux-x86_64/base_v8.Dockerfile b/docker/linux-x86_64/base_v8.Dockerfile index 0eefd401a..462902391 100644 --- a/docker/linux-x86_64/base_v8.Dockerfile +++ b/docker/linux-x86_64/base_v8.Dockerfile @@ -14,13 +14,13 @@ # limitations under the License. # Usage: docker build \ -# -t sjtucaocao/javet:x86_64-base-v8_12.1.285.26 \ +# -t sjtucaocao/javet:x86_64-base-v8_12.2.281.16 \ # --build-arg JAVET_REPO=sjtucaocao/javet \ -# --build-arg JAVET_V8_VERSION=12.1.285.26 \ +# --build-arg JAVET_V8_VERSION=12.2.281.16 \ # -f docker/linux-x86_64/base_v8.Dockerfile . ARG JAVET_REPO=sjtucaocao/javet -ARG JAVET_V8_VERSION=12.1.285.26 +ARG JAVET_V8_VERSION=12.2.281.16 FROM ${JAVET_REPO}:x86_64-base-jvm diff --git a/docker/linux-x86_64/build_all_in_one.Dockerfile b/docker/linux-x86_64/build_all_in_one.Dockerfile index a2e64e26d..4ae0f13bb 100644 --- a/docker/linux-x86_64/build_all_in_one.Dockerfile +++ b/docker/linux-x86_64/build_all_in_one.Dockerfile @@ -15,7 +15,7 @@ # Usage: docker build -t javet:local -f docker/linux-x86_64/build_all_in_one.Dockerfile . -FROM sjtucaocao/javet:3.0.3 +FROM sjtucaocao/javet:3.0.4 WORKDIR / # Copy Javet diff --git a/docker/linux-x86_64/build_artifact.Dockerfile b/docker/linux-x86_64/build_artifact.Dockerfile index f6fda09a9..55fe0f86a 100644 --- a/docker/linux-x86_64/build_artifact.Dockerfile +++ b/docker/linux-x86_64/build_artifact.Dockerfile @@ -18,13 +18,13 @@ # --build-arg JAVET_REPO=sjtucaocao/javet \ # --build-arg JAVET_NODE_VERSION=18.12.1 \ # --build-arg JAVET_V8_VERSION=10.8.168.20 \ -# --build-arg JAVET_VERSION=3.0.3 \ +# --build-arg JAVET_VERSION=3.0.4 \ # -f docker/linux-x86_64/build_artifact.Dockerfile . ARG JAVET_REPO=sjtucaocao/javet ARG JAVET_NODE_VERSION=18.12.1 ARG JAVET_V8_VERSION=10.8.168.20 -ARG JAVET_VERSION=3.0.3 +ARG JAVET_VERSION=3.0.4 FROM ${JAVET_REPO}:x86_64-base-node_${JAVET_NODE_VERSION} as base-v8 diff --git a/docker/windows-x86_64/base.Dockerfile b/docker/windows-x86_64/base.Dockerfile index 825f0b7f0..bc2df51e8 100644 --- a/docker/windows-x86_64/base.Dockerfile +++ b/docker/windows-x86_64/base.Dockerfile @@ -29,10 +29,10 @@ # The following dockerfile has been out of date because it still uses # Visual Studio 2019 Community. Please contact the maintainer if you want an upgrade. -# Usage: docker build -t sjtucaocao/javet-windows:3.0.3 -m 4G -f docker/windows-x86_64/base.Dockerfile . +# Usage: docker build -t sjtucaocao/javet-windows:3.0.4 -m 4G -f docker/windows-x86_64/base.Dockerfile . -ARG JAVET_NODE_VERSION=20.11.0 -ARG JAVET_V8_VERSION=12.1.285.26 +ARG JAVET_NODE_VERSION=20.11.1 +ARG JAVET_V8_VERSION=12.2.281.16 # https://hub.docker.com/_/microsoft-windows FROM mcr.microsoft.com/windows:20H2-amd64 diff --git a/docker/windows-x86_64/build.Dockerfile b/docker/windows-x86_64/build.Dockerfile index 39750a99c..243d54635 100644 --- a/docker/windows-x86_64/build.Dockerfile +++ b/docker/windows-x86_64/build.Dockerfile @@ -15,7 +15,7 @@ # Usage: docker build -t javet:local -f docker/windows-x86_64/build.Dockerfile . -FROM sjtucaocao/javet-windows:3.0.3 +FROM sjtucaocao/javet-windows:3.0.4 SHELL ["cmd", "/S", "/C"] WORKDIR / diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 5bacd0f41..0157e899b 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '3.0.3', + VERSION: '3.0.4', LANGUAGE: 'en, zh-CN', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/conf.py b/docs/conf.py index 5f7f532cf..99ea4ddfa 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -22,7 +22,7 @@ author = 'Sam Cao' # The full version, including alpha/beta/rc tags -release = '3.0.3' +release = '3.0.4' # -- General configuration --------------------------------------------------- diff --git a/docs/development/build.html b/docs/development/build.html index 8d97686d1..2d0b15d90 100644 --- a/docs/development/build.html +++ b/docs/development/build.html @@ -6,7 +6,7 @@ - Build Javet - Javet 3.0.3 documentation + Build Javet - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
@@ -151,7 +151,7 @@
- Javet 3.0.3 documentation + Javet 3.0.4 documentation
diff --git a/docs/development/build_javet_from_scratch.html b/docs/development/build_javet_from_scratch.html index 8110437ae..de25fe983 100644 --- a/docs/development/build_javet_from_scratch.html +++ b/docs/development/build_javet_from_scratch.html @@ -6,7 +6,7 @@ - Build Javet from Scratch - Javet 3.0.3 documentation + Build Javet from Scratch - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
@@ -151,7 +151,7 @@
- Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -719,7 +720,7 @@

      Build Javet for Android

  • - + diff --git a/docs/development/build_javet_with_docker.html b/docs/development/build_javet_with_docker.html index ebf58eed0..35b2282ea 100644 --- a/docs/development/build_javet_with_docker.html +++ b/docs/development/build_javet_with_docker.html @@ -6,7 +6,7 @@ - Build Javet with Docker - Javet 3.0.3 documentation + Build Javet with Docker - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -498,7 +499,7 @@

      Linux arm64 Docker Files Deprecated +

  • diff --git a/docs/development/debug_with_chrome_developer_tools.html b/docs/development/debug_with_chrome_developer_tools.html index 92606fa3d..f2c3d51c0 100644 --- a/docs/development/debug_with_chrome_developer_tools.html +++ b/docs/development/debug_with_chrome_developer_tools.html @@ -6,7 +6,7 @@ - Debug with Chrome Developer Tools - Javet 3.0.3 documentation + Debug with Chrome Developer Tools - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -477,7 +478,7 @@

      Is There a Live Demo?

  • - + diff --git a/docs/development/design.html b/docs/development/design.html index 845e3273f..18257748b 100644 --- a/docs/development/design.html +++ b/docs/development/design.html @@ -6,7 +6,7 @@ - Javet Design - Javet 3.0.3 documentation + Javet Design - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -580,7 +581,7 @@

      Memory Leak Detection

  • - + diff --git a/docs/development/index.html b/docs/development/index.html index 91e6bd36f..6f3ddc6c9 100644 --- a/docs/development/index.html +++ b/docs/development/index.html @@ -6,7 +6,7 @@ - Development - Javet 3.0.3 documentation + Development - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -399,7 +400,7 @@

      Development +

  • diff --git a/docs/development/performance.html b/docs/development/performance.html index f0dcaac5f..d9cda5a52 100644 --- a/docs/development/performance.html +++ b/docs/development/performance.html @@ -6,7 +6,7 @@ - Javet Performance - Javet 3.0.3 documentation + Javet Performance - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -546,7 +547,7 @@

      Javet Performance Improvements +

  • diff --git a/docs/development/test.html b/docs/development/test.html index 634ba6af0..60166f0ad 100644 --- a/docs/development/test.html +++ b/docs/development/test.html @@ -6,7 +6,7 @@ - Test Javet - Javet 3.0.3 documentation + Test Javet - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -356,7 +357,7 @@

      Test Javet +

  • diff --git a/docs/development/tools.html b/docs/development/tools.html index d8c7e14cf..8d0da6474 100644 --- a/docs/development/tools.html +++ b/docs/development/tools.html @@ -6,7 +6,7 @@ - Development Tools - Javet 3.0.3 documentation + Development Tools - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -407,7 +408,7 @@

      Python 3.8+ (Optional)

  • - + diff --git a/docs/faq/background/history_with_j2v8.html b/docs/faq/background/history_with_j2v8.html index 2e427a440..dd9f8c04c 100644 --- a/docs/faq/background/history_with_j2v8.html +++ b/docs/faq/background/history_with_j2v8.html @@ -6,7 +6,7 @@ - History with J2V8 - Javet 3.0.3 documentation + History with J2V8 - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -452,7 +453,7 @@

      Why not Deploy J2V8 to Maven Repository? +

  • diff --git a/docs/faq/background/index.html b/docs/faq/background/index.html index 1a4bbaa4b..377bb0397 100644 --- a/docs/faq/background/index.html +++ b/docs/faq/background/index.html @@ -6,7 +6,7 @@ - Background - Javet 3.0.3 documentation + Background - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -360,7 +361,7 @@

      Background +

  • diff --git a/docs/faq/background/what_is_the_motivation.html b/docs/faq/background/what_is_the_motivation.html index ab1d2bf62..4da2cdc78 100644 --- a/docs/faq/background/what_is_the_motivation.html +++ b/docs/faq/background/what_is_the_motivation.html @@ -6,7 +6,7 @@ - What is the Motivation? - Javet 3.0.3 documentation + What is the Motivation? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -358,7 +359,7 @@

      What is the Motivation?

  • - + diff --git a/docs/faq/development/can_native_image_be_supported.html b/docs/faq/development/can_native_image_be_supported.html index cca40ab11..4a18c38e0 100644 --- a/docs/faq/development/can_native_image_be_supported.html +++ b/docs/faq/development/can_native_image_be_supported.html @@ -6,7 +6,7 @@ - Can Native Image be Supported? - Javet 3.0.3 documentation + Can Native Image be Supported? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -360,7 +361,7 @@

      Can Native Image be Supported? +

  • diff --git a/docs/faq/development/how_to_think_in_javet.html b/docs/faq/development/how_to_think_in_javet.html index 0a1226d69..1a5f4d573 100644 --- a/docs/faq/development/how_to_think_in_javet.html +++ b/docs/faq/development/how_to_think_in_javet.html @@ -6,7 +6,7 @@ - How to Think in Javet? - Javet 3.0.3 documentation + How to Think in Javet? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -413,7 +414,7 @@

      Learn from Unit Test

  • - + diff --git a/docs/faq/development/index.html b/docs/faq/development/index.html index b2038974d..de49cdf2b 100644 --- a/docs/faq/development/index.html +++ b/docs/faq/development/index.html @@ -6,7 +6,7 @@ - Development - Javet 3.0.3 documentation + Development - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -363,7 +364,7 @@

      Development +

  • diff --git a/docs/faq/development/where_are_es6_api_in_v8_mode.html b/docs/faq/development/where_are_es6_api_in_v8_mode.html index 72302c4d4..9c914e414 100644 --- a/docs/faq/development/where_are_es6_api_in_v8_mode.html +++ b/docs/faq/development/where_are_es6_api_in_v8_mode.html @@ -6,7 +6,7 @@ - Where are ES6 API in V8 Mode? - Javet 3.0.3 documentation + Where are ES6 API in V8 Mode? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -356,7 +357,7 @@

      Where are ES6 API in V8 Mode? +

  • diff --git a/docs/faq/development/where_are_the_examples.html b/docs/faq/development/where_are_the_examples.html index b0027ce79..38515b1d6 100644 --- a/docs/faq/development/where_are_the_examples.html +++ b/docs/faq/development/where_are_the_examples.html @@ -6,7 +6,7 @@ - Where are the Examples? - Javet 3.0.3 documentation + Where are the Examples? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -361,7 +362,7 @@

      Where are the Examples?

  • - + diff --git a/docs/faq/development/why_is_the_inspector_disabled_in_node_js_mode.html b/docs/faq/development/why_is_the_inspector_disabled_in_node_js_mode.html index 4dbc66b3d..2c8083a78 100644 --- a/docs/faq/development/why_is_the_inspector_disabled_in_node_js_mode.html +++ b/docs/faq/development/why_is_the_inspector_disabled_in_node_js_mode.html @@ -6,7 +6,7 @@ - Why is the Inspector Disabled in Node.js Mode? - Javet 3.0.3 documentation + Why is the Inspector Disabled in Node.js Mode? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -364,7 +365,7 @@

      Why is the Inspector Disabled in Node.js Mode? +

  • diff --git a/docs/faq/environment/can_javet_support_legacy_linux.html b/docs/faq/environment/can_javet_support_legacy_linux.html index 36183e4e2..8f6947ef3 100644 --- a/docs/faq/environment/can_javet_support_legacy_linux.html +++ b/docs/faq/environment/can_javet_support_legacy_linux.html @@ -6,7 +6,7 @@ - Can Javet Support Legacy Linux? - Javet 3.0.3 documentation + Can Javet Support Legacy Linux? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -384,7 +385,7 @@

      Can Javet Support Legacy Linux? +

  • diff --git a/docs/faq/environment/index.html b/docs/faq/environment/index.html index a22a36f4a..20d8d113f 100644 --- a/docs/faq/environment/index.html +++ b/docs/faq/environment/index.html @@ -6,7 +6,7 @@ - Environment - Javet 3.0.3 documentation + Environment - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -359,7 +360,7 @@

      Environment +

  • diff --git a/docs/faq/index.html b/docs/faq/index.html index 059a078dc..013362221 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -6,7 +6,7 @@ - FAQ - Javet 3.0.3 documentation + FAQ - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -383,7 +384,7 @@

      FAQ#

  • - + diff --git a/docs/faq/troubleshooting/a_dynamic_link_library_dll_initialization_routine_failed.html b/docs/faq/troubleshooting/a_dynamic_link_library_dll_initialization_routine_failed.html index d56ba2ef1..42897131a 100644 --- a/docs/faq/troubleshooting/a_dynamic_link_library_dll_initialization_routine_failed.html +++ b/docs/faq/troubleshooting/a_dynamic_link_library_dll_initialization_routine_failed.html @@ -6,7 +6,7 @@ - A dynamic link library (DLL) initialization routine failed - Javet 3.0.3 documentation + A dynamic link library (DLL) initialization routine failed - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -355,7 +356,7 @@

      A dynamic link library (DLL) initialization routine failed +

  • diff --git a/docs/faq/troubleshooting/can_i18n_be_supported.html b/docs/faq/troubleshooting/can_i18n_be_supported.html index 40b49e5a3..10ca79c48 100644 --- a/docs/faq/troubleshooting/can_i18n_be_supported.html +++ b/docs/faq/troubleshooting/can_i18n_be_supported.html @@ -6,7 +6,7 @@ - Can i18n be Supported? - Javet 3.0.3 documentation + Can i18n be Supported? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -361,7 +362,7 @@

      Can i18n be Supported?

  • - + diff --git a/docs/faq/troubleshooting/can_i_debug_javet_in_chrome_dev_tools.html b/docs/faq/troubleshooting/can_i_debug_javet_in_chrome_dev_tools.html index c798350d9..d7e8c04ca 100644 --- a/docs/faq/troubleshooting/can_i_debug_javet_in_chrome_dev_tools.html +++ b/docs/faq/troubleshooting/can_i_debug_javet_in_chrome_dev_tools.html @@ -6,7 +6,7 @@ - Can I Debug Javet in Chrome DevTools? - Javet 3.0.3 documentation + Can I Debug Javet in Chrome DevTools? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -356,7 +357,7 @@

      Can I Debug Javet in Chrome DevTools? +

  • diff --git a/docs/faq/troubleshooting/index.html b/docs/faq/troubleshooting/index.html index f41d61f31..77b165d79 100644 --- a/docs/faq/troubleshooting/index.html +++ b/docs/faq/troubleshooting/index.html @@ -6,7 +6,7 @@ - Troubleshooting - Javet 3.0.3 documentation + Troubleshooting - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -363,7 +364,7 @@

      Troubleshooting +

  • diff --git a/docs/faq/troubleshooting/sigsegv_at_createv8runtime_in_v8_mode_on_aws.html b/docs/faq/troubleshooting/sigsegv_at_createv8runtime_in_v8_mode_on_aws.html index 5d767b8fc..fbbaf5146 100644 --- a/docs/faq/troubleshooting/sigsegv_at_createv8runtime_in_v8_mode_on_aws.html +++ b/docs/faq/troubleshooting/sigsegv_at_createv8runtime_in_v8_mode_on_aws.html @@ -6,7 +6,7 @@ - SIGSEGV at createV8Runtime() in V8 Mode on AWS - Javet 3.0.3 documentation + SIGSEGV at createV8Runtime() in V8 Mode on AWS - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -455,7 +456,7 @@

      Solution 2: Set Environment Variable JAVET_DISABLE_PKU

  • - + diff --git a/docs/faq/troubleshooting/why_node_js_crashes_when_being_closed.html b/docs/faq/troubleshooting/why_node_js_crashes_when_being_closed.html index 85d2999a7..984f2f731 100644 --- a/docs/faq/troubleshooting/why_node_js_crashes_when_being_closed.html +++ b/docs/faq/troubleshooting/why_node_js_crashes_when_being_closed.html @@ -6,7 +6,7 @@ - Why Node.js Crashes When being Closed? - Javet 3.0.3 documentation + Why Node.js Crashes When being Closed? - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -419,7 +420,7 @@

      NodeRuntime.lowMemoryNotification() +

  • diff --git a/docs/genindex.html b/docs/genindex.html index 8da388b13..207202b16 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -4,7 +4,7 @@ - Index - Javet 3.0.3 documentation + Index - Javet 3.0.4 documentation @@ -123,7 +123,7 @@
    @@ -149,7 +149,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -198,6 +198,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -335,7 +336,7 @@

      Index

  • - + diff --git a/docs/index.html b/docs/index.html index 908a645bf..4d838212b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,7 +6,7 @@ - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -305,9 +306,9 @@

      Javet#

      Maven Central Discord Donate

      -

      Linux x86_64 Build MacOS x86_64 Build Android Build

      +

      Linux x86_64 Build MacOS x86_64 Build MacOS arm64 Build Android Build

      Javet is Java + V8 (JAVa + V + EighT). It is an awesome way of embedding Node.js and V8 in Java.

      -

      If you like my work, please Star this project. And, you may follow me @sjtucaocao, or visit https://sjtucaocao.medium.com/ or https://caoccao.blogspot.com/. And the official support channel is at discord.

      +

      If you like my work, please Star this project. And, you may follow me @sjtucaocao, or visit https://blog.caoccao.com/ or https://caoccao.blogspot.com/. And the official support channel is at discord.

      ๐Ÿ’– If you like my work, please donate to support me. If you have a retired Mac OS (x86_64) device and are fine with mailing it to me, that will be great because I don't have such device to support the community. Thank you for supporting Javet.

      @@ -351,7 +352,7 @@

      Major Features -
    • Node.js v20.11.0 + V8 v12.1.285.26

    • +
    • Node.js v20.11.1 + V8 v12.2.281.16

    • Dynamic switch between Node.js and V8 mode (Which mode do you prefer?)

    • Polyfill V8 mode with Javenode

    • V8 API exposure in JVM

    • @@ -374,40 +375,40 @@

      Maven#< <dependency> <groupId>com.caoccao.javet</groupId> <artifactId>javet</artifactId> - <version>3.0.3</version> + <version>3.0.4</version> </dependency> <!-- Linux (arm64) --> <dependency> <groupId>com.caoccao.javet</groupId> <artifactId>javet-linux-arm64</artifactId> - <version>3.0.3</version> + <version>3.0.4</version> </dependency> <!-- Mac OS (x86_64 and arm64) --> <dependency> <groupId>com.caoccao.javet</groupId> <artifactId>javet-macos</artifactId> - <version>3.0.3</version> + <version>3.0.4</version> </dependency>

  • Gradle Kotlin DSL#

    -
    implementation("com.caoccao.javet:javet:3.0.3") // Linux and Windows (x86_64)
    -implementation("com.caoccao.javet:javet-linux-arm64:3.0.3") // Linux (arm64)
    -implementation("com.caoccao.javet:javet-macos:3.0.3") // Mac OS (x86_64 and arm64)
    -implementation("com.caoccao.javet:javet-android:3.0.3") // Android (arm, arm64, x86 and x86_64)
    +
    implementation("com.caoccao.javet:javet:3.0.4") // Linux and Windows (x86_64)
    +implementation("com.caoccao.javet:javet-linux-arm64:3.0.4") // Linux (arm64)
    +implementation("com.caoccao.javet:javet-macos:3.0.4") // Mac OS (x86_64 and arm64)
    +implementation("com.caoccao.javet:javet-android:3.0.4") // Android (arm, arm64, x86 and x86_64)
     

    Gradle Groovy DSL#

    -
    implementation 'com.caoccao.javet:javet:3.0.3' // Linux and Windows (x86_64)
    -implementation 'com.caoccao.javet:javet-linux-arm64:3.0.3' // Linux (arm64)
    -implementation 'com.caoccao.javet:javet-macos:3.0.3' // Mac OS (x86_64 and arm64)
    -implementation 'com.caoccao.javet:javet-android:3.0.3' // Android (arm, arm64, x86 and x86_64)
    +
    implementation 'com.caoccao.javet:javet:3.0.4' // Linux and Windows (x86_64)
    +implementation 'com.caoccao.javet:javet-linux-arm64:3.0.4' // Linux (arm64)
    +implementation 'com.caoccao.javet:javet-macos:3.0.4' // Mac OS (x86_64 and arm64)
    +implementation 'com.caoccao.javet:javet-android:3.0.4' // Android (arm, arm64, x86 and x86_64)
     
    @@ -438,10 +439,10 @@

    License#<

    Blog#

    @@ -529,7 +530,7 @@

    Documents + diff --git a/docs/index.rst b/docs/index.rst index c6ad05209..07accfb2a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,6 +1,6 @@ .. include:: ../README.rst :start-line: 0 - :end-line: 144 + :end-line: 147 .. toctree:: :maxdepth: 2 diff --git a/docs/reference/converters/bridge_converter.html b/docs/reference/converters/bridge_converter.html index 2765640cc..48d023046 100644 --- a/docs/reference/converters/bridge_converter.html +++ b/docs/reference/converters/bridge_converter.html @@ -6,7 +6,7 @@ - Bridge Converter - Javet 3.0.3 documentation + Bridge Converter - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -493,7 +494,7 @@

      How to Cast Java Objects to JavaScript Objects? +

  • diff --git a/docs/reference/converters/custom_converter.html b/docs/reference/converters/custom_converter.html index 3b315de5f..fba869330 100644 --- a/docs/reference/converters/custom_converter.html +++ b/docs/reference/converters/custom_converter.html @@ -3,10 +3,10 @@ - + - Custom Converter - Javet 3.0.3 documentation + Custom Converter - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
  • diff --git a/docs/reference/converters/index.html b/docs/reference/converters/index.html index 9296598da..d5312b6a8 100644 --- a/docs/reference/converters/index.html +++ b/docs/reference/converters/index.html @@ -6,7 +6,7 @@ - Converters - Javet 3.0.3 documentation + Converters - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
  • @@ -503,7 +505,7 @@

    Can Built-in Converter be Ignored? + diff --git a/docs/reference/converters/index.rst b/docs/reference/converters/index.rst index b0ca9cbf1..21317862c 100644 --- a/docs/reference/converters/index.rst +++ b/docs/reference/converters/index.rst @@ -11,6 +11,7 @@ Converters proxy_converter bridge_converter custom_converter + proxy_plugins Comparisons =========== diff --git a/docs/reference/converters/object_converter.html b/docs/reference/converters/object_converter.html index 91c1ca350..cbd2de5af 100644 --- a/docs/reference/converters/object_converter.html +++ b/docs/reference/converters/object_converter.html @@ -6,7 +6,7 @@ - Object Converter - Javet 3.0.3 documentation + Object Converter - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -620,7 +621,7 @@

      How does It Work? +

  • diff --git a/docs/reference/converters/primitive_converter.html b/docs/reference/converters/primitive_converter.html index 195280fa0..d17ceae4c 100644 --- a/docs/reference/converters/primitive_converter.html +++ b/docs/reference/converters/primitive_converter.html @@ -6,7 +6,7 @@ - Primitive Converter - Javet 3.0.3 documentation + Primitive Converter - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -462,7 +463,7 @@

      From JavaScript to Java

  • - + diff --git a/docs/reference/converters/proxy_converter.html b/docs/reference/converters/proxy_converter.html index c5c1ee4ce..8ac501207 100644 --- a/docs/reference/converters/proxy_converter.html +++ b/docs/reference/converters/proxy_converter.html @@ -6,7 +6,7 @@ - Proxy Converter - Javet 3.0.3 documentation + Proxy Converter - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
  • Proxy Converter
  • Bridge Converter
  • Custom Converter
  • +
  • Proxy Plugins
  • Resource Management
      @@ -873,7 +874,7 @@

      How to Customize JavetProxyConverter? +

  • diff --git a/docs/reference/converters/proxy_plugins.html b/docs/reference/converters/proxy_plugins.html new file mode 100644 index 000000000..35f4e0ece --- /dev/null +++ b/docs/reference/converters/proxy_plugins.html @@ -0,0 +1,590 @@ + + + + + + + + + Proxy Plugins - Javet 3.0.4 documentation + + + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    + +
    + +
    + +
    +
    +
    +

    Proxy Plugins#

    +

    The proxy converter and its derived converters support proxy plugins that have the following features.

    +
      +
    • Conversion for the particular Java types can be easily turned on or off by the plugins.

    • +
    • The plugins can extend the capabilities of the particular Java types to simulate the native JS types.

    • +
    • The public Java fields and methods are available as well.

    • +
    +
    +

    Built-in Proxy Plugins#

    +

    The built-in proxy plugins provide the basic support. They are turned off by default in the JavetProxyConverter, and turned on by default in the JavetBridgeConverter. They can be easily turned on or off once the converter is created to allow fine-grained control over the conversion.

    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    Plugin

    Types

    JavetProxyPluginDefault

    BigInteger, Boolean, Byte, Character, Double, Float, Integer, Long, Short, String, ZonedDateTime.

    JavetProxyPluginArray

    boolean[], byte[], char[], double[], float[], int[], long[], short[], Object[].

    JavetProxyPluginList

    List<?>

    JavetProxyPluginMap

    Map<?, ?>

    JavetProxyPluginSet

    Set<?>

    +
    +
    +

    JavetProxyPluginDefault#

    +

    The default plugin maps all primitive types, BigInteger, String and ZonedDateTime to their corresponding JS types.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Java Type

    JS Type

    BigInteger

    bigint

    Boolean

    boolean

    Byte

    number

    Character

    string

    Double

    number

    Float

    number

    Integer

    number

    Long

    bigint

    Short

    number

    String

    string

    ZonedDateTime

    Date

    +
    +
    // 2n**65n
    +BigInteger bigInteger = new BigInteger("36893488147419103232");
    +v8Runtime.getGlobalObject().set("l", bigInteger);
    +assertEquals(
    +    bigInteger.add(new BigInteger("1")),
    +    v8Runtime.getExecutor("1n + l").executeBigInteger());
    +v8Runtime.getGlobalObject().delete("l");
    +
    +
    +
    +
    +

    JavetProxyPluginArray#

    +

    The array plugin maps all primitive arrays and object arrays to the JS array.

    +
    int[] intArray = new int[]{1, 2};
    +v8Runtime.getGlobalObject().set("intArray", intArray);
    +assertSame(intArray, v8Runtime.getGlobalObject().getObject("intArray"));
    +assertTrue(v8Runtime.getExecutor("Array.isArray(intArray)").executeBoolean());
    +assertTrue(v8Runtime.getExecutor("0 in intArray").executeBoolean());
    +assertFalse(v8Runtime.getExecutor("2 in intArray").executeBoolean());
    +assertEquals("Array", v8Runtime.getExecutor("intArray.constructor.name").executeString());
    +assertEquals(
    +        "[1,2]",
    +        v8Runtime.getExecutor("JSON.stringify(intArray)").executeString());
    +assertEquals(
    +        "[[0,1],[1,2]]",
    +        v8Runtime.getExecutor("JSON.stringify([...intArray.entries()])").executeString());
    +assertEquals(3, v8Runtime.getExecutor("intArray[0] = 3; intArray[0]").executeInteger());
    +assertEquals(1, v8Runtime.getExecutor("intArray[0] = 1; intArray[0]").executeInteger());
    +assertEquals(2, v8Runtime.getExecutor("intArray.length").executeInteger());
    +v8Runtime.getGlobalObject().delete("intArray");
    +
    +
    +
    +
    +

    JavetProxyPluginList#

    +

    The list plugin maps List<?> to the JS array.

    +
    List<Object> list = SimpleList.of("x", "y");
    +v8Runtime.getGlobalObject().set("list", list);
    +assertTrue(v8Runtime.getExecutor("Array.isArray(list)").executeBoolean());
    +assertEquals("Array", v8Runtime.getExecutor("list.constructor.name").executeString());
    +assertTrue(v8Runtime.getExecutor("0 in list").executeBoolean());
    +assertFalse(v8Runtime.getExecutor("2 in list").executeBoolean());
    +assertTrue(v8Runtime.getExecutor("list.contains('x')").executeBoolean());
    +assertTrue(v8Runtime.getExecutor("list.contains('y')").executeBoolean());
    +assertFalse(v8Runtime.getExecutor("list.contains('z')").executeBoolean());
    +assertEquals(4, v8Runtime.getExecutor("list.push('z', '1')").executeInteger());
    +assertEquals("1", v8Runtime.getExecutor("list.pop()").executeString());
    +assertEquals(
    +        "[\"x\",\"y\",\"z\"]",
    +        v8Runtime.getExecutor("JSON.stringify(list)").executeString());
    +v8Runtime.getGlobalObject().delete("list");
    +
    +
    +
    +
    +

    JavetProxyPluginMap#

    +

    The map plugin maps Map<?, ?> to the JS object.

    +
    Map<String, Object> map = SimpleMap.of("x", 1, "y", "2");
    +v8Runtime.getGlobalObject().set("map", map);
    +assertTrue(v8Runtime.getExecutor("map.containsKey('x')").executeBoolean());
    +assertEquals("Object", v8Runtime.getExecutor("map.constructor.name").executeString());
    +assertTrue(v8Runtime.getExecutor("'x' in map").executeBoolean());
    +assertFalse(v8Runtime.getExecutor("1 in map").executeBoolean());
    +assertEquals(1, v8Runtime.getExecutor("map['x']").executeInteger());
    +assertEquals("2", v8Runtime.getExecutor("map['y']").executeString());
    +assertEquals(1, v8Runtime.getExecutor("map.x").executeInteger());
    +assertEquals("2", v8Runtime.getExecutor("map.y").executeString());
    +assertEquals(
    +        "[\"x\",\"y\",\"z\"]",
    +        v8Runtime.getExecutor("JSON.stringify(Object.getOwnPropertyNames(map).sort());").executeString());
    +assertEquals(
    +        "[[\"x\",1],[\"y\",\"2\"],[\"z\",\"4\"]]",
    +        v8Runtime.getExecutor("JSON.stringify([...map.entries()].sort((a,b)=>a[0]-b[0]));").executeString());
    +v8Runtime.getGlobalObject().delete("map");
    +
    +
    +
    +
    +

    JavetProxyPluginSet#

    +

    The set plugin maps Set<?> to the JS Set.

    +
    Set<String> set = SimpleSet.of("x", "y");
    +v8Runtime.getGlobalObject().set("set", set);
    +assertEquals("Set", v8Runtime.getExecutor("set.constructor.name").executeString());
    +assertTrue(v8Runtime.getExecutor("'x' in set").executeBoolean());
    +assertFalse(v8Runtime.getExecutor("1 in set").executeBoolean());
    +assertTrue(v8Runtime.getExecutor("set.contains('x')").executeBoolean());
    +assertTrue(v8Runtime.getExecutor("set.contains('y')").executeBoolean());
    +assertFalse(v8Runtime.getExecutor("set.contains('z')").executeBoolean());
    +assertEquals(2, v8Runtime.getExecutor("set.size").executeInteger());
    +assertEquals(
    +        "[\"x\",\"y\",\"z\"]",
    +        v8Runtime.getExecutor("JSON.stringify(Object.getOwnPropertyNames(set).sort());").executeString());
    +v8Runtime.getGlobalObject().delete("set");
    +
    +
    +
    +
    +
    +

    Add or Remove Proxy Plugins#

    +

    The proxy plugins are stored in the JavetConverterConfig.

    +
    // Add a proxy plugin
    +converter.getConfig().getProxyPlugins().add(0, JavetProxyPluginList.getInstance());
    +// Remove a proxy plugin
    +converter.getConfig().getProxyPlugins().removeIf(p -> p instanceof JavetProxyPluginList);
    +
    +
    +
    +
    +

    Create a New Proxy Plugin#

    +

    There are typically two ways to create a new proxy plugin.

    +
      +
    • Implement IClassProxyPlugin from scratch.

    • +
    • Subclass an existing proxy plugin.

    • +
    +

    It's recommended to review the source code of the built-in proxy plugins to learn how to create your own proxy plugin.

    +
    +
    + +
    +
    + +
    + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/reference/converters/proxy_plugins.rst b/docs/reference/converters/proxy_plugins.rst new file mode 100644 index 000000000..2971a6503 --- /dev/null +++ b/docs/reference/converters/proxy_plugins.rst @@ -0,0 +1,171 @@ +============= +Proxy Plugins +============= + +The proxy converter and its derived converters support proxy plugins that have the following features. + +* Conversion for the particular Java types can be easily turned on or off by the plugins. +* The plugins can extend the capabilities of the particular Java types to simulate the native JS types. +* The public Java fields and methods are available as well. + +Built-in Proxy Plugins +====================== + +The built-in proxy plugins provide the basic support. They are turned off by default in the ``JavetProxyConverter``, and turned on by default in the ``JavetBridgeConverter``. They can be easily turned on or off once the converter is created to allow fine-grained control over the conversion. + +========================= ================================================================================================================================================ +Plugin Types +========================= ================================================================================================================================================ +JavetProxyPluginDefault ``BigInteger``, ``Boolean``, ``Byte``, ``Character``, ``Double``, ``Float``, ``Integer``, ``Long``, ``Short``, ``String``, ``ZonedDateTime``. +JavetProxyPluginArray ``boolean[]``, ``byte[]``, ``char[]``, ``double[]``, ``float[]``, ``int[]``, ``long[]``, ``short[]``, ``Object[]``. +JavetProxyPluginList ``List`` +JavetProxyPluginMap ``Map`` +JavetProxyPluginSet ``Set`` +========================= ================================================================================================================================================ + +JavetProxyPluginDefault +----------------------- + +The default plugin maps all primitive types, ``BigInteger``, ``String`` and ``ZonedDateTime`` to their corresponding JS types. + +=================== ==================== +Java Type JS Type +=================== ==================== +``BigInteger`` ``bigint`` +``Boolean`` ``boolean`` +``Byte`` ``number`` +``Character`` ``string`` +``Double`` ``number`` +``Float`` ``number`` +``Integer`` ``number`` +``Long`` ``bigint`` +``Short`` ``number`` +``String`` ``string`` +``ZonedDateTime`` ``Date`` +=================== ==================== + +.. code-block:: java + + // 2n**65n + BigInteger bigInteger = new BigInteger("36893488147419103232"); + v8Runtime.getGlobalObject().set("l", bigInteger); + assertEquals( + bigInteger.add(new BigInteger("1")), + v8Runtime.getExecutor("1n + l").executeBigInteger()); + v8Runtime.getGlobalObject().delete("l"); + +JavetProxyPluginArray +--------------------- + +The array plugin maps all primitive arrays and object arrays to the JS ``array``. + +.. code-block:: java + + int[] intArray = new int[]{1, 2}; + v8Runtime.getGlobalObject().set("intArray", intArray); + assertSame(intArray, v8Runtime.getGlobalObject().getObject("intArray")); + assertTrue(v8Runtime.getExecutor("Array.isArray(intArray)").executeBoolean()); + assertTrue(v8Runtime.getExecutor("0 in intArray").executeBoolean()); + assertFalse(v8Runtime.getExecutor("2 in intArray").executeBoolean()); + assertEquals("Array", v8Runtime.getExecutor("intArray.constructor.name").executeString()); + assertEquals( + "[1,2]", + v8Runtime.getExecutor("JSON.stringify(intArray)").executeString()); + assertEquals( + "[[0,1],[1,2]]", + v8Runtime.getExecutor("JSON.stringify([...intArray.entries()])").executeString()); + assertEquals(3, v8Runtime.getExecutor("intArray[0] = 3; intArray[0]").executeInteger()); + assertEquals(1, v8Runtime.getExecutor("intArray[0] = 1; intArray[0]").executeInteger()); + assertEquals(2, v8Runtime.getExecutor("intArray.length").executeInteger()); + v8Runtime.getGlobalObject().delete("intArray"); + +JavetProxyPluginList +-------------------- + +The list plugin maps ``List`` to the JS ``array``. + +.. code-block:: java + + List list = SimpleList.of("x", "y"); + v8Runtime.getGlobalObject().set("list", list); + assertTrue(v8Runtime.getExecutor("Array.isArray(list)").executeBoolean()); + assertEquals("Array", v8Runtime.getExecutor("list.constructor.name").executeString()); + assertTrue(v8Runtime.getExecutor("0 in list").executeBoolean()); + assertFalse(v8Runtime.getExecutor("2 in list").executeBoolean()); + assertTrue(v8Runtime.getExecutor("list.contains('x')").executeBoolean()); + assertTrue(v8Runtime.getExecutor("list.contains('y')").executeBoolean()); + assertFalse(v8Runtime.getExecutor("list.contains('z')").executeBoolean()); + assertEquals(4, v8Runtime.getExecutor("list.push('z', '1')").executeInteger()); + assertEquals("1", v8Runtime.getExecutor("list.pop()").executeString()); + assertEquals( + "[\"x\",\"y\",\"z\"]", + v8Runtime.getExecutor("JSON.stringify(list)").executeString()); + v8Runtime.getGlobalObject().delete("list"); + +JavetProxyPluginMap +------------------- + +The map plugin maps ``Map`` to the JS ``object``. + +.. code-block:: java + + Map map = SimpleMap.of("x", 1, "y", "2"); + v8Runtime.getGlobalObject().set("map", map); + assertTrue(v8Runtime.getExecutor("map.containsKey('x')").executeBoolean()); + assertEquals("Object", v8Runtime.getExecutor("map.constructor.name").executeString()); + assertTrue(v8Runtime.getExecutor("'x' in map").executeBoolean()); + assertFalse(v8Runtime.getExecutor("1 in map").executeBoolean()); + assertEquals(1, v8Runtime.getExecutor("map['x']").executeInteger()); + assertEquals("2", v8Runtime.getExecutor("map['y']").executeString()); + assertEquals(1, v8Runtime.getExecutor("map.x").executeInteger()); + assertEquals("2", v8Runtime.getExecutor("map.y").executeString()); + assertEquals( + "[\"x\",\"y\",\"z\"]", + v8Runtime.getExecutor("JSON.stringify(Object.getOwnPropertyNames(map).sort());").executeString()); + assertEquals( + "[[\"x\",1],[\"y\",\"2\"],[\"z\",\"4\"]]", + v8Runtime.getExecutor("JSON.stringify([...map.entries()].sort((a,b)=>a[0]-b[0]));").executeString()); + v8Runtime.getGlobalObject().delete("map"); + +JavetProxyPluginSet +------------------- + +The set plugin maps ``Set`` to the JS ``Set``. + +.. code-block:: java + + Set set = SimpleSet.of("x", "y"); + v8Runtime.getGlobalObject().set("set", set); + assertEquals("Set", v8Runtime.getExecutor("set.constructor.name").executeString()); + assertTrue(v8Runtime.getExecutor("'x' in set").executeBoolean()); + assertFalse(v8Runtime.getExecutor("1 in set").executeBoolean()); + assertTrue(v8Runtime.getExecutor("set.contains('x')").executeBoolean()); + assertTrue(v8Runtime.getExecutor("set.contains('y')").executeBoolean()); + assertFalse(v8Runtime.getExecutor("set.contains('z')").executeBoolean()); + assertEquals(2, v8Runtime.getExecutor("set.size").executeInteger()); + assertEquals( + "[\"x\",\"y\",\"z\"]", + v8Runtime.getExecutor("JSON.stringify(Object.getOwnPropertyNames(set).sort());").executeString()); + v8Runtime.getGlobalObject().delete("set"); + +Add or Remove Proxy Plugins +=========================== + +The proxy plugins are stored in the ``JavetConverterConfig``. + +.. code-block:: java + + // Add a proxy plugin + converter.getConfig().getProxyPlugins().add(0, JavetProxyPluginList.getInstance()); + // Remove a proxy plugin + converter.getConfig().getProxyPlugins().removeIf(p -> p instanceof JavetProxyPluginList); + +Create a New Proxy Plugin +========================= + +There are typically two ways to create a new proxy plugin. + +* Implement ``IClassProxyPlugin`` from scratch. +* Subclass an existing proxy plugin. + +It's recommended to review the source code of the built-in proxy plugins to learn how to create your own proxy plugin. diff --git a/docs/reference/index.html b/docs/reference/index.html index 56a51a2b9..e68051854 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -6,7 +6,7 @@ - Reference - Javet 3.0.3 documentation + Reference - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
    @@ -151,7 +151,7 @@
    - Javet 3.0.3 documentation + Javet 3.0.4 documentation
    diff --git a/docs/reference/javadoc/allclasses-frame.html b/docs/reference/javadoc/allclasses-frame.html index 919ed9724..c96821103 100644 --- a/docs/reference/javadoc/allclasses-frame.html +++ b/docs/reference/javadoc/allclasses-frame.html @@ -3,7 +3,7 @@ -All Classes (javet-linux-arm64 3.0.3 API) +All Classes (javet-linux-arm64 3.0.4 API) @@ -18,6 +18,9 @@

    All Classes

  • BaseJavetDirectProxyHandler
  • BaseJavetInterceptor
  • BaseJavetProxyHandler
  • +
  • BaseJavetProxyPlugin
  • +
  • BaseJavetProxyPluginMultiple
  • +
  • BaseJavetProxyPluginSingle
  • BaseJavetProxySymbolConverter
  • BaseJavetReflectionProxyHandler
  • BaseJavetReflectionProxyInvocationHandler
  • @@ -25,8 +28,12 @@

    All Classes

  • BaseNodeModule
  • BaseV8Executor
  • BindingContext
  • +
  • BindingContextStore
  • CheckReturnValue
  • ClassDescriptor
  • +
  • ClassDescriptorStore
  • +
  • IClassProxyPlugin
  • +
  • IClassProxyPluginFunction
  • IEnumBitset
  • IJavaFunction
  • IJavaSupplier
  • @@ -51,16 +58,20 @@

    All Classes

  • IJavetEngine
  • IJavetEngineGuard
  • IJavetEnginePool
  • +
  • IJavetEntityError
  • IJavetEntityFunction
  • IJavetEntityMap
  • +
  • IJavetEntityObject
  • +
  • IJavetEntityPropertyDescriptor
  • +
  • IJavetEntitySymbol
  • IJavetGCCallback
  • IJavetInterceptor
  • IJavetLibLoadingListener
  • IJavetLogger
  • IJavetMappable
  • +
  • IJavetNonProxy
  • IJavetPromiseRejectCallback
  • IJavetProxyHandler
  • -
  • IJavetProxyPolyfillFunction
  • IJavetProxySymbolConverter
  • IJavetReflectionObjectFactory
  • IJavetResettable
  • @@ -94,7 +105,10 @@

    All Classes

  • IV8ValueIterator
  • IV8ValueKeyContainer
  • IV8ValueMap
  • +
  • IV8ValueNonProxyable
  • IV8ValueObject
  • +
  • IV8ValuePrimitiveObject
  • +
  • IV8ValuePrimitiveValue
  • IV8ValuePromise
  • IV8ValuePromise.IListener
  • IV8ValueProxy
  • @@ -118,8 +132,11 @@

    All Classes

  • JavetEngineGuard
  • JavetEnginePool
  • JavetEngineUsage
  • +
  • JavetEntityError
  • JavetEntityFunction
  • JavetEntityMap
  • +
  • JavetEntityObject
  • +
  • JavetEntityPropertyDescriptor
  • JavetEntitySymbol
  • JavetError
  • JavetErrorType
  • @@ -136,8 +153,12 @@

    All Classes

  • JavetPromiseRejectCallback
  • JavetPromiseRejectEvent
  • JavetProxyConverter
  • -
  • JavetProxySymbolIterableConverter
  • -
  • JavetProxySymbolToPrimitiveConverter
  • +
  • JavetProxyPluginArray
  • +
  • JavetProxyPluginClass
  • +
  • JavetProxyPluginDefault
  • +
  • JavetProxyPluginList
  • +
  • JavetProxyPluginMap
  • +
  • JavetProxyPluginSet
  • JavetReflectionProxyClassHandler
  • JavetReflectionProxyFactory
  • JavetReflectionProxyFunctionHandler
  • @@ -180,6 +201,7 @@

    All Classes

  • V8ConversionMode
  • V8Convert
  • V8Data
  • +
  • V8ErrorTemplate
  • V8FileExecutor
  • V8Flags
  • V8Function
  • @@ -219,22 +241,30 @@

    All Classes

  • V8ValueArray
  • V8ValueArrayBuffer
  • V8ValueBigInteger
  • +
  • V8ValueBigNumber
  • V8ValueBoolean
  • +
  • V8ValueBooleanObject
  • V8ValueBuiltInJson
  • V8ValueBuiltInObject
  • V8ValueBuiltInPromise
  • +
  • V8ValueBuiltInReflect
  • V8ValueBuiltInSymbol
  • V8ValueDataView
  • V8ValueDouble
  • +
  • V8ValueDoubleObject
  • V8ValueError
  • +
  • V8ValueErrorType
  • V8ValueFunction
  • V8ValueGlobalObject
  • V8ValueInteger
  • +
  • V8ValueIntegerObject
  • V8ValueInternalType
  • V8ValueIterator
  • V8ValueLong
  • +
  • V8ValueLongObject
  • V8ValueMap
  • V8ValueNull
  • +
  • V8ValueNumber
  • V8ValueObject
  • V8ValuePrimitive
  • V8ValuePromise
  • @@ -245,6 +275,7 @@

    All Classes

  • V8ValueSet
  • V8ValueSharedArrayBuffer
  • V8ValueString
  • +
  • V8ValueStringObject
  • V8ValueSymbol
  • V8ValueSymbolObject
  • V8ValueSymbolType
  • diff --git a/docs/reference/javadoc/allclasses-noframe.html b/docs/reference/javadoc/allclasses-noframe.html index db541378a..8a4b382e0 100644 --- a/docs/reference/javadoc/allclasses-noframe.html +++ b/docs/reference/javadoc/allclasses-noframe.html @@ -3,7 +3,7 @@ -All Classes (javet-linux-arm64 3.0.3 API) +All Classes (javet-linux-arm64 3.0.4 API) @@ -18,6 +18,9 @@

    All Classes

  • BaseJavetDirectProxyHandler
  • BaseJavetInterceptor
  • BaseJavetProxyHandler
  • +
  • BaseJavetProxyPlugin
  • +
  • BaseJavetProxyPluginMultiple
  • +
  • BaseJavetProxyPluginSingle
  • BaseJavetProxySymbolConverter
  • BaseJavetReflectionProxyHandler
  • BaseJavetReflectionProxyInvocationHandler
  • @@ -25,8 +28,12 @@

    All Classes

  • BaseNodeModule
  • BaseV8Executor
  • BindingContext
  • +
  • BindingContextStore
  • CheckReturnValue
  • ClassDescriptor
  • +
  • ClassDescriptorStore
  • +
  • IClassProxyPlugin
  • +
  • IClassProxyPluginFunction
  • IEnumBitset
  • IJavaFunction
  • IJavaSupplier
  • @@ -51,16 +58,20 @@

    All Classes

  • IJavetEngine
  • IJavetEngineGuard
  • IJavetEnginePool
  • +
  • IJavetEntityError
  • IJavetEntityFunction
  • IJavetEntityMap
  • +
  • IJavetEntityObject
  • +
  • IJavetEntityPropertyDescriptor
  • +
  • IJavetEntitySymbol
  • IJavetGCCallback
  • IJavetInterceptor
  • IJavetLibLoadingListener
  • IJavetLogger
  • IJavetMappable
  • +
  • IJavetNonProxy
  • IJavetPromiseRejectCallback
  • IJavetProxyHandler
  • -
  • IJavetProxyPolyfillFunction
  • IJavetProxySymbolConverter
  • IJavetReflectionObjectFactory
  • IJavetResettable
  • @@ -94,7 +105,10 @@

    All Classes

  • IV8ValueIterator
  • IV8ValueKeyContainer
  • IV8ValueMap
  • +
  • IV8ValueNonProxyable
  • IV8ValueObject
  • +
  • IV8ValuePrimitiveObject
  • +
  • IV8ValuePrimitiveValue
  • IV8ValuePromise
  • IV8ValuePromise.IListener
  • IV8ValueProxy
  • @@ -118,8 +132,11 @@

    All Classes

  • JavetEngineGuard
  • JavetEnginePool
  • JavetEngineUsage
  • +
  • JavetEntityError
  • JavetEntityFunction
  • JavetEntityMap
  • +
  • JavetEntityObject
  • +
  • JavetEntityPropertyDescriptor
  • JavetEntitySymbol
  • JavetError
  • JavetErrorType
  • @@ -136,8 +153,12 @@

    All Classes

  • JavetPromiseRejectCallback
  • JavetPromiseRejectEvent
  • JavetProxyConverter
  • -
  • JavetProxySymbolIterableConverter
  • -
  • JavetProxySymbolToPrimitiveConverter
  • +
  • JavetProxyPluginArray
  • +
  • JavetProxyPluginClass
  • +
  • JavetProxyPluginDefault
  • +
  • JavetProxyPluginList
  • +
  • JavetProxyPluginMap
  • +
  • JavetProxyPluginSet
  • JavetReflectionProxyClassHandler
  • JavetReflectionProxyFactory
  • JavetReflectionProxyFunctionHandler
  • @@ -180,6 +201,7 @@

    All Classes

  • V8ConversionMode
  • V8Convert
  • V8Data
  • +
  • V8ErrorTemplate
  • V8FileExecutor
  • V8Flags
  • V8Function
  • @@ -219,22 +241,30 @@

    All Classes

  • V8ValueArray
  • V8ValueArrayBuffer
  • V8ValueBigInteger
  • +
  • V8ValueBigNumber
  • V8ValueBoolean
  • +
  • V8ValueBooleanObject
  • V8ValueBuiltInJson
  • V8ValueBuiltInObject
  • V8ValueBuiltInPromise
  • +
  • V8ValueBuiltInReflect
  • V8ValueBuiltInSymbol
  • V8ValueDataView
  • V8ValueDouble
  • +
  • V8ValueDoubleObject
  • V8ValueError
  • +
  • V8ValueErrorType
  • V8ValueFunction
  • V8ValueGlobalObject
  • V8ValueInteger
  • +
  • V8ValueIntegerObject
  • V8ValueInternalType
  • V8ValueIterator
  • V8ValueLong
  • +
  • V8ValueLongObject
  • V8ValueMap
  • V8ValueNull
  • +
  • V8ValueNumber
  • V8ValueObject
  • V8ValuePrimitive
  • V8ValuePromise
  • @@ -245,6 +275,7 @@

    All Classes

  • V8ValueSet
  • V8ValueSharedArrayBuffer
  • V8ValueString
  • +
  • V8ValueStringObject
  • V8ValueSymbol
  • V8ValueSymbolObject
  • V8ValueSymbolType
  • diff --git a/docs/reference/javadoc/com/caoccao/javet/annotations/CheckReturnValue.html b/docs/reference/javadoc/com/caoccao/javet/annotations/CheckReturnValue.html index 70396a421..aebcada8e 100644 --- a/docs/reference/javadoc/com/caoccao/javet/annotations/CheckReturnValue.html +++ b/docs/reference/javadoc/com/caoccao/javet/annotations/CheckReturnValue.html @@ -3,7 +3,7 @@ -CheckReturnValue (javet-linux-arm64 3.0.3 API) +CheckReturnValue (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/annotations/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/annotations/package-summary.html index 8f5051c00..8c09f05c9 100644 --- a/docs/reference/javadoc/com/caoccao/javet/annotations/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/annotations/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.annotations (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.annotations (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
    +
    com.caoccao.javet.entities
    +

    Class JavetEntityError

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • com.caoccao.javet.entities.JavetEntityError
      • +
      +
    • +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Fields 
        Modifier and TypeField and Description
        protected java.util.Map<java.lang.String,java.lang.Object>context +
        The Context.
        +
        protected java.lang.StringdetailedMessage +
        The Detailed message.
        +
        protected java.lang.Stringmessage +
        The Message.
        +
        protected java.lang.Stringstack +
        The Stack.
        +
        protected V8ValueErrorTypetype +
        The Type.
        +
        +
      • +
      + +
        +
      • + + +

        Constructor Summary

        + + + + + + + + +
        Constructors 
        Constructor and Description
        JavetEntityError(V8ValueErrorType type, + java.lang.String message, + java.lang.String detailedMessage, + java.lang.String stack) +
        Instantiates a new Javet entity error.
        +
        +
      • +
      + +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethod and Description
        java.util.Map<java.lang.String,java.lang.Object>getContext() +
        Gets context.
        +
        java.lang.StringgetDetailedMessage() +
        Gets detailed message.
        +
        java.lang.StringgetMessage() +
        Gets message.
        +
        java.lang.StringgetStack() +
        Gets stack.
        +
        V8ValueErrorTypegetType() +
        Gets type.
        +
        voidsetDetailedMessage(java.lang.String detailedMessage) +
        Sets detailed message.
        +
        voidsetMessage(java.lang.String message) +
        Sets message.
        +
        voidsetStack(java.lang.String stack) +
        Sets stack.
        +
        voidsetType(V8ValueErrorType type) +
        Sets type.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          context

          +
          protected final java.util.Map<java.lang.String,java.lang.Object> context
          +
          The Context.
          +
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          detailedMessage

          +
          protected java.lang.String detailedMessage
          +
          The Detailed message.
          +
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          message

          +
          protected java.lang.String message
          +
          The Message.
          +
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          stack

          +
          protected java.lang.String stack
          +
          The Stack.
          +
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + + +
      • +
      + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          JavetEntityError

          +
          public JavetEntityError(V8ValueErrorType type,
          +                        java.lang.String message,
          +                        java.lang.String detailedMessage,
          +                        java.lang.String stack)
          +
          Instantiates a new Javet entity error.
          +
          +
          Parameters:
          +
          type - the type
          +
          message - the message
          +
          detailedMessage - the detailed message
          +
          stack - the stack
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        +
      • +
      + + +
    • +
    +
    +
    + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntityFunction.html b/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntityFunction.html index aa7df7ba7..c277ca1ce 100644 --- a/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntityFunction.html +++ b/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntityFunction.html @@ -3,7 +3,7 @@ -JavetEntityFunction (javet-linux-arm64 3.0.3 API) +JavetEntityFunction (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
    +
    com.caoccao.javet.entities
    +

    Class JavetEntityObject<T>

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • com.caoccao.javet.entities.JavetEntityObject<T>
      • +
      +
    • +
    +
    +
      +
    • +
      +
      Type Parameters:
      +
      T - the type parameter
      +
      +
      +
      All Implemented Interfaces:
      +
      IJavetEntityObject<T>, IJavetNonProxy
      +
      +
      +
      +
      public class JavetEntityObject<T>
      +extends java.lang.Object
      +implements IJavetEntityObject<T>
      +
      The type Javet entity object is a container for arbitrary object.
      +
      +
      Since:
      +
      3.0.4
      +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Field Summary

        + + + + + + + + + + +
        Fields 
        Modifier and TypeField and Description
        protected Tvalue +
        The Value.
        +
        +
      • +
      + +
        +
      • + + +

        Constructor Summary

        + + + + + + + + +
        Constructors 
        Constructor and Description
        JavetEntityObject(T value) +
        Instantiates a new Javet entity object.
        +
        +
      • +
      + +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethod and Description
        TgetValue() +
        Gets value.
        +
        voidsetValue(T value) +
        Sets value.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          value

          +
          protected T value
          +
          The Value.
          +
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Constructor Detail

        + + + + + +
          +
        • +

          JavetEntityObject

          +
          public JavetEntityObject(T value)
          +
          Instantiates a new Javet entity object.
          +
          +
          Parameters:
          +
          value - the value
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        +
      • +
      + + +
    • +
    +
    +
    + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntityPropertyDescriptor.html b/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntityPropertyDescriptor.html new file mode 100644 index 000000000..b02adc428 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntityPropertyDescriptor.html @@ -0,0 +1,612 @@ + + + + + +JavetEntityPropertyDescriptor (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
    +
    com.caoccao.javet.entities
    +

    Class JavetEntityPropertyDescriptor<T>

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • com.caoccao.javet.entities.JavetEntityPropertyDescriptor<T>
      • +
      +
    • +
    +
    + +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          configurable

          +
          protected boolean configurable
          +
          The Configurable.
          +
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          enumerable

          +
          protected boolean enumerable
          +
          The Enumerable.
          +
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          value

          +
          protected T value
          +
          The Value.
          +
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          writable

          +
          protected boolean writable
          +
          The Writable.
          +
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          JavetEntityPropertyDescriptor

          +
          public JavetEntityPropertyDescriptor(boolean configurable,
          +                                     boolean enumerable,
          +                                     boolean writable)
          +
          Instantiates a new Javet entity property descriptor.
          +
          +
          Parameters:
          +
          configurable - the configurable
          +
          enumerable - the enumerable
          +
          writable - the writable
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + + + +
          +
        • +

          JavetEntityPropertyDescriptor

          +
          public JavetEntityPropertyDescriptor(boolean configurable,
          +                                     boolean enumerable,
          +                                     boolean writable,
          +                                     T value)
          +
          Instantiates a new Javet entity property descriptor.
          +
          +
          Parameters:
          +
          configurable - the configurable
          +
          enumerable - the enumerable
          +
          writable - the writable
          +
          value - the value
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        +
      • +
      + + +
    • +
    +
    +
    + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntitySymbol.html b/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntitySymbol.html index 5ce60ad9a..a5abb61dc 100644 --- a/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntitySymbol.html +++ b/docs/reference/javadoc/com/caoccao/javet/entities/JavetEntitySymbol.html @@ -3,7 +3,7 @@ -JavetEntitySymbol (javet-linux-arm64 3.0.3 API) +JavetEntitySymbol (javet-linux-arm64 3.0.4 API) @@ -11,13 +11,13 @@ @@ -12,8 +12,11 @@

    Classes

    diff --git a/docs/reference/javadoc/com/caoccao/javet/entities/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/entities/package-summary.html index 522dc19b9..e8b0288e1 100644 --- a/docs/reference/javadoc/com/caoccao/javet/entities/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/entities/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.entities (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.entities (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
    +
    com.caoccao.javet.enums
    +

    Enum V8ValueErrorType

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<V8ValueErrorType>
      • +
      • +
          +
        • com.caoccao.javet.enums.V8ValueErrorType
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<V8ValueErrorType>
      +
      +
      +
      +
      public enum V8ValueErrorType
      +extends java.lang.Enum<V8ValueErrorType>
      +
      The enum V8 value error type.
      +
      +
      Since:
      +
      3.0.4
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + + + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static V8ValueErrorType[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (V8ValueErrorType c : V8ValueErrorType.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static V8ValueErrorType valueOf(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + +
          +
        • +

          parse

          +
          public static V8ValueErrorType parse(int id)
          +
          Parse V8 value error type.
          +
          +
          Parameters:
          +
          id - the id
          +
          Returns:
          +
          the V8 value error type
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          parse

          +
          public static V8ValueErrorType parse(java.lang.String name)
          +
          Parse V8 value error type.
          +
          +
          Parameters:
          +
          name - the name
          +
          Returns:
          +
          the V8 value error type
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          getId

          +
          public int getId()
          +
          Gets id.
          +
          +
          Returns:
          +
          the id
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          public java.lang.String getName()
          +
          Gets name.
          +
          +
          Returns:
          +
          the name
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/enums/V8ValueInternalType.html b/docs/reference/javadoc/com/caoccao/javet/enums/V8ValueInternalType.html index fa523383b..612dcd899 100644 --- a/docs/reference/javadoc/com/caoccao/javet/enums/V8ValueInternalType.html +++ b/docs/reference/javadoc/com/caoccao/javet/enums/V8ValueInternalType.html @@ -3,7 +3,7 @@ -V8ValueInternalType (javet-linux-arm64 3.0.3 API) +V8ValueInternalType (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -25,6 +25,7 @@

    Enums

  • V8GCType
  • V8ProxyMode
  • V8ScopeType
  • +
  • V8ValueErrorType
  • V8ValueInternalType
  • V8ValueReferenceType
  • V8ValueSymbolType
  • diff --git a/docs/reference/javadoc/com/caoccao/javet/enums/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/enums/package-summary.html index a4713d9f5..6343ff507 100644 --- a/docs/reference/javadoc/com/caoccao/javet/enums/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/enums/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.enums (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.enums (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
    +
    com.caoccao.javet.exceptions
    +

    Class V8ErrorTemplate

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • com.caoccao.javet.exceptions.V8ErrorTemplate
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public final class V8ErrorTemplate
      +extends java.lang.Object
      +
      The type V8 error template is for generating the V8 error message.
      +
      +
      Since:
      +
      3.0.4
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          rangeErrorInvalidIndex

          +
          public static java.lang.String rangeErrorInvalidIndex(int index)
          +
          RangeError: Invalid index : ${index}.
          +
          +
          Parameters:
          +
          index - the index
          +
          Returns:
          +
          the message
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          rangeErrorStartIsOutOfRange

          +
          public static java.lang.String rangeErrorStartIsOutOfRange(int start)
          +
          RangeError: Start ${start} is out or range.
          +
          +
          Parameters:
          +
          start - the start
          +
          Returns:
          +
          the message
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          typeErrorFunctionIsNotSupported

          +
          public static java.lang.String typeErrorFunctionIsNotSupported(java.lang.String functionName)
          +
          TypeError: ${functionName}() is not supported.
          +
          +
          Parameters:
          +
          functionName - the function name
          +
          Returns:
          +
          the message
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          typeErrorReduceOfEmptyArrayWithNoInitialValue

          +
          public static java.lang.String typeErrorReduceOfEmptyArrayWithNoInitialValue()
          +
          TypeError: Reduce of empty array with no initial value.
          +
          +
          Returns:
          +
          the message
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        + + + +
          +
        • +

          typeErrorValueIsNotAFunction

          +
          public static java.lang.String typeErrorValueIsNotAFunction(V8Value v8Value)
          +
          TypeError: ${value} is not a function.
          +
          +
          Parameters:
          +
          v8Value - the V8 value
          +
          Returns:
          +
          the message
          +
          Since:
          +
          3.0.4
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/exceptions/package-frame.html b/docs/reference/javadoc/com/caoccao/javet/exceptions/package-frame.html index 75511c7bf..ad008dd6c 100644 --- a/docs/reference/javadoc/com/caoccao/javet/exceptions/package-frame.html +++ b/docs/reference/javadoc/com/caoccao/javet/exceptions/package-frame.html @@ -3,7 +3,7 @@ -com.caoccao.javet.exceptions (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.exceptions (javet-linux-arm64 3.0.4 API) @@ -14,6 +14,7 @@

    Classes

    Exceptions

      diff --git a/docs/reference/javadoc/com/caoccao/javet/exceptions/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/exceptions/package-summary.html index c2b960143..02708ecf6 100644 --- a/docs/reference/javadoc/com/caoccao/javet/exceptions/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/exceptions/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.exceptions (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.exceptions (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interception/jvm/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interception/jvm/package-summary.html index 92cd27a5b..8508e5853 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interception/jvm/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interception/jvm/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interception.jvm (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interception.jvm (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interception/logging/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interception/logging/package-summary.html index 91786aa3b..da8a6276c 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interception/logging/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interception/logging/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interception.logging (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interception.logging (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interception/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interception/package-summary.html index 93c06e147..e00ca912e 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interception/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interception/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interception (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interception (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
      +
      com.caoccao.javet.interfaces
      +

      Interface IJavetEntityError

      +
      +
      +
      +
        +
      • +
        +
        All Superinterfaces:
        +
        IJavetNonProxy
        +
        +
        +
        All Known Implementing Classes:
        +
        JavetEntityError
        +
        +
        +
        +
        public interface IJavetEntityError
        +extends IJavetNonProxy
        +
        The interface Javet entity error.
        +
        +
        Since:
        +
        3.0.4
        +
        +
      • +
      +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getContext

            +
            java.util.Map<java.lang.String,java.lang.Object> getContext()
            +
            Gets context.
            +
            +
            Returns:
            +
            the context
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getDetailedMessage

            +
            java.lang.String getDetailedMessage()
            +
            Gets detailed message.
            +
            +
            Returns:
            +
            the detailed message
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getMessage

            +
            java.lang.String getMessage()
            +
            Gets message.
            +
            +
            Returns:
            +
            the message
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getStack

            +
            java.lang.String getStack()
            +
            Gets stack.
            +
            +
            Returns:
            +
            the stack
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getType

            +
            V8ValueErrorType getType()
            +
            Gets type.
            +
            +
            Returns:
            +
            the type
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setDetailedMessage

            +
            void setDetailedMessage(java.lang.String detailedMessage)
            +
            Sets detailed message.
            +
            +
            Parameters:
            +
            detailedMessage - the detailed message
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setMessage

            +
            void setMessage(java.lang.String message)
            +
            Sets message.
            +
            +
            Parameters:
            +
            message - the message
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setStack

            +
            void setStack(java.lang.String stack)
            +
            Sets stack.
            +
            +
            Parameters:
            +
            stack - the stack
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setType

            +
            void setType(V8ValueErrorType type)
            +
            Sets type.
            +
            +
            Parameters:
            +
            type - the type
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntityFunction.html b/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntityFunction.html index 0036b6dae..b4e253ebf 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntityFunction.html +++ b/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntityFunction.html @@ -3,7 +3,7 @@ -IJavetEntityFunction (javet-linux-arm64 3.0.3 API) +IJavetEntityFunction (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
      +
      com.caoccao.javet.interfaces
      +

      Interface IJavetEntityObject<T>

      +
      +
      +
      +
        +
      • +
        +
        Type Parameters:
        +
        T - the type parameter
        +
        +
        +
        All Superinterfaces:
        +
        IJavetNonProxy
        +
        +
        +
        All Known Implementing Classes:
        +
        JavetEntityObject
        +
        +
        +
        +
        public interface IJavetEntityObject<T>
        +extends IJavetNonProxy
        +
        The interface Javet entity object.
        +
        +
        Since:
        +
        3.0.4
        +
        +
      • +
      +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getValue

            +
            T getValue()
            +
            Gets value.
            +
            +
            Returns:
            +
            the value
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + +
            +
          • +

            setValue

            +
            void setValue(T value)
            +
            Sets value.
            +
            +
            Parameters:
            +
            value - the value
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntityPropertyDescriptor.html b/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntityPropertyDescriptor.html new file mode 100644 index 000000000..a0f855953 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntityPropertyDescriptor.html @@ -0,0 +1,512 @@ + + + + + +IJavetEntityPropertyDescriptor (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interfaces
      +

      Interface IJavetEntityPropertyDescriptor<T>

      +
      +
      +
      +
        +
      • +
        +
        Type Parameters:
        +
        T - the type parameter
        +
        +
        +
        All Superinterfaces:
        +
        IJavetNonProxy
        +
        +
        +
        All Known Implementing Classes:
        +
        JavetEntityPropertyDescriptor
        +
        +
        +
        +
        public interface IJavetEntityPropertyDescriptor<T>
        +extends IJavetNonProxy
        +
        The interface Javet entity property descriptor.
        +
        +
        Since:
        +
        3.0.4
        +
        +
      • +
      +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Field Detail

          + + + +
            +
          • +

            PROXY_PROPERTY_CONFIGURABLE

            +
            static final java.lang.String PROXY_PROPERTY_CONFIGURABLE
            +
            The constant PROXY_PROPERTY_CONFIGURABLE.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            PROXY_PROPERTY_WRITABLE

            +
            static final java.lang.String PROXY_PROPERTY_WRITABLE
            +
            The constant PROXY_PROPERTY_WRITABLE.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            PROXY_PROPERTY_ENUMERABLE

            +
            static final java.lang.String PROXY_PROPERTY_ENUMERABLE
            +
            The constant PROXY_PROPERTY_ENUMERABLE.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            PROXY_PROPERTY_VALUE

            +
            static final java.lang.String PROXY_PROPERTY_VALUE
            +
            The constant PROXY_PROPERTY_VALUE.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getValue

            +
            T getValue()
            +
            Gets value.
            +
            +
            Returns:
            +
            the value
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            isConfigurable

            +
            boolean isConfigurable()
            +
            Is configurable.
            +
            +
            Returns:
            +
            true : configurable, false : not configurable
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            isEnumerable

            +
            boolean isEnumerable()
            +
            Is enumerable.
            +
            +
            Returns:
            +
            true : enumerable, false : enumerable
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            isWritable

            +
            boolean isWritable()
            +
            Is writable.
            +
            +
            Returns:
            +
            true : writable, false : not writable
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setConfigurable

            +
            void setConfigurable(boolean configurable)
            +
            Sets configurable.
            +
            +
            Parameters:
            +
            configurable - the configurable
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setEnumerable

            +
            void setEnumerable(boolean enumerable)
            +
            Sets enumerable.
            +
            +
            Parameters:
            +
            enumerable - the enumerable
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + +
            +
          • +

            setValue

            +
            void setValue(T value)
            +
            Sets value.
            +
            +
            Parameters:
            +
            value - the value
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setWritable

            +
            void setWritable(boolean writable)
            +
            Sets writable.
            +
            +
            Parameters:
            +
            writable - the writable
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntitySymbol.html b/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntitySymbol.html new file mode 100644 index 000000000..d9046a01b --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetEntitySymbol.html @@ -0,0 +1,263 @@ + + + + + +IJavetEntitySymbol (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interfaces
      +

      Interface IJavetEntitySymbol

      +
      +
      +
      + +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getDescription

            +
            java.lang.String getDescription()
            +
            Gets description.
            +
            +
            Returns:
            +
            the description
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setDescription

            +
            void setDescription(java.lang.String description)
            +
            Sets description.
            +
            +
            Parameters:
            +
            description - the description
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetInterceptor.html b/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetInterceptor.html index 11425623b..019ee27a5 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetInterceptor.html +++ b/docs/reference/javadoc/com/caoccao/javet/interfaces/IJavetInterceptor.html @@ -3,7 +3,7 @@ -IJavetInterceptor (javet-linux-arm64 3.0.3 API) +IJavetInterceptor (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -20,8 +20,12 @@

      Interfaces

    • IJavetBiFunction
    • IJavetBiIndexedConsumer
    • IJavetClosable
    • +
    • IJavetEntityError
    • IJavetEntityFunction
    • IJavetEntityMap
    • +
    • IJavetEntityObject
    • +
    • IJavetEntityPropertyDescriptor
    • +
    • IJavetEntitySymbol
    • IJavetInterceptor
    • IJavetLogger
    • IJavetMappable
    • diff --git a/docs/reference/javadoc/com/caoccao/javet/interfaces/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interfaces/package-summary.html index 6a6038b20..7c53f0c11 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interfaces/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interfaces/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interfaces (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interfaces (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
      +
      com.caoccao.javet.interop.binding
      +

      Class BindingContextStore

      +
      +
      +
        +
      • java.lang.Object
      • +
      • +
          +
        • com.caoccao.javet.interop.binding.BindingContextStore
        • +
        +
      • +
      +
      +
        +
      • +
        +
        +
        public final class BindingContextStore
        +extends java.lang.Object
        +
        The type binding context store is for storing the binding context maps used + by V8 value object. It leaves a backdoor for applications to tweak + the binding contexts freely.
        +
        +
        Since:
        +
        3.0.4
        +
        +
      • +
      +
      +
      +
        +
      • + +
          +
        • + + +

          Method Summary

          + + + + + + + + + + +
          All Methods Static Methods Concrete Methods 
          Modifier and TypeMethod and Description
          static ThreadSafeMap<java.lang.Class<?>,BindingContext>getMap() +
          Gets map.
          +
          +
            +
          • + + +

            Methods inherited from class java.lang.Object

            +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • +
          +
        • +
        +
      • +
      +
      +
      +
        +
      • + + +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/binding/ClassDescriptor.html b/docs/reference/javadoc/com/caoccao/javet/interop/binding/ClassDescriptor.html index 2a87b5952..a0fa033c0 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/binding/ClassDescriptor.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/binding/ClassDescriptor.html @@ -3,7 +3,7 @@ -ClassDescriptor (javet-linux-arm64 3.0.3 API) +ClassDescriptor (javet-linux-arm64 3.0.4 API) @@ -11,13 +11,13 @@ + + + + + + + + + +
      +
      com.caoccao.javet.interop.binding
      +

      Class ClassDescriptorStore

      +
      +
      +
        +
      • java.lang.Object
      • +
      • +
          +
        • com.caoccao.javet.interop.binding.ClassDescriptorStore
        • +
        +
      • +
      +
      +
        +
      • +
        +
        +
        public final class ClassDescriptorStore
        +extends java.lang.Object
        +
        The type class descriptor store is for storing the class descriptor maps used + by reflection proxy handlers. It leaves a backdoor for applications to tweak + the class descriptors freely.
        +
        +
        Since:
        +
        3.0.4
        +
        +
      • +
      +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getClassMap

            +
            public static ThreadSafeMap<java.lang.Class<?>,ClassDescriptor> getClassMap()
            +
            Gets class map.
            +
            +
            Returns:
            +
            the class map
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getObjectMap

            +
            public static ThreadSafeMap<java.lang.Class<?>,ClassDescriptor> getObjectMap()
            +
            Gets object map.
            +
            +
            Returns:
            +
            the object map
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/binding/IClassProxyPlugin.html b/docs/reference/javadoc/com/caoccao/javet/interop/binding/IClassProxyPlugin.html new file mode 100644 index 000000000..4d3f9b473 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/binding/IClassProxyPlugin.html @@ -0,0 +1,700 @@ + + + + + +IClassProxyPlugin (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interop.binding
      +

      Interface IClassProxyPlugin

      +
      +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Method Summary

          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          All Methods Instance Methods Abstract Methods 
          Modifier and TypeMethod and Description
          booleandeleteByObject(java.lang.Object targetObject, + java.lang.Object propertyKey) +
          Delete by object property.
          +
          java.lang.ObjectgetByIndex(java.lang.Object targetObject, + int index) +
          Gets by index.
          +
          java.lang.StringgetName() +
          Gets the plugin name.
          +
          <E extends java.lang.Exception>
          IClassProxyPluginFunction<E>
          getProxyGetByString(java.lang.Class<?> targetClass, + java.lang.String propertyName) +
          Gets proxy get function by string property.
          +
          <E extends java.lang.Exception>
          IClassProxyPluginFunction<E>
          getProxyGetBySymbol(java.lang.Class<?> targetClass, + java.lang.String symbolName) +
          Gets proxy get function by symbol property.
          +
          java.lang.Object[]getProxyOwnKeys(java.lang.Object targetObject) +
          Get proxy own keys for Object.getOwnPropertyNames().
          +
          <T> IJavetEntityPropertyDescriptor<T>getProxyOwnPropertyDescriptor(java.lang.Object targetObject, + java.lang.Object propertyName) +
          Gets proxy own property descriptor.
          +
          <E extends java.lang.Exception>
          IClassProxyPluginFunction<E>
          getProxySymbolToPrimitive() +
          Gets proxy symbol to primitive function.
          +
          <E extends java.lang.Exception>
          IClassProxyPluginFunction<E>
          getTargetObjectConstructor(java.lang.Class<?> targetClass) +
          Gets target object constructor.
          +
          booleanhasByObject(java.lang.Object targetObject, + java.lang.Object propertyKey) +
          Has by object property.
          +
          booleanisDeleteSupported(java.lang.Class<?> targetClass) +
          Is keyword delete supported.
          +
          booleanisHasSupported(java.lang.Class<?> targetClass) +
          Is has() supported.
          +
          booleanisIndexSupported(java.lang.Class<?> targetClass) +
          Is index supported.
          +
          booleanisMethodProxyable(java.lang.String methodName, + java.lang.Class<?> targetClass) +
          Is method proxyable.
          +
          booleanisOwnKeysSupported(java.lang.Class<?> targetClass) +
          Is ownKeys() supported.
          +
          booleanisProxyable(java.lang.Class<?> targetClass) +
          Is the target class proxyable.
          +
          booleanisUniqueKeySupported(java.lang.Class<?> targetClass) +
          Is unique key supported.
          +
          voidpopulateUniqueKeys(java.util.Set<java.lang.String> uniqueKeySet, + java.lang.Object targetObject) +
          Populate unique keys.
          +
          booleansetByIndex(java.lang.Object targetObject, + int index, + java.lang.Object value) +
          Sets by index.
          +
          +
        • +
        +
      • +
      +
      +
      +
        +
      • + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            deleteByObject

            +
            boolean deleteByObject(java.lang.Object targetObject,
            +                       java.lang.Object propertyKey)
            +
            Delete by object property.
            +
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : deleted, false : not deleted
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getByIndex

            +
            java.lang.Object getByIndex(java.lang.Object targetObject,
            +                            int index)
            +
            Gets by index.
            +
            +
            Parameters:
            +
            targetObject - the target object
            +
            index - the index
            +
            Returns:
            +
            the by index
            +
            +
          • +
          + + + +
            +
          • +

            getName

            +
            java.lang.String getName()
            +
            Gets the plugin name.
            +
            +
            Returns:
            +
            the plugin name
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getProxyGetByString

            +
            <E extends java.lang.Exception> IClassProxyPluginFunction<E> getProxyGetByString(java.lang.Class<?> targetClass,
            +                                                                                 java.lang.String propertyName)
            +
            Gets proxy get function by string property.
            +
            +
            Type Parameters:
            +
            E - the type parameter
            +
            Parameters:
            +
            targetClass - the target class
            +
            propertyName - the property name
            +
            Returns:
            +
            the proxy get by string
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getProxyGetBySymbol

            +
            <E extends java.lang.Exception> IClassProxyPluginFunction<E> getProxyGetBySymbol(java.lang.Class<?> targetClass,
            +                                                                                 java.lang.String symbolName)
            +
            Gets proxy get function by symbol property.
            +
            +
            Type Parameters:
            +
            E - the type parameter
            +
            Parameters:
            +
            targetClass - the target class
            +
            symbolName - the symbol name
            +
            Returns:
            +
            the proxy get by symbol
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getProxyOwnKeys

            +
            java.lang.Object[] getProxyOwnKeys(java.lang.Object targetObject)
            +
            Get proxy own keys for Object.getOwnPropertyNames().
            +
            +
            Parameters:
            +
            targetObject - the target object
            +
            Returns:
            +
            the own keys
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getProxyOwnPropertyDescriptor

            +
            <T> IJavetEntityPropertyDescriptor<T> getProxyOwnPropertyDescriptor(java.lang.Object targetObject,
            +                                                                    java.lang.Object propertyName)
            +
            Gets proxy own property descriptor.
            +
            +
            Type Parameters:
            +
            T - the type parameter
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyName - the property name
            +
            Returns:
            +
            the proxy own property descriptor
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getProxySymbolToPrimitive

            +
            <E extends java.lang.Exception> IClassProxyPluginFunction<E> getProxySymbolToPrimitive()
            +
            Gets proxy symbol to primitive function.
            +
            +
            Type Parameters:
            +
            E - the type parameter
            +
            Returns:
            +
            the proxy symbol to primitive function
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getTargetObjectConstructor

            +
            <E extends java.lang.Exception> IClassProxyPluginFunction<E> getTargetObjectConstructor(java.lang.Class<?> targetClass)
            +
            Gets target object constructor.
            +
            +
            Type Parameters:
            +
            E - the type parameter
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            the target object constructor
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            hasByObject

            +
            boolean hasByObject(java.lang.Object targetObject,
            +                    java.lang.Object propertyKey)
            +
            Has by object property.
            +
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : has, false : not has
            +
            +
          • +
          + + + +
            +
          • +

            isDeleteSupported

            +
            boolean isDeleteSupported(java.lang.Class<?> targetClass)
            +
            Is keyword delete supported.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            isHasSupported

            +
            boolean isHasSupported(java.lang.Class<?> targetClass)
            +
            Is has() supported.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            isIndexSupported

            +
            boolean isIndexSupported(java.lang.Class<?> targetClass)
            +
            Is index supported.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            isMethodProxyable

            +
            boolean isMethodProxyable(java.lang.String methodName,
            +                          java.lang.Class<?> targetClass)
            +
            Is method proxyable.
            +
            +
            Parameters:
            +
            methodName - the method name
            +
            targetClass - the target class
            +
            Returns:
            +
            true : yes, false : no
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            isOwnKeysSupported

            +
            boolean isOwnKeysSupported(java.lang.Class<?> targetClass)
            +
            Is ownKeys() supported.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            isProxyable

            +
            boolean isProxyable(java.lang.Class<?> targetClass)
            +
            Is the target class proxyable.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : proxyable, false : not proxyable
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            isUniqueKeySupported

            +
            boolean isUniqueKeySupported(java.lang.Class<?> targetClass)
            +
            Is unique key supported.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            populateUniqueKeys

            +
            void populateUniqueKeys(java.util.Set<java.lang.String> uniqueKeySet,
            +                        java.lang.Object targetObject)
            +
            Populate unique keys.
            +
            +
            Parameters:
            +
            uniqueKeySet - the unique key set
            +
            targetObject - the target object
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setByIndex

            +
            boolean setByIndex(java.lang.Object targetObject,
            +                   int index,
            +                   java.lang.Object value)
            +
            Sets by index.
            +
            +
            Parameters:
            +
            targetObject - the target object
            +
            index - the index
            +
            value - the value
            +
            Returns:
            +
            true : set, false : not set
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/IJavetProxyPolyfillFunction.html b/docs/reference/javadoc/com/caoccao/javet/interop/binding/IClassProxyPluginFunction.html similarity index 63% rename from docs/reference/javadoc/com/caoccao/javet/interop/proxy/IJavetProxyPolyfillFunction.html rename to docs/reference/javadoc/com/caoccao/javet/interop/binding/IClassProxyPluginFunction.html index d13377778..2e7f6ded2 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/IJavetProxyPolyfillFunction.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/binding/IClassProxyPluginFunction.html @@ -3,7 +3,7 @@ -IJavetProxyPolyfillFunction (javet-linux-arm64 3.0.3 API) +IClassProxyPluginFunction (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@

      com.caoccao.javet.interop.binding

      diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/binding/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/binding/package-summary.html index ffb8926b8..9a7d1e1ed 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/binding/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/binding/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.binding (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.binding (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/callback/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/callback/package-summary.html index 0a8cc3f81..d26e0c043 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/callback/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/callback/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.callback (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.callback (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/converters/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/converters/package-summary.html index ce6ae3bf5..8c9f74bdc 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/converters/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/converters/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.converters (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.converters (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/engine/observers/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/engine/observers/package-summary.html index 23bf2bea8..e60b04e36 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/engine/observers/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/engine/observers/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.engine.observers (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.engine.observers (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/engine/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/engine/package-summary.html index 6296e843d..3c4a7dc54 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/engine/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/engine/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.engine (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.engine (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/executors/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/executors/package-summary.html index fc82526f0..279a27b7a 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/executors/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/executors/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.executors (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.executors (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/loader/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/loader/package-summary.html index 318c0bcca..502725b55 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/loader/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/loader/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.loader (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.loader (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/monitoring/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/monitoring/package-summary.html index 2888a75d4..96ecc19a2 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/monitoring/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/monitoring/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.monitoring (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.monitoring (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/options/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/options/package-summary.html index 4e5e9af95..6914f3fb9 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/options/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/options/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.options (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.options (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/package-summary.html index 1326f4d05..feeb40f4d 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy
      +

      Interface IJavetNonProxy

      +
      +
      +
      + +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/IJavetProxyHandler.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/IJavetProxyHandler.html index 650601c42..7092629c9 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/IJavetProxyHandler.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/IJavetProxyHandler.html @@ -3,7 +3,7 @@ -IJavetProxyHandler (javet-linux-arm64 3.0.3 API) +IJavetProxyHandler (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ - - - - - - - - - -
      -
      com.caoccao.javet.interop.proxy
      -

      Class JavetProxySymbolIterableConverter<T>

      -
      -
      - -
      -
        -
      • -
        -
        Type Parameters:
        -
        T - the type parameter
        -
        -
        -
        All Implemented Interfaces:
        -
        IJavetProxySymbolConverter
        -
        -
        -
        -
        public class JavetProxySymbolIterableConverter<T>
        -extends BaseJavetProxySymbolConverter<T>
        -
        The type Javet proxy symbol iterable converter.
        -
        -
        Since:
        -
        1.0.4
        -
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/JavetProxySymbolToPrimitiveConverter.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/JavetProxySymbolToPrimitiveConverter.html deleted file mode 100644 index 9a56cbc77..000000000 --- a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/JavetProxySymbolToPrimitiveConverter.html +++ /dev/null @@ -1,443 +0,0 @@ - - - - - -JavetProxySymbolToPrimitiveConverter (javet-linux-arm64 3.0.3 API) - - - - - - - - - - - -
      -
      com.caoccao.javet.interop.proxy
      -

      Class JavetProxySymbolToPrimitiveConverter<T>

      -
      -
      - -
      -
        -
      • -
        -
        Type Parameters:
        -
        T - the type parameter
        -
        -
        -
        All Implemented Interfaces:
        -
        IJavetProxySymbolConverter
        -
        -
        -
        -
        public class JavetProxySymbolToPrimitiveConverter<T>
        -extends BaseJavetProxySymbolConverter<T>
        -
        The type Javet proxy symbol to primitive converter.
        -
        -
        Since:
        -
        1.0.4
        -
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Field Detail

          - - - -
            -
          • -

            HINT_BOOLEAN

            -
            protected static final java.lang.String HINT_BOOLEAN
            -
            The constant HINT_BOOLEAN.
            -
            -
            Since:
            -
            2.0.0
            -
            See Also:
            -
            Constant Field Values
            -
            -
          • -
          - - - -
            -
          • -

            HINT_DEFAULT

            -
            protected static final java.lang.String HINT_DEFAULT
            -
            The constant HINT_DEFAULT.
            -
            -
            Since:
            -
            2.0.0
            -
            See Also:
            -
            Constant Field Values
            -
            -
          • -
          - - - -
            -
          • -

            HINT_NUMBER

            -
            protected static final java.lang.String HINT_NUMBER
            -
            The constant HINT_NUMBER.
            -
            -
            Since:
            -
            2.0.0
            -
            See Also:
            -
            Constant Field Values
            -
            -
          • -
          - - - -
            -
          • -

            HINT_STRING

            -
            protected static final java.lang.String HINT_STRING
            -
            The constant HINT_STRING.
            -
            -
            Since:
            -
            2.0.0
            -
            See Also:
            -
            Constant Field Values
            -
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Constructor Detail

          - - - - - -
            -
          • -

            JavetProxySymbolToPrimitiveConverter

            -
            public JavetProxySymbolToPrimitiveConverter(V8Runtime v8Runtime,
            -                                            T targetObject)
            -
            Instantiates a new Javet proxy symbol to primitive converter.
            -
            -
            Parameters:
            -
            v8Runtime - the V8 runtime
            -
            targetObject - the target object
            -
            Since:
            -
            1.0.4
            -
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/JavetReflectionProxyClassHandler.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/JavetReflectionProxyClassHandler.html index ffb81b3fb..2e6feb7a7 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/JavetReflectionProxyClassHandler.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/JavetReflectionProxyClassHandler.html @@ -3,7 +3,7 @@ -JavetReflectionProxyClassHandler (javet-linux-arm64 3.0.3 API) +JavetReflectionProxyClassHandler (javet-linux-arm64 3.0.4 API) @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,14 +11,14 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -13,8 +13,8 @@

      Interfaces

      @@ -27,8 +27,6 @@

      Classes

    • BaseJavetReflectionProxyInvocationHandler
    • JavetDirectProxyFunctionHandler
    • JavetDirectProxyObjectHandler
    • -
    • JavetProxySymbolIterableConverter
    • -
    • JavetProxySymbolToPrimitiveConverter
    • JavetReflectionProxyClassHandler
    • JavetReflectionProxyFactory
    • JavetReflectionProxyFunctionHandler
    • diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/package-summary.html index 1e61ac757..41d5a71c3 100644 --- a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.interop.proxy (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.interop.proxy (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy.plugins
      +

      Class BaseJavetProxyPlugin

      +
      +
      +
        +
      • java.lang.Object
      • +
      • +
          +
        • com.caoccao.javet.interop.proxy.plugins.BaseJavetProxyPlugin
        • +
        +
      • +
      +
      + +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Field Detail

          + + + +
            +
          • +

            HINT_BOOLEAN

            +
            protected static final java.lang.String HINT_BOOLEAN
            +
            The constant HINT_BOOLEAN.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            HINT_DEFAULT

            +
            protected static final java.lang.String HINT_DEFAULT
            +
            The constant HINT_DEFAULT.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            HINT_NUMBER

            +
            protected static final java.lang.String HINT_NUMBER
            +
            The constant HINT_NUMBER.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            HINT_STRING

            +
            protected static final java.lang.String HINT_STRING
            +
            The constant HINT_STRING.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            OBJECT_CONVERTER

            +
            protected static final JavetObjectConverter OBJECT_CONVERTER
            +
            The constant OBJECT_CONVERTER.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            PROXY_CONVERTER

            +
            protected static final JavetProxyConverter PROXY_CONVERTER
            +
            The constant PROXY_CONVERTER.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            TO_JSON

            +
            protected static final java.lang.String TO_JSON
            +
            The constant TO_JSON.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_STRING

            +
            protected static final java.lang.String TO_STRING
            +
            The constant TO_STRING.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            VALUE_OF

            +
            protected static final java.lang.String VALUE_OF
            +
            The constant VALUE_OF.
            +
            +
            Since:
            +
            3.0.4
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            BaseJavetProxyPlugin

            +
            public BaseJavetProxyPlugin()
            +
            Instantiates a new Base javet proxy plugin.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            callWithObjectConverter

            +
            protected V8Value callWithObjectConverter(java.lang.String functionName,
            +                                          V8Runtime v8Runtime,
            +                                          java.lang.Object targetObject)
            +                                   throws JavetException
            +
            Call function with the object converter by name.
            +
            +
            Parameters:
            +
            functionName - the function name
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            +
          • +
          + + + +
            +
          • +

            deleteByObject

            +
            public boolean deleteByObject(java.lang.Object targetObject,
            +                              java.lang.Object propertyKey)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Delete by object property.
            +
            +
            Specified by:
            +
            deleteByObject in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : deleted, false : not deleted
            +
            +
          • +
          + + + +
            +
          • +

            getByIndex

            +
            public java.lang.Object getByIndex(java.lang.Object targetObject,
            +                                   int index)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets by index.
            +
            +
            Specified by:
            +
            getByIndex in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            index - the index
            +
            Returns:
            +
            the by index
            +
            +
          • +
          + + + +
            +
          • +

            getProxyGetBySymbol

            +
            public <E extends java.lang.Exception> IClassProxyPluginFunction<E> getProxyGetBySymbol(java.lang.Class<?> targetClass,
            +                                                                                        java.lang.String symbolName)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets proxy get function by symbol property.
            +
            +
            Specified by:
            +
            getProxyGetBySymbol in interface IClassProxyPlugin
            +
            Type Parameters:
            +
            E - the type parameter
            +
            Parameters:
            +
            targetClass - the target class
            +
            symbolName - the symbol name
            +
            Returns:
            +
            the proxy get by symbol
            +
            +
          • +
          + + + +
            +
          • +

            getProxyOwnKeys

            +
            public java.lang.Object[] getProxyOwnKeys(java.lang.Object targetObject)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Get proxy own keys for Object.getOwnPropertyNames().
            +
            +
            Specified by:
            +
            getProxyOwnKeys in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            Returns:
            +
            the own keys
            +
            +
          • +
          + + + +
            +
          • +

            getProxyOwnPropertyDescriptor

            +
            public <T> IJavetEntityPropertyDescriptor<T> getProxyOwnPropertyDescriptor(java.lang.Object targetObject,
            +                                                                           java.lang.Object propertyName)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets proxy own property descriptor.
            +
            +
            Specified by:
            +
            getProxyOwnPropertyDescriptor in interface IClassProxyPlugin
            +
            Type Parameters:
            +
            T - the type parameter
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyName - the property name
            +
            Returns:
            +
            the proxy own property descriptor
            +
            +
          • +
          + + + + + + + +
            +
          • +

            getTargetObjectConstructor

            +
            public <E extends java.lang.Exception> IClassProxyPluginFunction<E> getTargetObjectConstructor(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets target object constructor.
            +
            +
            Specified by:
            +
            getTargetObjectConstructor in interface IClassProxyPlugin
            +
            Type Parameters:
            +
            E - the type parameter
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            the target object constructor
            +
            +
          • +
          + + + +
            +
          • +

            hasByObject

            +
            public boolean hasByObject(java.lang.Object targetObject,
            +                           java.lang.Object propertyKey)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Has by object property.
            +
            +
            Specified by:
            +
            hasByObject in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : has, false : not has
            +
            +
          • +
          + + + +
            +
          • +

            isDeleteSupported

            +
            public boolean isDeleteSupported(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is keyword delete supported.
            +
            +
            Specified by:
            +
            isDeleteSupported in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            +
          • +
          + + + +
            +
          • +

            isHasSupported

            +
            public boolean isHasSupported(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is has() supported.
            +
            +
            Specified by:
            +
            isHasSupported in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            +
          • +
          + + + +
            +
          • +

            isIndexSupported

            +
            public boolean isIndexSupported(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is index supported.
            +
            +
            Specified by:
            +
            isIndexSupported in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            +
          • +
          + + + +
            +
          • +

            isOwnKeysSupported

            +
            public boolean isOwnKeysSupported(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is ownKeys() supported.
            +
            +
            Specified by:
            +
            isOwnKeysSupported in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            +
          • +
          + + + +
            +
          • +

            isUniqueKeySupported

            +
            public boolean isUniqueKeySupported(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is unique key supported.
            +
            +
            Specified by:
            +
            isUniqueKeySupported in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : supported, false : not supported
            +
            +
          • +
          + + + +
            +
          • +

            populateUniqueKeys

            +
            public void populateUniqueKeys(java.util.Set<java.lang.String> uniqueKeySet,
            +                               java.lang.Object targetObject)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Populate unique keys.
            +
            +
            Specified by:
            +
            populateUniqueKeys in interface IClassProxyPlugin
            +
            Parameters:
            +
            uniqueKeySet - the unique key set
            +
            targetObject - the target object
            +
            +
          • +
          + + + +
            +
          • +

            setByIndex

            +
            public boolean setByIndex(java.lang.Object targetObject,
            +                          int index,
            +                          java.lang.Object value)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Sets by index.
            +
            +
            Specified by:
            +
            setByIndex in interface IClassProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            index - the index
            +
            value - the value
            +
            Returns:
            +
            true : set, false : not set
            +
            +
          • +
          + + + +
            +
          • +

            symbolToPrimitive

            +
            public V8Value symbolToPrimitive(V8Runtime v8Runtime,
            +                                 java.lang.Object targetObject)
            +                          throws JavetException
            +
            Convert to primitive.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            typeErrorFunctionIsNotSupported

            +
            protected V8Value typeErrorFunctionIsNotSupported(java.lang.String functionName,
            +                                                  V8Runtime v8Runtime)
            +
            TypeError: ${functionName}() is not supported.
            +
            +
            Parameters:
            +
            functionName - the function name
            +
            v8Runtime - the V8 runtime
            +
            Returns:
            +
            the V8 value
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/BaseJavetProxyPluginMultiple.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/BaseJavetProxyPluginMultiple.html new file mode 100644 index 000000000..b6106c726 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/BaseJavetProxyPluginMultiple.html @@ -0,0 +1,519 @@ + + + + + +BaseJavetProxyPluginMultiple (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy.plugins
      +

      Class BaseJavetProxyPluginMultiple

      +
      +
      + +
      + +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Field Detail

          + + + +
            +
          • +

            proxyGetByStringMap

            +
            protected final java.util.Map<java.lang.Class<?>,java.util.Map<java.lang.String,IClassProxyPluginFunction<?>>> proxyGetByStringMap
            +
            The Proxy get by string map.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            proxyGetBySymbolMap

            +
            protected final java.util.Map<java.lang.Class<?>,java.util.Map<java.lang.String,IClassProxyPluginFunction<?>>> proxyGetBySymbolMap
            +
            The Proxy get by symbol map.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            proxyableMethodsMap

            +
            protected final java.util.Map<java.lang.Class<?>,java.util.Set<java.lang.String>> proxyableMethodsMap
            +
            The Proxyable methods map.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            targetObjectConstructorMap

            +
            protected final java.util.Map<java.lang.Class<?>,IClassProxyPluginFunction<?>> targetObjectConstructorMap
            +
            The Target object constructor map.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            BaseJavetProxyPluginMultiple

            +
            public BaseJavetProxyPluginMultiple()
            +
            Instantiates a new Base javet proxy plugin for multiple classes.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getProxyGetByString

            +
            public <E extends java.lang.Exception> IClassProxyPluginFunction<E> getProxyGetByString(java.lang.Class<?> targetClass,
            +                                                                                        java.lang.String propertyName)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets proxy get function by string property.
            +
            +
            Type Parameters:
            +
            E - the type parameter
            +
            Parameters:
            +
            targetClass - the target class
            +
            propertyName - the property name
            +
            Returns:
            +
            the proxy get by string
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            isMethodProxyable

            +
            public boolean isMethodProxyable(java.lang.String methodName,
            +                                 java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is method proxyable.
            +
            +
            Parameters:
            +
            methodName - the method name
            +
            targetClass - the target class
            +
            Returns:
            +
            true : yes, false : no
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/BaseJavetProxyPluginSingle.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/BaseJavetProxyPluginSingle.html new file mode 100644 index 000000000..d6be228bb --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/BaseJavetProxyPluginSingle.html @@ -0,0 +1,507 @@ + + + + + +BaseJavetProxyPluginSingle (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy.plugins
      +

      Class BaseJavetProxyPluginSingle<T>

      +
      +
      + +
      + +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Field Detail

          + + + +
            +
          • +

            proxyGetByStringMap

            +
            protected final java.util.Map<java.lang.String,IClassProxyPluginFunction<?>> proxyGetByStringMap
            +
            The Proxy get by string map.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            proxyGetBySymbolMap

            +
            protected final java.util.Map<java.lang.String,IClassProxyPluginFunction<?>> proxyGetBySymbolMap
            +
            The Proxy get by symbol map.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            BaseJavetProxyPluginSingle

            +
            public BaseJavetProxyPluginSingle()
            +
            Instantiates a new Base javet proxy plugin for single class.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            createTargetObject

            +
            protected abstract V8Value createTargetObject(V8Runtime v8Runtime,
            +                                              java.lang.Object targetObject)
            +                                       throws JavetException
            +
            Create target object.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getProxyGetByString

            +
            public <E extends java.lang.Exception> IClassProxyPluginFunction<E> getProxyGetByString(java.lang.Class<?> targetClass,
            +                                                                                        java.lang.String propertyName)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets proxy get function by string property.
            +
            +
            Type Parameters:
            +
            E - the type parameter
            +
            Parameters:
            +
            targetClass - the target class
            +
            propertyName - the property name
            +
            Returns:
            +
            the proxy get by string
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            validateTargetObject

            +
            protected abstract T validateTargetObject(java.lang.Object targetObject)
            +
            Validate and return target object.
            +
            +
            Parameters:
            +
            targetObject - the target object
            +
            Returns:
            +
            the typed target object
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginArray.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginArray.html new file mode 100644 index 000000000..ee5c96ee8 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginArray.html @@ -0,0 +1,2811 @@ + + + + + +JavetProxyPluginArray (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy.plugins
      +

      Class JavetProxyPluginArray

      +
      +
      + +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Field Summary

          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          Fields 
          Modifier and TypeField and Description
          protected static java.lang.StringAT 
          protected static java.lang.StringCONCAT 
          protected static java.lang.StringCOPY_WITHIN 
          protected static java.lang.String[]DEFAULT_PROXYABLE_METHODS +
          The constant DEFAULT_PROXYABLE_METHODS.
          +
          protected static java.lang.StringENTRIES 
          protected static java.lang.StringERROR_TARGET_OBJECT_MUST_BE_AN_ARRAY 
          protected static java.lang.StringEVERY 
          protected static java.lang.StringFILL 
          protected static java.lang.StringFILTER 
          protected static java.lang.StringFIND 
          protected static java.lang.StringFIND_INDEX 
          protected static java.lang.StringFIND_LAST 
          protected static java.lang.StringFIND_LAST_INDEX 
          protected static java.lang.StringFLAT 
          protected static java.lang.StringFLAT_MAP 
          protected static java.lang.StringFOR_EACH 
          protected static java.lang.StringINCLUDES 
          protected static java.lang.StringINDEX_OF 
          protected static java.lang.StringJOIN 
          protected static java.lang.StringKEYS 
          protected static java.lang.StringLAST_INDEX_OF 
          protected static java.lang.StringLENGTH 
          protected static java.lang.StringMAP 
          static java.lang.StringNAME +
          The constant NAME.
          +
          protected static java.lang.StringPOP 
          protected java.util.Set<java.lang.String>proxyableMethods +
          The proxyable methods.
          +
          protected static java.lang.StringPUSH 
          protected static java.lang.StringREDUCE 
          protected static java.lang.StringREDUCE_RIGHT 
          protected static java.lang.StringREVERSE 
          protected static java.lang.StringSHIFT 
          protected static java.lang.StringSLICE 
          protected static java.lang.StringSOME 
          protected static java.lang.StringSORT 
          protected static java.lang.StringSPLICE 
          protected static java.lang.StringTO_REVERSED 
          protected static java.lang.StringTO_SORTED 
          protected static java.lang.StringTO_SPLICED 
          protected static java.lang.StringUNSHIFT 
          protected static java.lang.StringVALUES 
          protected static java.lang.StringWITH 
          + + +
        • +
        + + + +
          +
        • + + +

          Method Summary

          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          All Methods Static Methods Instance Methods Concrete Methods 
          Modifier and TypeMethod and Description
          V8Valueat(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.at().
          +
          V8Valueconcat(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.concat().
          +
          V8ValuecopyWithin(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.copyWithin().
          +
          protected V8ValuecreateTargetObject(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Create target object.
          +
          booleandeleteByObject(java.lang.Object targetObject, + java.lang.Object propertyKey) +
          Delete by object property.
          +
          V8Valueentries(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.entries().
          +
          V8Valueevery(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.every().
          +
          V8Valuefill(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.fill() + The fill() method of Array instances changes all elements within a range of indices + in an array to a static value.
          +
          V8Valuefilter(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.filter().
          +
          V8Valuefind(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.find().
          +
          V8ValuefindIndex(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.findIndex().
          +
          V8ValuefindLast(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.findLast().
          +
          V8ValuefindLastIndex(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.findLastIndex().
          +
          V8Valueflat(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.flat().
          +
          V8ValueflatMap(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.flatMap().
          +
          V8ValueforEach(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.forEach().
          +
          java.lang.ObjectgetByIndex(java.lang.Object targetObject, + int index) +
          Gets by index.
          +
          static JavetProxyPluginArraygetInstance() +
          Gets instance.
          +
          java.lang.StringgetName() +
          Gets the plugin name.
          +
          java.lang.Object[]getProxyOwnKeys(java.lang.Object targetObject) +
          Get proxy own keys for Object.getOwnPropertyNames().
          +
          <T> IJavetEntityPropertyDescriptor<T>getProxyOwnPropertyDescriptor(java.lang.Object targetObject, + java.lang.Object propertyName) +
          Gets proxy own property descriptor.
          +
          booleanhasByObject(java.lang.Object targetObject, + java.lang.Object propertyKey) +
          Has by object property.
          +
          V8Valueincludes(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.includes().
          +
          V8ValueindexOf(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.indexOf().
          +
          booleanisDeleteSupported(java.lang.Class<?> targetClass) +
          Is keyword delete supported.
          +
          booleanisHasSupported(java.lang.Class<?> targetClass) +
          Is has() supported.
          +
          booleanisIndexSupported(java.lang.Class<?> targetClass) +
          Is index supported.
          +
          booleanisMethodProxyable(java.lang.String methodName, + java.lang.Class<?> targetClass) +
          Is method proxyable.
          +
          booleanisOwnKeysSupported(java.lang.Class<?> targetClass) +
          Is ownKeys() supported.
          +
          booleanisProxyable(java.lang.Class<?> targetClass) +
          Is the target class proxyable.
          +
          V8Valuejoin(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.join().
          +
          V8Valuekeys(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.keys().
          +
          V8ValuelastIndexOf(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.lastIndexOf().
          +
          V8Valuelength(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.length.
          +
          V8Valuemap(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.map().
          +
          V8Valuepop(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.pop().
          +
          V8Valuepush(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.push().
          +
          V8Valuereduce(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.reduce().
          +
          V8ValuereduceRight(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.reduceRight() + The reduceRight() method of Array instances applies a function against an accumulator and each value + of the array (from right-to-left) to reduce it to a single value.
          +
          V8Valuereverse(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.reverse().
          +
          booleansetByIndex(java.lang.Object targetObject, + int index, + java.lang.Object value) +
          Sets by index.
          +
          V8Valueshift(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.shift().
          +
          V8Valueslice(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.slice().
          +
          V8Valuesome(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.some().
          +
          V8Valuesort(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.sort().
          +
          V8Valuesplice(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.splice().
          +
          V8ValuetoJSON(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill List.toJSON().
          +
          V8ValuetoReversed(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.toReversed().
          +
          V8ValuetoSorted(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.toSorted() + The toSorted() method of Array instances is the copying version of the sort() method.
          +
          V8ValuetoSpliced(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.toSpliced() + The toSpliced() method of Array instances is the copying version of the splice() method.
          +
          V8ValuetoString(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.toString() + The toString() method of Array instances returns a string representing the specified array and its elements.
          +
          V8Valueunshift(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.unshift().
          +
          protected java.lang.ObjectvalidateTargetObject(java.lang.Object targetObject) +
          Validate and return target object.
          +
          V8ValuevalueOf(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Object.prototype.valueOf().
          +
          V8Valuevalues(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.values().
          +
          V8Valuewith(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.with().
          +
          + + +
            +
          • + + +

            Methods inherited from class java.lang.Object

            +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • +
          +
        • +
        +
      • +
      +
      +
      +
        +
      • + + + +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            JavetProxyPluginArray

            +
            public JavetProxyPluginArray()
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getInstance

            +
            public static JavetProxyPluginArray getInstance()
            +
            Gets instance.
            +
            +
            Returns:
            +
            the instance
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            at

            +
            public V8Value at(V8Runtime v8Runtime,
            +                  java.lang.Object targetObject)
            +           throws JavetException
            +
            Polyfill Array.prototype.at(). + The at() method of Array instances takes an integer value and returns the item at that index, + allowing for positive and negative integers. Negative integers count back from the last item in the array. +

            + Parameters + index + Zero-based index of the array element to be returned, converted to an integer. + Negative index counts back from the end of the array โ€” if index < 0, index + array.length is accessed. +

            + Return value + The element in the array matching the given index. + Always returns undefined if index < -array.length or index >= array.length + without attempting to access the corresponding property.

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            concat

            +
            public V8Value concat(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.concat(). + The concat() method of Array instances is used to merge two or more arrays. + This method does not change the existing arrays, but instead returns a new array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            copyWithin

            +
            public V8Value copyWithin(V8Runtime v8Runtime,
            +                          java.lang.Object targetObject)
            +                   throws JavetException
            +
            Polyfill Array.prototype.copyWithin(). + The copyWithin() method of Array instances shallow copies part of this array to another location + in the same array and returns this array without modifying its length.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + +
            +
          • +

            deleteByObject

            +
            public boolean deleteByObject(java.lang.Object targetObject,
            +                              java.lang.Object propertyKey)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Delete by object property.
            +
            +
            Specified by:
            +
            deleteByObject in interface IClassProxyPlugin
            +
            Overrides:
            +
            deleteByObject in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : deleted, false : not deleted
            +
            +
          • +
          + + + +
            +
          • +

            entries

            +
            public V8Value entries(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.entries(). + The entries() method of Array instances returns a new array iterator object + that contains the key/value pairs for each index in the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            every

            +
            public V8Value every(V8Runtime v8Runtime,
            +                     java.lang.Object targetObject)
            +              throws JavetException
            +
            Polyfill Array.prototype.every(). + The every() method of Array instances tests whether all elements in the array pass the test implemented + by the provided function. It returns a Boolean value.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            fill

            +
            public V8Value fill(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.fill() + The fill() method of Array instances changes all elements within a range of indices + in an array to a static value. It returns the modified array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            filter

            +
            public V8Value filter(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.filter(). + The filter() method of Array instances creates a shallow copy of a portion of a given array, + filtered down to just the elements from the given array that pass the test implemented by the provided function.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            find

            +
            public V8Value find(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.find(). + The find() method of Array instances returns the first element in the provided array + that satisfies the provided testing function. If no values satisfy the testing function, undefined is returned. +

            + If you need the index of the found element in the array, use findIndex(). + If you need to find the index of a value, use indexOf(). (It's similar to findIndex(), + but checks each element for equality with the value instead of using a testing function.) + If you need to find if a value exists in an array, use includes(). + Again, it checks each element for equality with the value instead of using a testing function. + If you need to find if any element satisfies the provided testing function, use some().

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            findIndex

            +
            public V8Value findIndex(V8Runtime v8Runtime,
            +                         java.lang.Object targetObject)
            +                  throws JavetException
            +
            Polyfill Array.prototype.findIndex(). + The findIndex() method of Array instances returns the index of the first element in an array + that satisfies the provided testing function. If no elements satisfy the testing function, -1 is returned. +

            + See also the find() method, + which returns the first element that satisfies the testing function (rather than its index).

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            findLast

            +
            public V8Value findLast(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Array.prototype.findLast(). + The findLast() method of Array instances iterates the array in reverse order + and returns the value of the first element that satisfies the provided testing function. + If no elements satisfy the testing function, undefined is returned. +

            + If you need to find: +

            + the first element that matches, use find(). + the index of the last matching element in the array, use findLastIndex(). + the index of a value, use indexOf(). (It's similar to findIndex(), + but checks each element for equality with the value instead of using a testing function.) + whether a value exists in an array, use includes(). + Again, it checks each element for equality with the value instead of using a testing function. + if any element satisfies the provided testing function, use some().

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            findLastIndex

            +
            public V8Value findLastIndex(V8Runtime v8Runtime,
            +                             java.lang.Object targetObject)
            +                      throws JavetException
            +
            Polyfill Array.prototype.findLastIndex(). + The findLastIndex() method of Array instances iterates the array in reverse order + and returns the index of the first element that satisfies the provided testing function. + If no elements satisfy the testing function, -1 is returned. +

            + See also the findLast() method, + which returns the value of last element that satisfies the testing function (rather than its index).

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            flat

            +
            public V8Value flat(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.flat(). + The flat() method of Array instances creates a new array with all sub-array elements concatenated into + it recursively up to the specified depth.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            flatMap

            +
            public V8Value flatMap(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.flatMap(). + The flatMap() method of Array instances returns a new array formed by applying a given callback function + to each element of the array, and then flattening the result by one level. + It is identical to a map() followed by a flat() of depth 1 (arr.map(...args).flat()), + but slightly more efficient than calling those two methods separately.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            forEach

            +
            public V8Value forEach(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.forEach(). + The forEach() method of Array instances executes a provided function once for each array element.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getByIndex

            +
            public java.lang.Object getByIndex(java.lang.Object targetObject,
            +                                   int index)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets by index.
            +
            +
            Specified by:
            +
            getByIndex in interface IClassProxyPlugin
            +
            Overrides:
            +
            getByIndex in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            index - the index
            +
            Returns:
            +
            the by index
            +
            +
          • +
          + + + +
            +
          • +

            getName

            +
            public java.lang.String getName()
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets the plugin name.
            +
            +
            Returns:
            +
            the plugin name
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            hasByObject

            +
            public boolean hasByObject(java.lang.Object targetObject,
            +                           java.lang.Object propertyKey)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Has by object property.
            +
            +
            Specified by:
            +
            hasByObject in interface IClassProxyPlugin
            +
            Overrides:
            +
            hasByObject in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : has, false : not has
            +
            +
          • +
          + + + +
            +
          • +

            includes

            +
            public V8Value includes(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Array.prototype.includes(). + The includes() method of Array instances determines whether an array includes a certain value among its entries, + returning true or false as appropriate.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            indexOf

            +
            public V8Value indexOf(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.indexOf(). + The indexOf() method of Array instances returns the first index + at which a given element can be found in the array, or -1 if it is not present.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + + + + + + + + + +
            +
          • +

            isMethodProxyable

            +
            public boolean isMethodProxyable(java.lang.String methodName,
            +                                 java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is method proxyable.
            +
            +
            Parameters:
            +
            methodName - the method name
            +
            targetClass - the target class
            +
            Returns:
            +
            true : yes, false : no
            +
            +
          • +
          + + + + + + + +
            +
          • +

            isProxyable

            +
            public boolean isProxyable(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is the target class proxyable.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : proxyable, false : not proxyable
            +
            +
          • +
          + + + +
            +
          • +

            join

            +
            public V8Value join(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.join(). + The join() method of Array instances creates and returns a new string by concatenating all of the elements + in this array, separated by commas or a specified separator string. If the array has only one item, + then that item will be returned without using the separator.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            keys

            +
            public V8Value keys(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.keys(). + The keys() method of Array instances returns a new array iterator object + that contains the keys for each index in the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            lastIndexOf

            +
            public V8Value lastIndexOf(V8Runtime v8Runtime,
            +                           java.lang.Object targetObject)
            +                    throws JavetException
            +
            Polyfill Array.prototype.lastIndexOf(). + The lastIndexOf() method of Array instances returns the last index + at which a given element can be found in the array, or -1 if it is not present. + The array is searched backwards, starting at fromIndex.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            length

            +
            public V8Value length(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.length. + The length data property of an Array instance represents the number of elements in that array. + The value is an unsigned, 32-bit integer that is always numerically greater than the highest index in the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            map

            +
            public V8Value map(V8Runtime v8Runtime,
            +                   java.lang.Object targetObject)
            +            throws JavetException
            +
            Polyfill Array.prototype.map(). + The map() method of Array instances creates a new array populated with the results of + calling a provided function on every element in the calling array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            pop

            +
            public V8Value pop(V8Runtime v8Runtime,
            +                   java.lang.Object targetObject)
            +            throws JavetException
            +
            Polyfill Array.prototype.pop(). + The pop() method of Array instances removes the last element from an array and returns that element. + This method changes the length of the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            push

            +
            public V8Value push(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.push(). + The push() method of Array instances adds the specified elements to the end of an array + and returns the new length of the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            reduce

            +
            public V8Value reduce(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.reduce(). + The reduce() method of Array instances executes a user-supplied "reducer" callback function on each element + of the array, in order, passing in the return value from the calculation on the preceding element. + The final result of running the reducer across all elements of the array is a single value. +

            + The first time that the callback is run there is no "return value of the previous calculation". + If supplied, an initial value may be used in its place. Otherwise the array element at index 0 is used + as the initial value and iteration starts from the next element (index 1 instead of index 0).

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            reduceRight

            +
            public V8Value reduceRight(V8Runtime v8Runtime,
            +                           java.lang.Object targetObject)
            +                    throws JavetException
            +
            Polyfill Array.prototype.reduceRight() + The reduceRight() method of Array instances applies a function against an accumulator and each value + of the array (from right-to-left) to reduce it to a single value. +

            + See also Array.prototype.reduce() for left-to-right.

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            reverse

            +
            public V8Value reverse(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.reverse(). + The reverse() method of Array instances reverses an array in place and returns the reference to the same array, + the first array element now becoming the last, and the last array element becoming the first. In other words, + elements order in the array will be turned towards the direction opposite to that previously stated.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setByIndex

            +
            public boolean setByIndex(java.lang.Object targetObject,
            +                          int index,
            +                          java.lang.Object value)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Sets by index.
            +
            +
            Specified by:
            +
            setByIndex in interface IClassProxyPlugin
            +
            Overrides:
            +
            setByIndex in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            index - the index
            +
            value - the value
            +
            Returns:
            +
            true : set, false : not set
            +
            +
          • +
          + + + +
            +
          • +

            shift

            +
            public V8Value shift(V8Runtime v8Runtime,
            +                     java.lang.Object targetObject)
            +              throws JavetException
            +
            Polyfill Array.prototype.shift(). + The shift() method of Array instances removes the first element from an array and returns that removed element. + This method changes the length of the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            slice

            +
            public V8Value slice(V8Runtime v8Runtime,
            +                     java.lang.Object targetObject)
            +              throws JavetException
            +
            Polyfill Array.prototype.slice(). + The slice() method of Array instances returns a shallow copy of a portion of an array + into a new array object selected from start to end (end not included) where start + and end represent the index of items in that array. The original array will not be modified.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            some

            +
            public V8Value some(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.some(). + The some() method of Array instances tests whether at least one element in the array passes + the test implemented by the provided function. It returns true if, in the array, + it finds an element for which the provided function returns true; otherwise it returns false. + It doesn't modify the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            sort

            +
            public V8Value sort(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.sort(). + The sort() method of Array instances sorts the elements of an array in place + and returns the reference to the same array, now sorted. + The default sort order is ascending, built upon converting the elements into strings, + then comparing their sequences of UTF-16 code units values. +

            + The time and space complexity of the sort cannot be guaranteed as it depends on the implementation. +

            + To sort the elements in an array without mutating the original array, use toSorted().

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            splice

            +
            public V8Value splice(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.splice(). + The splice() method of Array instances changes the contents of an array by removing + or replacing existing elements and/or adding new elements in place. +

            + To create a new array with a segment removed and/or replaced without mutating the original array, + use toSpliced(). To access part of an array without modifying it, see slice().

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toJSON

            +
            public V8Value toJSON(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill List.toJSON().
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toReversed

            +
            public V8Value toReversed(V8Runtime v8Runtime,
            +                          java.lang.Object targetObject)
            +                   throws JavetException
            +
            Polyfill Array.prototype.toReversed(). + The toReversed() method of Array instances is the copying counterpart of the reverse() method. + It returns a new array with the elements in reversed order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toSorted

            +
            public V8Value toSorted(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Array.prototype.toSorted() + The toSorted() method of Array instances is the copying version of the sort() method. + It returns a new array with the elements sorted in ascending order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toSpliced

            +
            public V8Value toSpliced(V8Runtime v8Runtime,
            +                         java.lang.Object targetObject)
            +                  throws JavetException
            +
            Polyfill Array.prototype.toSpliced() + The toSpliced() method of Array instances is the copying version of the splice() method. + It returns a new array with some elements removed and/or replaced at a given index.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toString

            +
            public V8Value toString(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Array.prototype.toString() + The toString() method of Array instances returns a string representing the specified array and its elements.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            unshift

            +
            public V8Value unshift(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.unshift(). + The unshift() method of Array instances adds the specified elements to the beginning of an array + and returns the new length of the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            validateTargetObject

            +
            protected java.lang.Object validateTargetObject(java.lang.Object targetObject)
            +
            Description copied from class: BaseJavetProxyPluginSingle
            +
            Validate and return target object.
            +
            +
            Specified by:
            +
            validateTargetObject in class BaseJavetProxyPluginSingle<java.lang.Object>
            +
            Parameters:
            +
            targetObject - the target object
            +
            Returns:
            +
            the typed target object
            +
            +
          • +
          + + + +
            +
          • +

            valueOf

            +
            public V8Value valueOf(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Object.prototype.valueOf(). + The valueOf() method of Object instances converts the this value to an object. + This method is meant to be overridden by derived objects for custom type conversion logic.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            values

            +
            public V8Value values(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.values(). + The values() method of Array instances returns a new array iterator object that iterates the value + of each item in the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            with

            +
            public V8Value with(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.with(). + The with() method of Array instances is the copying version of using the bracket notation to change the value + of a given index. It returns a new array with the element at the given index replaced with the given value.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginClass.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginClass.html new file mode 100644 index 000000000..f3cf30c8d --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginClass.html @@ -0,0 +1,485 @@ + + + + + +JavetProxyPluginClass (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy.plugins
      +

      Class JavetProxyPluginClass

      +
      +
      + +
      + +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Field Detail

          + + + +
            +
          • +

            NAME

            +
            public static final java.lang.String NAME
            +
            The constant NAME.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            JavetProxyPluginClass

            +
            public JavetProxyPluginClass()
            +
            Instantiates a new Javet proxy plugin class.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getInstance

            +
            public static JavetProxyPluginClass getInstance()
            +
            Gets instance.
            +
            +
            Returns:
            +
            the instance
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getName

            +
            public java.lang.String getName()
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets the plugin name.
            +
            +
            Returns:
            +
            the plugin name
            +
            +
          • +
          + + + +
            +
          • +

            getProxyGetByString

            +
            public <E extends java.lang.Exception> IClassProxyPluginFunction<E> getProxyGetByString(java.lang.Class<?> targetClass,
            +                                                                                        java.lang.String propertyName)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets proxy get function by string property.
            +
            +
            Type Parameters:
            +
            E - the type parameter
            +
            Parameters:
            +
            targetClass - the target class
            +
            propertyName - the property name
            +
            Returns:
            +
            the proxy get by string
            +
            +
          • +
          + + + + + + + +
            +
          • +

            isMethodProxyable

            +
            public boolean isMethodProxyable(java.lang.String methodName,
            +                                 java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is method proxyable.
            +
            +
            Parameters:
            +
            methodName - the method name
            +
            targetClass - the target class
            +
            Returns:
            +
            true : yes, false : no
            +
            +
          • +
          + + + +
            +
          • +

            isProxyable

            +
            public boolean isProxyable(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is the target class proxyable.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : proxyable, false : not proxyable
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginDefault.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginDefault.html new file mode 100644 index 000000000..7ee771843 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginDefault.html @@ -0,0 +1,2521 @@ + + + + + +JavetProxyPluginDefault (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy.plugins
      +

      Class JavetProxyPluginDefault

      +
      +
      + +
      + +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Field Detail

          + + + +
            +
          • +

            NAME

            +
            public static final java.lang.String NAME
            +
            The constant NAME.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            BIG_INT_PROTOTYPE_TO_LOCALE_STRING

            +
            protected static final java.lang.String BIG_INT_PROTOTYPE_TO_LOCALE_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + + + + +
            +
          • +

            CODE_POINT_AT

            +
            protected static final java.lang.String CODE_POINT_AT
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_DATE

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_DATE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_DAY

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_DAY
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_FULL_YEAR

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_FULL_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_HOURS

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_HOURS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_MILLISECONDS

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_MILLISECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_MINUTES

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_MINUTES
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_MONTH

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_MONTH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_SECONDS

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_SECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_TIME

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_TIME
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_TIMEZONE_OFFSET

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_TIMEZONE_OFFSET
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_UTC_DATE

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_UTC_DATE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_UTC_DAY

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_UTC_DAY
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_UTC_FULL_YEAR

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_UTC_FULL_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_UTC_HOURS

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_UTC_HOURS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_UTC_MILLISECONDS

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_UTC_MILLISECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_UTC_MINUTES

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_UTC_MINUTES
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_UTC_MONTH

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_UTC_MONTH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_UTC_SECONDS

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_UTC_SECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_GET_YEAR

            +
            protected static final java.lang.String DATE_PROTOTYPE_GET_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_DATE

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_DATE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_FULL_YEAR

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_FULL_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_HOURS

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_HOURS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_MILLISECONDS

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_MILLISECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_MINUTES

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_MINUTES
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_MONTH

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_MONTH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_SECONDS

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_SECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_TIME

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_TIME
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_UTC_DATE

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_UTC_DATE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_UTC_FULL_YEAR

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_UTC_FULL_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_UTC_HOURS

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_UTC_HOURS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_UTC_MILLISECONDS

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_UTC_MILLISECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_UTC_MINUTES

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_UTC_MINUTES
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_UTC_MONTH

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_UTC_MONTH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_UTC_SECONDS

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_UTC_SECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SET_YEAR

            +
            protected static final java.lang.String DATE_PROTOTYPE_SET_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_SYMBOL_TO_PRIMITIVE

            +
            protected static final java.lang.String DATE_PROTOTYPE_SYMBOL_TO_PRIMITIVE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_TO_DATE_STRING

            +
            protected static final java.lang.String DATE_PROTOTYPE_TO_DATE_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_TO_ISOSTRING

            +
            protected static final java.lang.String DATE_PROTOTYPE_TO_ISOSTRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_TO_JSON

            +
            protected static final java.lang.String DATE_PROTOTYPE_TO_JSON
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_TO_LOCALE_DATE_STRING

            +
            protected static final java.lang.String DATE_PROTOTYPE_TO_LOCALE_DATE_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_TO_LOCALE_STRING

            +
            protected static final java.lang.String DATE_PROTOTYPE_TO_LOCALE_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_TO_LOCALE_TIME_STRING

            +
            protected static final java.lang.String DATE_PROTOTYPE_TO_LOCALE_TIME_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_TO_STRING

            +
            protected static final java.lang.String DATE_PROTOTYPE_TO_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_TO_TIME_STRING

            +
            protected static final java.lang.String DATE_PROTOTYPE_TO_TIME_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_TO_UTC_STRING

            +
            protected static final java.lang.String DATE_PROTOTYPE_TO_UTC_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            DATE_PROTOTYPE_VALUE_OF

            +
            protected static final java.lang.String DATE_PROTOTYPE_VALUE_OF
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ENDS_WITH

            +
            protected static final java.lang.String ENDS_WITH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_BIG_INTEGER

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_BIG_INTEGER
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_BOOLEAN

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_BOOLEAN
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_BYTE

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_BYTE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_CHARACTER

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_CHARACTER
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_DOUBLE

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_DOUBLE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_FLOAT

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_FLOAT
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_INTEGER

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_INTEGER
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_LONG

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_LONG
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_SHORT

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_SHORT
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_STRING

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_ZONED_DATE_TIME

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_ZONED_DATE_TIME
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_DATE

            +
            protected static final java.lang.String GET_DATE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + + + + +
            +
          • +

            GET_FULL_YEAR

            +
            protected static final java.lang.String GET_FULL_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_HOURS

            +
            protected static final java.lang.String GET_HOURS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_MILLISECONDS

            +
            protected static final java.lang.String GET_MILLISECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_MINUTES

            +
            protected static final java.lang.String GET_MINUTES
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_MONTH

            +
            protected static final java.lang.String GET_MONTH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_SECONDS

            +
            protected static final java.lang.String GET_SECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_TIME

            +
            protected static final java.lang.String GET_TIME
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_TIMEZONE_OFFSET

            +
            protected static final java.lang.String GET_TIMEZONE_OFFSET
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_UTC_DATE

            +
            protected static final java.lang.String GET_UTC_DATE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_UTC_DAY

            +
            protected static final java.lang.String GET_UTC_DAY
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_UTC_FULL_YEAR

            +
            protected static final java.lang.String GET_UTC_FULL_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_UTC_HOURS

            +
            protected static final java.lang.String GET_UTC_HOURS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_UTC_MILLISECONDS

            +
            protected static final java.lang.String GET_UTC_MILLISECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_UTC_MINUTES

            +
            protected static final java.lang.String GET_UTC_MINUTES
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_UTC_MONTH

            +
            protected static final java.lang.String GET_UTC_MONTH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_UTC_SECONDS

            +
            protected static final java.lang.String GET_UTC_SECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            GET_YEAR

            +
            protected static final java.lang.String GET_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            INDEX_OF

            +
            protected static final java.lang.String INDEX_OF
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            LAST_INDEX_OF

            +
            protected static final java.lang.String LAST_INDEX_OF
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + + + + +
            +
          • +

            NUMBER_PROTOTYPE_TO_EXPONENTIAL

            +
            protected static final java.lang.String NUMBER_PROTOTYPE_TO_EXPONENTIAL
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            NUMBER_PROTOTYPE_TO_FIXED

            +
            protected static final java.lang.String NUMBER_PROTOTYPE_TO_FIXED
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            NUMBER_PROTOTYPE_TO_LOCALE_STRING

            +
            protected static final java.lang.String NUMBER_PROTOTYPE_TO_LOCALE_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            NUMBER_PROTOTYPE_TO_PRECISION

            +
            protected static final java.lang.String NUMBER_PROTOTYPE_TO_PRECISION
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            REPLACE_ALL

            +
            protected static final java.lang.String REPLACE_ALL
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_DATE

            +
            protected static final java.lang.String SET_DATE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_FULL_YEAR

            +
            protected static final java.lang.String SET_FULL_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_HOURS

            +
            protected static final java.lang.String SET_HOURS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_MILLISECONDS

            +
            protected static final java.lang.String SET_MILLISECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_MINUTES

            +
            protected static final java.lang.String SET_MINUTES
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_MONTH

            +
            protected static final java.lang.String SET_MONTH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_SECONDS

            +
            protected static final java.lang.String SET_SECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_TIME

            +
            protected static final java.lang.String SET_TIME
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_UTC_DATE

            +
            protected static final java.lang.String SET_UTC_DATE
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_UTC_FULL_YEAR

            +
            protected static final java.lang.String SET_UTC_FULL_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_UTC_HOURS

            +
            protected static final java.lang.String SET_UTC_HOURS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_UTC_MILLISECONDS

            +
            protected static final java.lang.String SET_UTC_MILLISECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_UTC_MINUTES

            +
            protected static final java.lang.String SET_UTC_MINUTES
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_UTC_MONTH

            +
            protected static final java.lang.String SET_UTC_MONTH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_UTC_SECONDS

            +
            protected static final java.lang.String SET_UTC_SECONDS
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SET_YEAR

            +
            protected static final java.lang.String SET_YEAR
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + + + + +
            +
          • +

            STARTS_WITH

            +
            protected static final java.lang.String STARTS_WITH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SUBSTRING

            +
            protected static final java.lang.String SUBSTRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            SUPPORTED_CLASSES

            +
            protected static final java.util.Set<java.lang.Class<?>> SUPPORTED_CLASSES
            +
          • +
          + + + +
            +
          • +

            TO_DATE_STRING

            +
            protected static final java.lang.String TO_DATE_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_EXPONENTIAL

            +
            protected static final java.lang.String TO_EXPONENTIAL
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_FIXED

            +
            protected static final java.lang.String TO_FIXED
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_ISO_STRING

            +
            protected static final java.lang.String TO_ISO_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_LOCALE_DATE_STRING

            +
            protected static final java.lang.String TO_LOCALE_DATE_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_LOCALE_STRING

            +
            protected static final java.lang.String TO_LOCALE_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_LOCALE_TIME_STRING

            +
            protected static final java.lang.String TO_LOCALE_TIME_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_PRECISION

            +
            protected static final java.lang.String TO_PRECISION
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_TIME_STRING

            +
            protected static final java.lang.String TO_TIME_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            TO_UTC_STRING

            +
            protected static final java.lang.String TO_UTC_STRING
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + +
        • +
        + +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            JavetProxyPluginDefault

            +
            public JavetProxyPluginDefault()
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getInstance

            +
            public static JavetProxyPluginDefault getInstance()
            +
            Gets instance.
            +
            +
            Returns:
            +
            the instance
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getName

            +
            public java.lang.String getName()
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets the plugin name.
            +
            +
            Returns:
            +
            the plugin name
            +
            +
          • +
          + + + + + + + +
            +
          • +

            isProxyable

            +
            public boolean isProxyable(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is the target class proxyable.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : proxyable, false : not proxyable
            +
            +
          • +
          + + + +
            +
          • +

            valueOf

            +
            public V8Value valueOf(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill valueOf().
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginList.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginList.html new file mode 100644 index 000000000..26533d32e --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginList.html @@ -0,0 +1,2811 @@ + + + + + +JavetProxyPluginList (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy.plugins
      +

      Class JavetProxyPluginList

      +
      +
      + +
      +
        +
      • +
        +
        All Implemented Interfaces:
        +
        IClassProxyPlugin
        +
        +
        +
        +
        public class JavetProxyPluginList
        +extends BaseJavetProxyPluginSingle<java.util.List<java.lang.Object>>
        +
        The type Javet proxy plugin list.
        +
        +
        Since:
        +
        3.0.4
        +
        +
      • +
      +
      +
      +
        +
      • + + + + + +
          +
        • + + +

          Method Summary

          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          All Methods Static Methods Instance Methods Concrete Methods 
          Modifier and TypeMethod and Description
          V8Valueat(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.at().
          +
          V8Valueconcat(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.concat().
          +
          V8ValuecopyWithin(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.copyWithin().
          +
          protected V8ValuecreateTargetObject(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Create target object.
          +
          booleandeleteByObject(java.lang.Object targetObject, + java.lang.Object propertyKey) +
          Delete by object property.
          +
          V8Valueentries(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.entries().
          +
          V8Valueevery(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.every().
          +
          V8Valuefill(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.fill() + The fill() method of Array instances changes all elements within a range of indices + in an array to a static value.
          +
          V8Valuefilter(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.filter().
          +
          V8Valuefind(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.find().
          +
          V8ValuefindIndex(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.findIndex().
          +
          V8ValuefindLast(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.findLast().
          +
          V8ValuefindLastIndex(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.findLastIndex().
          +
          V8Valueflat(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.flat().
          +
          V8ValueflatMap(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.flatMap().
          +
          V8ValueforEach(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.forEach().
          +
          java.lang.ObjectgetByIndex(java.lang.Object targetObject, + int index) +
          Gets by index.
          +
          static JavetProxyPluginListgetInstance() +
          Gets instance.
          +
          java.lang.StringgetName() +
          Gets the plugin name.
          +
          java.lang.Object[]getProxyOwnKeys(java.lang.Object targetObject) +
          Get proxy own keys for Object.getOwnPropertyNames().
          +
          <T> IJavetEntityPropertyDescriptor<T>getProxyOwnPropertyDescriptor(java.lang.Object targetObject, + java.lang.Object propertyName) +
          Gets proxy own property descriptor.
          +
          booleanhasByObject(java.lang.Object targetObject, + java.lang.Object propertyKey) +
          Has by object property.
          +
          V8Valueincludes(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.includes().
          +
          V8ValueindexOf(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.indexOf().
          +
          booleanisDeleteSupported(java.lang.Class<?> targetClass) +
          Is keyword delete supported.
          +
          booleanisHasSupported(java.lang.Class<?> targetClass) +
          Is has() supported.
          +
          booleanisIndexSupported(java.lang.Class<?> targetClass) +
          Is index supported.
          +
          booleanisMethodProxyable(java.lang.String methodName, + java.lang.Class<?> targetClass) +
          Is method proxyable.
          +
          booleanisOwnKeysSupported(java.lang.Class<?> targetClass) +
          Is ownKeys() supported.
          +
          booleanisProxyable(java.lang.Class<?> targetClass) +
          Is the target class proxyable.
          +
          V8Valuejoin(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.join().
          +
          V8Valuekeys(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.keys().
          +
          V8ValuelastIndexOf(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.lastIndexOf().
          +
          V8Valuelength(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.length.
          +
          V8Valuemap(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.map().
          +
          V8Valuepop(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.pop().
          +
          V8Valuepush(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.push().
          +
          V8Valuereduce(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.reduce().
          +
          V8ValuereduceRight(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.reduceRight() + The reduceRight() method of Array instances applies a function against an accumulator and each value + of the array (from right-to-left) to reduce it to a single value.
          +
          V8Valuereverse(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.reverse().
          +
          booleansetByIndex(java.lang.Object targetObject, + int index, + java.lang.Object value) +
          Sets by index.
          +
          V8Valueshift(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.shift().
          +
          V8Valueslice(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.slice().
          +
          V8Valuesome(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.some().
          +
          V8Valuesort(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.sort().
          +
          V8Valuesplice(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.splice().
          +
          V8ValuetoJSON(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill List.toJSON().
          +
          V8ValuetoReversed(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.toReversed().
          +
          V8ValuetoSorted(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.toSorted() + The toSorted() method of Array instances is the copying version of the sort() method.
          +
          V8ValuetoSpliced(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.toSpliced() + The toSpliced() method of Array instances is the copying version of the splice() method.
          +
          V8ValuetoString(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.toString() + The toString() method of Array instances returns a string representing the specified array and its elements.
          +
          V8Valueunshift(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.unshift().
          +
          protected java.util.List<java.lang.Object>validateTargetObject(java.lang.Object targetObject) +
          Validate and return target object.
          +
          V8ValuevalueOf(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Object.prototype.valueOf().
          +
          V8Valuevalues(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.values().
          +
          V8Valuewith(V8Runtime v8Runtime, + java.lang.Object targetObject) +
          Polyfill Array.prototype.with().
          +
          + + +
            +
          • + + +

            Methods inherited from class java.lang.Object

            +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • +
          +
        • +
        +
      • +
      +
      +
      +
        +
      • + + + +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            JavetProxyPluginList

            +
            public JavetProxyPluginList()
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getInstance

            +
            public static JavetProxyPluginList getInstance()
            +
            Gets instance.
            +
            +
            Returns:
            +
            the instance
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            at

            +
            public V8Value at(V8Runtime v8Runtime,
            +                  java.lang.Object targetObject)
            +           throws JavetException
            +
            Polyfill Array.prototype.at(). + The at() method of Array instances takes an integer value and returns the item at that index, + allowing for positive and negative integers. Negative integers count back from the last item in the array. +

            + Parameters + index + Zero-based index of the array element to be returned, converted to an integer. + Negative index counts back from the end of the array โ€” if index < 0, index + array.length is accessed. +

            + Return value + The element in the array matching the given index. + Always returns undefined if index < -array.length or index >= array.length + without attempting to access the corresponding property.

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            concat

            +
            public V8Value concat(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.concat(). + The concat() method of Array instances is used to merge two or more arrays. + This method does not change the existing arrays, but instead returns a new array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            copyWithin

            +
            public V8Value copyWithin(V8Runtime v8Runtime,
            +                          java.lang.Object targetObject)
            +                   throws JavetException
            +
            Polyfill Array.prototype.copyWithin(). + The copyWithin() method of Array instances shallow copies part of this array to another location + in the same array and returns this array without modifying its length.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + +
            +
          • +

            deleteByObject

            +
            public boolean deleteByObject(java.lang.Object targetObject,
            +                              java.lang.Object propertyKey)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Delete by object property.
            +
            +
            Specified by:
            +
            deleteByObject in interface IClassProxyPlugin
            +
            Overrides:
            +
            deleteByObject in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : deleted, false : not deleted
            +
            +
          • +
          + + + +
            +
          • +

            entries

            +
            public V8Value entries(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.entries(). + The entries() method of Array instances returns a new array iterator object + that contains the key/value pairs for each index in the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            every

            +
            public V8Value every(V8Runtime v8Runtime,
            +                     java.lang.Object targetObject)
            +              throws JavetException
            +
            Polyfill Array.prototype.every(). + The every() method of Array instances tests whether all elements in the array pass the test implemented + by the provided function. It returns a Boolean value.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            fill

            +
            public V8Value fill(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.fill() + The fill() method of Array instances changes all elements within a range of indices + in an array to a static value. It returns the modified array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            filter

            +
            public V8Value filter(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.filter(). + The filter() method of Array instances creates a shallow copy of a portion of a given array, + filtered down to just the elements from the given array that pass the test implemented by the provided function.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            find

            +
            public V8Value find(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.find(). + The find() method of Array instances returns the first element in the provided array + that satisfies the provided testing function. If no values satisfy the testing function, undefined is returned. +

            + If you need the index of the found element in the array, use findIndex(). + If you need to find the index of a value, use indexOf(). (It's similar to findIndex(), + but checks each element for equality with the value instead of using a testing function.) + If you need to find if a value exists in an array, use includes(). + Again, it checks each element for equality with the value instead of using a testing function. + If you need to find if any element satisfies the provided testing function, use some().

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            findIndex

            +
            public V8Value findIndex(V8Runtime v8Runtime,
            +                         java.lang.Object targetObject)
            +                  throws JavetException
            +
            Polyfill Array.prototype.findIndex(). + The findIndex() method of Array instances returns the index of the first element in an array + that satisfies the provided testing function. If no elements satisfy the testing function, -1 is returned. +

            + See also the find() method, + which returns the first element that satisfies the testing function (rather than its index).

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            findLast

            +
            public V8Value findLast(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Array.prototype.findLast(). + The findLast() method of Array instances iterates the array in reverse order + and returns the value of the first element that satisfies the provided testing function. + If no elements satisfy the testing function, undefined is returned. +

            + If you need to find: +

            + the first element that matches, use find(). + the index of the last matching element in the array, use findLastIndex(). + the index of a value, use indexOf(). (It's similar to findIndex(), + but checks each element for equality with the value instead of using a testing function.) + whether a value exists in an array, use includes(). + Again, it checks each element for equality with the value instead of using a testing function. + if any element satisfies the provided testing function, use some().

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            findLastIndex

            +
            public V8Value findLastIndex(V8Runtime v8Runtime,
            +                             java.lang.Object targetObject)
            +                      throws JavetException
            +
            Polyfill Array.prototype.findLastIndex(). + The findLastIndex() method of Array instances iterates the array in reverse order + and returns the index of the first element that satisfies the provided testing function. + If no elements satisfy the testing function, -1 is returned. +

            + See also the findLast() method, + which returns the value of last element that satisfies the testing function (rather than its index).

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            flat

            +
            public V8Value flat(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.flat(). + The flat() method of Array instances creates a new array with all sub-array elements concatenated into + it recursively up to the specified depth.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            flatMap

            +
            public V8Value flatMap(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.flatMap(). + The flatMap() method of Array instances returns a new array formed by applying a given callback function + to each element of the array, and then flattening the result by one level. + It is identical to a map() followed by a flat() of depth 1 (arr.map(...args).flat()), + but slightly more efficient than calling those two methods separately.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            forEach

            +
            public V8Value forEach(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.forEach(). + The forEach() method of Array instances executes a provided function once for each array element.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getByIndex

            +
            public java.lang.Object getByIndex(java.lang.Object targetObject,
            +                                   int index)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets by index.
            +
            +
            Specified by:
            +
            getByIndex in interface IClassProxyPlugin
            +
            Overrides:
            +
            getByIndex in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            index - the index
            +
            Returns:
            +
            the by index
            +
            +
          • +
          + + + +
            +
          • +

            getName

            +
            public java.lang.String getName()
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets the plugin name.
            +
            +
            Returns:
            +
            the plugin name
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            hasByObject

            +
            public boolean hasByObject(java.lang.Object targetObject,
            +                           java.lang.Object propertyKey)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Has by object property.
            +
            +
            Specified by:
            +
            hasByObject in interface IClassProxyPlugin
            +
            Overrides:
            +
            hasByObject in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : has, false : not has
            +
            +
          • +
          + + + +
            +
          • +

            includes

            +
            public V8Value includes(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Array.prototype.includes(). + The includes() method of Array instances determines whether an array includes a certain value among its entries, + returning true or false as appropriate.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            indexOf

            +
            public V8Value indexOf(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.indexOf(). + The indexOf() method of Array instances returns the first index + at which a given element can be found in the array, or -1 if it is not present.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + + + + + + + + + +
            +
          • +

            isMethodProxyable

            +
            public boolean isMethodProxyable(java.lang.String methodName,
            +                                 java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is method proxyable.
            +
            +
            Parameters:
            +
            methodName - the method name
            +
            targetClass - the target class
            +
            Returns:
            +
            true : yes, false : no
            +
            +
          • +
          + + + + + + + +
            +
          • +

            isProxyable

            +
            public boolean isProxyable(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is the target class proxyable.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : proxyable, false : not proxyable
            +
            +
          • +
          + + + +
            +
          • +

            join

            +
            public V8Value join(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.join(). + The join() method of Array instances creates and returns a new string by concatenating all of the elements + in this array, separated by commas or a specified separator string. If the array has only one item, + then that item will be returned without using the separator.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            keys

            +
            public V8Value keys(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.keys(). + The keys() method of Array instances returns a new array iterator object + that contains the keys for each index in the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            lastIndexOf

            +
            public V8Value lastIndexOf(V8Runtime v8Runtime,
            +                           java.lang.Object targetObject)
            +                    throws JavetException
            +
            Polyfill Array.prototype.lastIndexOf(). + The lastIndexOf() method of Array instances returns the last index + at which a given element can be found in the array, or -1 if it is not present. + The array is searched backwards, starting at fromIndex.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            length

            +
            public V8Value length(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.length. + The length data property of an Array instance represents the number of elements in that array. + The value is an unsigned, 32-bit integer that is always numerically greater than the highest index in the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            map

            +
            public V8Value map(V8Runtime v8Runtime,
            +                   java.lang.Object targetObject)
            +            throws JavetException
            +
            Polyfill Array.prototype.map(). + The map() method of Array instances creates a new array populated with the results of + calling a provided function on every element in the calling array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            pop

            +
            public V8Value pop(V8Runtime v8Runtime,
            +                   java.lang.Object targetObject)
            +            throws JavetException
            +
            Polyfill Array.prototype.pop(). + The pop() method of Array instances removes the last element from an array and returns that element. + This method changes the length of the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            push

            +
            public V8Value push(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.push(). + The push() method of Array instances adds the specified elements to the end of an array + and returns the new length of the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            reduce

            +
            public V8Value reduce(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.reduce(). + The reduce() method of Array instances executes a user-supplied "reducer" callback function on each element + of the array, in order, passing in the return value from the calculation on the preceding element. + The final result of running the reducer across all elements of the array is a single value. +

            + The first time that the callback is run there is no "return value of the previous calculation". + If supplied, an initial value may be used in its place. Otherwise the array element at index 0 is used + as the initial value and iteration starts from the next element (index 1 instead of index 0).

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            reduceRight

            +
            public V8Value reduceRight(V8Runtime v8Runtime,
            +                           java.lang.Object targetObject)
            +                    throws JavetException
            +
            Polyfill Array.prototype.reduceRight() + The reduceRight() method of Array instances applies a function against an accumulator and each value + of the array (from right-to-left) to reduce it to a single value. +

            + See also Array.prototype.reduce() for left-to-right.

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            reverse

            +
            public V8Value reverse(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.reverse(). + The reverse() method of Array instances reverses an array in place and returns the reference to the same array, + the first array element now becoming the last, and the last array element becoming the first. In other words, + elements order in the array will be turned towards the direction opposite to that previously stated.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            setByIndex

            +
            public boolean setByIndex(java.lang.Object targetObject,
            +                          int index,
            +                          java.lang.Object value)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Sets by index.
            +
            +
            Specified by:
            +
            setByIndex in interface IClassProxyPlugin
            +
            Overrides:
            +
            setByIndex in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            index - the index
            +
            value - the value
            +
            Returns:
            +
            true : set, false : not set
            +
            +
          • +
          + + + +
            +
          • +

            shift

            +
            public V8Value shift(V8Runtime v8Runtime,
            +                     java.lang.Object targetObject)
            +              throws JavetException
            +
            Polyfill Array.prototype.shift(). + The shift() method of Array instances removes the first element from an array and returns that removed element. + This method changes the length of the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            slice

            +
            public V8Value slice(V8Runtime v8Runtime,
            +                     java.lang.Object targetObject)
            +              throws JavetException
            +
            Polyfill Array.prototype.slice(). + The slice() method of Array instances returns a shallow copy of a portion of an array + into a new array object selected from start to end (end not included) where start + and end represent the index of items in that array. The original array will not be modified.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            some

            +
            public V8Value some(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.some(). + The some() method of Array instances tests whether at least one element in the array passes + the test implemented by the provided function. It returns true if, in the array, + it finds an element for which the provided function returns true; otherwise it returns false. + It doesn't modify the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            sort

            +
            public V8Value sort(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.sort(). + The sort() method of Array instances sorts the elements of an array in place + and returns the reference to the same array, now sorted. + The default sort order is ascending, built upon converting the elements into strings, + then comparing their sequences of UTF-16 code units values. +

            + The time and space complexity of the sort cannot be guaranteed as it depends on the implementation. +

            + To sort the elements in an array without mutating the original array, use toSorted().

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            splice

            +
            public V8Value splice(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.splice(). + The splice() method of Array instances changes the contents of an array by removing + or replacing existing elements and/or adding new elements in place. +

            + To create a new array with a segment removed and/or replaced without mutating the original array, + use toSpliced(). To access part of an array without modifying it, see slice().

            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toJSON

            +
            public V8Value toJSON(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill List.toJSON().
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toReversed

            +
            public V8Value toReversed(V8Runtime v8Runtime,
            +                          java.lang.Object targetObject)
            +                   throws JavetException
            +
            Polyfill Array.prototype.toReversed(). + The toReversed() method of Array instances is the copying counterpart of the reverse() method. + It returns a new array with the elements in reversed order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toSorted

            +
            public V8Value toSorted(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Array.prototype.toSorted() + The toSorted() method of Array instances is the copying version of the sort() method. + It returns a new array with the elements sorted in ascending order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toSpliced

            +
            public V8Value toSpliced(V8Runtime v8Runtime,
            +                         java.lang.Object targetObject)
            +                  throws JavetException
            +
            Polyfill Array.prototype.toSpliced() + The toSpliced() method of Array instances is the copying version of the splice() method. + It returns a new array with some elements removed and/or replaced at a given index.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toString

            +
            public V8Value toString(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Array.prototype.toString() + The toString() method of Array instances returns a string representing the specified array and its elements.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            unshift

            +
            public V8Value unshift(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Array.prototype.unshift(). + The unshift() method of Array instances adds the specified elements to the beginning of an array + and returns the new length of the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            validateTargetObject

            +
            protected java.util.List<java.lang.Object> validateTargetObject(java.lang.Object targetObject)
            +
            Description copied from class: BaseJavetProxyPluginSingle
            +
            Validate and return target object.
            +
            +
            Specified by:
            +
            validateTargetObject in class BaseJavetProxyPluginSingle<java.util.List<java.lang.Object>>
            +
            Parameters:
            +
            targetObject - the target object
            +
            Returns:
            +
            the typed target object
            +
            +
          • +
          + + + +
            +
          • +

            valueOf

            +
            public V8Value valueOf(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Object.prototype.valueOf(). + The valueOf() method of Object instances converts the this value to an object. + This method is meant to be overridden by derived objects for custom type conversion logic.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            values

            +
            public V8Value values(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Array.prototype.values(). + The values() method of Array instances returns a new array iterator object that iterates the value + of each item in the array.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            with

            +
            public V8Value with(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Array.prototype.with(). + The with() method of Array instances is the copying version of using the bracket notation to change the value + of a given index. It returns a new array with the element at the given index replaced with the given value.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginMap.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginMap.html new file mode 100644 index 000000000..350ded818 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginMap.html @@ -0,0 +1,1413 @@ + + + + + +JavetProxyPluginMap (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy.plugins
      +

      Class JavetProxyPluginMap

      +
      +
      + +
      +
        +
      • +
        +
        All Implemented Interfaces:
        +
        IClassProxyPlugin
        +
        +
        +
        +
        public class JavetProxyPluginMap
        +extends BaseJavetProxyPluginSingle<java.util.Map<java.lang.Object,java.lang.Object>>
        +
        The type Javet proxy plugin map.
        +
        +
        Since:
        +
        3.0.4
        +
        +
      • +
      +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Field Detail

          + + + +
            +
          • +

            NAME

            +
            public static final java.lang.String NAME
            +
            The constant NAME.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + + + + + + + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_MAP

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_MAP
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            FOR_EACH

            +
            protected static final java.lang.String FOR_EACH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + + + + + + + + + + + + +
            +
          • +

            OBJECT_MAP

            +
            protected static final java.lang.String OBJECT_MAP
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            DEFAULT_PROXYABLE_METHODS

            +
            protected static final java.lang.String[] DEFAULT_PROXYABLE_METHODS
            +
            The constant DEFAULT_PROXYABLE_METHODS.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + +
            +
          • +

            proxyableMethods

            +
            protected final java.util.Set<java.lang.String> proxyableMethods
            +
            The proxyable methods.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            JavetProxyPluginMap

            +
            public JavetProxyPluginMap()
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getInstance

            +
            public static JavetProxyPluginMap getInstance()
            +
            Gets instance.
            +
            +
            Returns:
            +
            the instance
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            clear

            +
            public V8Value clear(V8Runtime v8Runtime,
            +                     java.lang.Object targetObject)
            +              throws JavetException
            +
            Polyfill Map.prototype.clear(). + The clear() method of Map instances removes all elements from this map.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + +
            +
          • +

            delete

            +
            public V8Value delete(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Map.prototype.delete() + The delete() method of Map instances removes the specified element from this map by key.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            deleteByObject

            +
            public boolean deleteByObject(java.lang.Object targetObject,
            +                              java.lang.Object propertyKey)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Delete by object property.
            +
            +
            Specified by:
            +
            deleteByObject in interface IClassProxyPlugin
            +
            Overrides:
            +
            deleteByObject in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : deleted, false : not deleted
            +
            +
          • +
          + + + +
            +
          • +

            entries

            +
            public V8Value entries(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Map.prototype.entries() + The entries() method of Map instances returns a new map iterator object that contains the [key, value] + pairs for each element in this map in insertion order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            forEach

            +
            public V8Value forEach(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Map.prototype.forEach(). + The forEach() method of Map instances executes a provided function once per each key/value pair in this map, + in insertion order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            get

            +
            public V8Value get(V8Runtime v8Runtime,
            +                   java.lang.Object targetObject)
            +            throws JavetException
            +
            Polyfill Map.prototype.get(). + The get() method of Map instances returns a specified element from this map. + If the value that is associated to the provided key is an object, + then you will get a reference to that object and any change made to + that object will effectively modify it inside the Map object.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getName

            +
            public java.lang.String getName()
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets the plugin name.
            +
            +
            Returns:
            +
            the plugin name
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            has

            +
            public V8Value has(V8Runtime v8Runtime,
            +                   java.lang.Object targetObject)
            +            throws JavetException
            +
            Polyfill Map.prototype.has() + The has() method of Map instances returns a boolean indicating whether an element + with the specified key exists in this map or not.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            hasByObject

            +
            public boolean hasByObject(java.lang.Object targetObject,
            +                           java.lang.Object propertyKey)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Has by object property.
            +
            +
            Specified by:
            +
            hasByObject in interface IClassProxyPlugin
            +
            Overrides:
            +
            hasByObject in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : has, false : not has
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            isMethodProxyable

            +
            public boolean isMethodProxyable(java.lang.String methodName,
            +                                 java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is method proxyable.
            +
            +
            Parameters:
            +
            methodName - the method name
            +
            targetClass - the target class
            +
            Returns:
            +
            true : yes, false : no
            +
            +
          • +
          + + + + + + + +
            +
          • +

            isProxyable

            +
            public boolean isProxyable(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is the target class proxyable.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : proxyable, false : not proxyable
            +
            +
          • +
          + + + + + + + +
            +
          • +

            keys

            +
            public V8Value keys(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Map.prototype.keys() + The keys() method of Map instances returns a new map iterator object that contains the keys for each element + in this map in insertion order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + +
            +
          • +

            set

            +
            public V8Value set(V8Runtime v8Runtime,
            +                   java.lang.Object targetObject)
            +            throws JavetException
            +
            Polyfill Map.prototype.set(). + The set() method of Map instances adds or updates an entry in this map with a specified key and a value.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            size

            +
            public V8Value size(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Map.prototype.size. + The size accessor property of Map instances returns the number of elements in this map.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toJSON

            +
            public V8Value toJSON(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Map.toJSON().
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toString

            +
            public V8Value toString(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Object.prototype.toString() + The toString() method of Map instances always returns [object Map].
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            validateTargetObject

            +
            protected java.util.Map<java.lang.Object,java.lang.Object> validateTargetObject(java.lang.Object targetObject)
            +
            Description copied from class: BaseJavetProxyPluginSingle
            +
            Validate and return target object.
            +
            +
            Specified by:
            +
            validateTargetObject in class BaseJavetProxyPluginSingle<java.util.Map<java.lang.Object,java.lang.Object>>
            +
            Parameters:
            +
            targetObject - the target object
            +
            Returns:
            +
            the typed target object
            +
            +
          • +
          + + + +
            +
          • +

            valueOf

            +
            public V8Value valueOf(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Object.prototype.valueOf(). + The valueOf() method of Object instances converts the this value to an object. + This method is meant to be overridden by derived objects for custom type conversion logic.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            values

            +
            public V8Value values(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Map.prototype.values() + The values() method of Map instances returns a new map iterator object that contains the values + for each element in this map in insertion order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginSet.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginSet.html new file mode 100644 index 000000000..c26fe95b4 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/JavetProxyPluginSet.html @@ -0,0 +1,1270 @@ + + + + + +JavetProxyPluginSet (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.interop.proxy.plugins
      +

      Class JavetProxyPluginSet

      +
      +
      + +
      +
        +
      • +
        +
        All Implemented Interfaces:
        +
        IClassProxyPlugin
        +
        +
        +
        +
        public class JavetProxyPluginSet
        +extends BaseJavetProxyPluginSingle<java.util.Set<java.lang.Object>>
        +
        The type Javet proxy plugin set.
        +
        +
        Since:
        +
        3.0.4
        +
        +
      • +
      +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Field Detail

          + + + +
            +
          • +

            NAME

            +
            public static final java.lang.String NAME
            +
            The constant NAME.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + + + + + + + + + + + + + +
            +
          • +

            ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_SET

            +
            protected static final java.lang.String ERROR_TARGET_OBJECT_MUST_BE_AN_INSTANCE_OF_SET
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + +
            +
          • +

            FOR_EACH

            +
            protected static final java.lang.String FOR_EACH
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            OBJECT_SET

            +
            protected static final java.lang.String OBJECT_SET
            +
            +
            See Also:
            +
            Constant Field Values
            +
            +
          • +
          + + + + + + + +
            +
          • +

            DEFAULT_PROXYABLE_METHODS

            +
            protected static final java.lang.String[] DEFAULT_PROXYABLE_METHODS
            +
            The constant DEFAULT_PROXYABLE_METHODS.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + +
            +
          • +

            proxyableMethods

            +
            protected final java.util.Set<java.lang.String> proxyableMethods
            +
            The Override methods.
            +
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            JavetProxyPluginSet

            +
            public JavetProxyPluginSet()
            +
          • +
          +
        • +
        + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getInstance

            +
            public static JavetProxyPluginSet getInstance()
            +
            Gets instance.
            +
            +
            Returns:
            +
            the instance
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            add

            +
            public V8Value add(V8Runtime v8Runtime,
            +                   java.lang.Object targetObject)
            +            throws JavetException
            +
            Polyfill Set.prototype.add(). + The add() method of Set instances inserts a new element with a specified value in to this set, + if there isn't an element with the same value already in this set
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            clear

            +
            public V8Value clear(V8Runtime v8Runtime,
            +                     java.lang.Object targetObject)
            +              throws JavetException
            +
            Polyfill Set.prototype.clear(). + The clear() method of Set instances removes all elements from this set.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + + + + + +
            +
          • +

            delete

            +
            public V8Value delete(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Set.prototype.delete(). + The delete() method of Set instances removes a specified value from this set, if it is in the set.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            entries

            +
            public V8Value entries(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Set.prototype.entries(). + The entries() method of Set instances returns a new set iterator object that contains an array of + [value, value] for each element in this set, in insertion order. + For Set objects there is no key like in Map objects. However, to keep the API similar to the Map object, + each entry has the same value for its key and value here, so that an array [value, value] is returned.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            forEach

            +
            public V8Value forEach(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Set.prototype.forEach() + The forEach() method of Set instances executes a provided function once for each value in this set, + in insertion order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            getName

            +
            public java.lang.String getName()
            +
            Description copied from interface: IClassProxyPlugin
            +
            Gets the plugin name.
            +
            +
            Returns:
            +
            the plugin name
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            has

            +
            public V8Value has(V8Runtime v8Runtime,
            +                   java.lang.Object targetObject)
            +            throws JavetException
            +
            Polyfill Set.prototype.has(). + The has() method of Set instances returns a boolean indicating whether an element + with the specified value exists in this set or not.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            hasByObject

            +
            public boolean hasByObject(java.lang.Object targetObject,
            +                           java.lang.Object propertyKey)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Has by object property.
            +
            +
            Specified by:
            +
            hasByObject in interface IClassProxyPlugin
            +
            Overrides:
            +
            hasByObject in class BaseJavetProxyPlugin
            +
            Parameters:
            +
            targetObject - the target object
            +
            propertyKey - the property key
            +
            Returns:
            +
            true : has, false : not has
            +
            +
          • +
          + + + + + + + +
            +
          • +

            isMethodProxyable

            +
            public boolean isMethodProxyable(java.lang.String methodName,
            +                                 java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is method proxyable.
            +
            +
            Parameters:
            +
            methodName - the method name
            +
            targetClass - the target class
            +
            Returns:
            +
            true : yes, false : no
            +
            +
          • +
          + + + + + + + +
            +
          • +

            isProxyable

            +
            public boolean isProxyable(java.lang.Class<?> targetClass)
            +
            Description copied from interface: IClassProxyPlugin
            +
            Is the target class proxyable.
            +
            +
            Parameters:
            +
            targetClass - the target class
            +
            Returns:
            +
            true : proxyable, false : not proxyable
            +
            +
          • +
          + + + + + + + + + + + +
            +
          • +

            size

            +
            public V8Value size(V8Runtime v8Runtime,
            +                    java.lang.Object targetObject)
            +             throws JavetException
            +
            Polyfill Set.prototype.size + The size accessor property of Set instances returns the number of (unique) elements in this set.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toJSON

            +
            public V8Value toJSON(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Set.toJSON().
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            toString

            +
            public V8Value toString(V8Runtime v8Runtime,
            +                        java.lang.Object targetObject)
            +                 throws JavetException
            +
            Polyfill Object.prototype.toString() + The toString() method of Set instances always returns [object Set].
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            validateTargetObject

            +
            protected java.util.Set<java.lang.Object> validateTargetObject(java.lang.Object targetObject)
            +
            Description copied from class: BaseJavetProxyPluginSingle
            +
            Validate and return target object.
            +
            +
            Specified by:
            +
            validateTargetObject in class BaseJavetProxyPluginSingle<java.util.Set<java.lang.Object>>
            +
            Parameters:
            +
            targetObject - the target object
            +
            Returns:
            +
            the typed target object
            +
            +
          • +
          + + + +
            +
          • +

            valueOf

            +
            public V8Value valueOf(V8Runtime v8Runtime,
            +                       java.lang.Object targetObject)
            +                throws JavetException
            +
            Polyfill Object.prototype.valueOf(). + The valueOf() method of Object instances converts the this value to an object. + This method is meant to be overridden by derived objects for custom type conversion logic.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          + + + +
            +
          • +

            values

            +
            public V8Value values(V8Runtime v8Runtime,
            +                      java.lang.Object targetObject)
            +               throws JavetException
            +
            Polyfill Set.prototype.values(). + The values() method of Set instances returns a new set iterator object that contains the values + for each element in this set in insertion order.
            +
            +
            Parameters:
            +
            v8Runtime - the V8 runtime
            +
            targetObject - the target object
            +
            Returns:
            +
            the V8 value
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/package-frame.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/package-frame.html new file mode 100644 index 000000000..983f73a7e --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/package-frame.html @@ -0,0 +1,27 @@ + + + + + +com.caoccao.javet.interop.proxy.plugins (javet-linux-arm64 3.0.4 API) + + + + +

      com.caoccao.javet.interop.proxy.plugins

      + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/package-summary.html new file mode 100644 index 000000000..29a44c5c3 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/package-summary.html @@ -0,0 +1,189 @@ + + + + + +com.caoccao.javet.interop.proxy.plugins (javet-linux-arm64 3.0.4 API) + + + + + + + + + + +
      +

      Package com.caoccao.javet.interop.proxy.plugins

      +
      +
      + +
      + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/package-tree.html b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/package-tree.html new file mode 100644 index 000000000..ccc9705b4 --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/interop/proxy/plugins/package-tree.html @@ -0,0 +1,151 @@ + + + + + +com.caoccao.javet.interop.proxy.plugins Class Hierarchy (javet-linux-arm64 3.0.4 API) + + + + + + + + + + +
      +

      Hierarchy For Package com.caoccao.javet.interop.proxy.plugins

      +Package Hierarchies: + +
      +
      +

      Class Hierarchy

      + +
      + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/node/modules/BaseNodeModule.html b/docs/reference/javadoc/com/caoccao/javet/node/modules/BaseNodeModule.html index bf52719aa..38ed5d30e 100644 --- a/docs/reference/javadoc/com/caoccao/javet/node/modules/BaseNodeModule.html +++ b/docs/reference/javadoc/com/caoccao/javet/node/modules/BaseNodeModule.html @@ -3,7 +3,7 @@ -BaseNodeModule (javet-linux-arm64 3.0.3 API) +BaseNodeModule (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/node/modules/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/node/modules/package-summary.html index 111d29b2a..4ff5838f0 100644 --- a/docs/reference/javadoc/com/caoccao/javet/node/modules/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/node/modules/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.node.modules (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.node.modules (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/utils/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/utils/package-summary.html index be5de4961..02527416c 100644 --- a/docs/reference/javadoc/com/caoccao/javet/utils/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/utils/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.utils (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.utils (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/utils/receivers/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/utils/receivers/package-summary.html index 3c91e176c..5724c43c7 100644 --- a/docs/reference/javadoc/com/caoccao/javet/utils/receivers/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/utils/receivers/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.utils.receivers (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.utils.receivers (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ + + + + + + + + + +
      +
      com.caoccao.javet.values
      +

      Interface IV8ValueNonProxyable

      +
      +
      +
      + +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/IV8ValuePrimitiveObject.html b/docs/reference/javadoc/com/caoccao/javet/values/IV8ValuePrimitiveObject.html new file mode 100644 index 000000000..cb545c89f --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/values/IV8ValuePrimitiveObject.html @@ -0,0 +1,399 @@ + + + + + +IV8ValuePrimitiveObject (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.values
      +

      Interface IV8ValuePrimitiveObject<T extends V8Value>

      +
      +
      +
      + +
      +
      + +
      +
      +
        +
      • + + +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/IV8ValuePrimitiveValue.html b/docs/reference/javadoc/com/caoccao/javet/values/IV8ValuePrimitiveValue.html new file mode 100644 index 000000000..4dfd3993d --- /dev/null +++ b/docs/reference/javadoc/com/caoccao/javet/values/IV8ValuePrimitiveValue.html @@ -0,0 +1,269 @@ + + + + + +IV8ValuePrimitiveValue (javet-linux-arm64 3.0.4 API) + + + + + + + + + + + +
      +
      com.caoccao.javet.values
      +

      Interface IV8ValuePrimitiveValue<T extends V8Value>

      +
      +
      +
      + +
      +
      + +
      +
      +
        +
      • + +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            toObject

            +
            T toObject()
            +    throws JavetException
            +
            Convert the primitive value to the primitive object.
            +
            +
            Returns:
            +
            the primitive object
            +
            Throws:
            +
            JavetException - the javet exception
            +
            Since:
            +
            3.0.4
            +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/V8Data.html b/docs/reference/javadoc/com/caoccao/javet/values/V8Data.html index 0a3e89d6b..77a03b068 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/V8Data.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/V8Data.html @@ -3,7 +3,7 @@ -V8Data (javet-linux-arm64 3.0.3 API) +V8Data (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -13,6 +13,9 @@

      Interfaces

      Classes

        diff --git a/docs/reference/javadoc/com/caoccao/javet/values/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/values/package-summary.html index a9d45d8be..8a033073e 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.values (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.values (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ + + + + + + + + + +
        +
        com.caoccao.javet.values.primitive
        +

        Class V8ValueBigNumber<Primitive>

        +
        +
        + +
        + +
        +
        + +
        +
        +
          +
        • + +
            +
          • + + +

            Constructor Detail

            + + + +
              +
            • +

              V8ValueBigNumber

              +
              public V8ValueBigNumber(V8Runtime v8Runtime)
              +                 throws JavetException
              +
              Instantiates a new V8 value big number.
              +
              +
              Parameters:
              +
              v8Runtime - the V8 runtime
              +
              Throws:
              +
              JavetException - the javet exception
              +
              Since:
              +
              3.0.4
              +
              +
            • +
            + + + + + +
              +
            • +

              V8ValueBigNumber

              +
              public V8ValueBigNumber(V8Runtime v8Runtime,
              +                        Primitive value)
              +                 throws JavetException
              +
              Instantiates a new V8 value big number.
              +
              +
              Parameters:
              +
              v8Runtime - the V8 runtime
              +
              value - the value
              +
              Throws:
              +
              JavetException - the javet exception
              +
              Since:
              +
              3.0.4
              +
              +
            • +
            +
          • +
          +
        • +
        +
        +
        + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/primitive/V8ValueBoolean.html b/docs/reference/javadoc/com/caoccao/javet/values/primitive/V8ValueBoolean.html index 955110b43..0ce25223a 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/primitive/V8ValueBoolean.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/primitive/V8ValueBoolean.html @@ -3,7 +3,7 @@ -V8ValueBoolean (javet-linux-arm64 3.0.3 API) +V8ValueBoolean (javet-linux-arm64 3.0.4 API) @@ -11,13 +11,13 @@ @@ -11,13 +11,13 @@ @@ -11,13 +11,13 @@ @@ -11,13 +11,13 @@ @@ -11,13 +11,13 @@ + + + + + + + + + +
        +
        com.caoccao.javet.values.primitive
        +

        Class V8ValueNumber<Primitive>

        +
        +
        + +
        + +
        +
        + +
        +
        +
          +
        • + +
            +
          • + + +

            Constructor Detail

            + + + +
              +
            • +

              V8ValueNumber

              +
              public V8ValueNumber(V8Runtime v8Runtime)
              +              throws JavetException
              +
              Instantiates a new V8 value number.
              +
              +
              Parameters:
              +
              v8Runtime - the V8 runtime
              +
              Throws:
              +
              JavetException - the javet exception
              +
              Since:
              +
              3.0.4
              +
              +
            • +
            + + + + + +
              +
            • +

              V8ValueNumber

              +
              public V8ValueNumber(V8Runtime v8Runtime,
              +                     Primitive value)
              +              throws JavetException
              +
              Instantiates a new V8 value number.
              +
              +
              Parameters:
              +
              v8Runtime - the V8 runtime
              +
              value - the value
              +
              Throws:
              +
              JavetException - the javet exception
              +
              Since:
              +
              3.0.4
              +
              +
            • +
            +
          • +
          +
        • +
        +
        +
        + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/primitive/V8ValuePrimitive.html b/docs/reference/javadoc/com/caoccao/javet/values/primitive/V8ValuePrimitive.html index 7517dc145..e859ce9dc 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/primitive/V8ValuePrimitive.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/primitive/V8ValuePrimitive.html @@ -3,7 +3,7 @@ -V8ValuePrimitive (javet-linux-arm64 3.0.3 API) +V8ValuePrimitive (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -13,11 +13,13 @@

        Classes

        • V8ValueBigInteger
        • +
        • V8ValueBigNumber
        • V8ValueBoolean
        • V8ValueDouble
        • V8ValueInteger
        • V8ValueLong
        • V8ValueNull
        • +
        • V8ValueNumber
        • V8ValuePrimitive
        • V8ValueString
        • V8ValueUndefined
        • diff --git a/docs/reference/javadoc/com/caoccao/javet/values/primitive/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/values/primitive/package-summary.html index 5d0a875d8..ce33003ca 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/primitive/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/primitive/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.values.primitive (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.values.primitive (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,14 +11,14 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
          +
          com.caoccao.javet.values.reference
          +

          Class V8ValueBooleanObject

          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueDataView.html b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueDataView.html index 632c26db8..663be881b 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueDataView.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueDataView.html @@ -3,7 +3,7 @@ -V8ValueDataView (javet-linux-arm64 3.0.3 API) +V8ValueDataView (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ + + + + + + + + + +
          +
          com.caoccao.javet.values.reference
          +

          Class V8ValueDoubleObject

          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueError.html b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueError.html index d97f4722d..bbfd62648 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueError.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueError.html @@ -3,7 +3,7 @@ -V8ValueError (javet-linux-arm64 3.0.3 API) +V8ValueError (javet-linux-arm64 3.0.4 API) @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ + + + + + + + + + +
          +
          com.caoccao.javet.values.reference
          +

          Class V8ValueIntegerObject

          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueIterator.html b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueIterator.html index c74beee52..df17f8e68 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueIterator.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueIterator.html @@ -3,7 +3,7 @@ -V8ValueIterator (javet-linux-arm64 3.0.3 API) +V8ValueIterator (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ + + + + + + + + + +
          +
          com.caoccao.javet.values.reference
          +

          Class V8ValueLongObject

          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueMap.html b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueMap.html index cccd9330b..1826b1bae 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueMap.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueMap.html @@ -3,7 +3,7 @@ -V8ValueMap (javet-linux-arm64 3.0.3 API) +V8ValueMap (javet-linux-arm64 3.0.4 API) @@ -11,13 +11,13 @@ @@ -11,14 +11,14 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
          +
          com.caoccao.javet.values.reference
          +

          Class V8ValueStringObject

          +
          +
          + +
          + +
          +
          + +
          +
          + +
          +
          + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueSymbol.html b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueSymbol.html index b93bb489f..3c2ebe7cd 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueSymbol.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/reference/V8ValueSymbol.html @@ -3,7 +3,7 @@ -V8ValueSymbol (javet-linux-arm64 3.0.3 API) +V8ValueSymbol (javet-linux-arm64 3.0.4 API) @@ -11,13 +11,13 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + + + + + + + + + +
          +
          com.caoccao.javet.values.reference.builtin
          +

          Class V8ValueBuiltInReflect

          +
          +
          + +
          + +
          +
          + +
          +
          +
            +
          • + +
              +
            • + + +

              Field Detail

              + + + +
                +
              • +

                FUNCTION_APPLY

                +
                public static final java.lang.String FUNCTION_APPLY
                +
                The constant FUNCTION_APPLY.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_CONSTRUCT

                +
                public static final java.lang.String FUNCTION_CONSTRUCT
                +
                The constant FUNCTION_CONSTRUCT.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_DEFINE_PROPERTY

                +
                public static final java.lang.String FUNCTION_DEFINE_PROPERTY
                +
                The constant FUNCTION_DEFINE_PROPERTY.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_DELETE_PROPERTY

                +
                public static final java.lang.String FUNCTION_DELETE_PROPERTY
                +
                The constant FUNCTION_DELETE_PROPERTY.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_GET

                +
                public static final java.lang.String FUNCTION_GET
                +
                The constant FUNCTION_GET.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_GET_PROTOTYPE_OF

                +
                public static final java.lang.String FUNCTION_GET_PROTOTYPE_OF
                +
                The constant FUNCTION_GET_PROTOTYPE_OF.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_GET_OWN_PROPERTY_DESCRIPTOR

                +
                public static final java.lang.String FUNCTION_GET_OWN_PROPERTY_DESCRIPTOR
                +
                The constant FUNCTION_GET_OWN_PROPERTY_DESCRIPTOR.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_HAS

                +
                public static final java.lang.String FUNCTION_HAS
                +
                The constant FUNCTION_HAS.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_IS_EXTENSIBLE

                +
                public static final java.lang.String FUNCTION_IS_EXTENSIBLE
                +
                The constant FUNCTION_IS_EXTENSIBLE.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_OWN_KEYS

                +
                public static final java.lang.String FUNCTION_OWN_KEYS
                +
                The constant FUNCTION_OWN_KEYS.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_PREVENT_EXTENSIONS

                +
                public static final java.lang.String FUNCTION_PREVENT_EXTENSIONS
                +
                The constant FUNCTION_PREVENT_EXTENSIONS.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_SET

                +
                public static final java.lang.String FUNCTION_SET
                +
                The constant FUNCTION_SET.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                FUNCTION_SET_PROTOTYPE_OF

                +
                public static final java.lang.String FUNCTION_SET_PROTOTYPE_OF
                +
                The constant FUNCTION_SET_PROTOTYPE_OF.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              + + + +
                +
              • +

                NAME

                +
                public static final java.lang.String NAME
                +
                The constant NAME.
                +
                +
                Since:
                +
                3.0.4
                +
                See Also:
                +
                Constant Field Values
                +
                +
              • +
              +
            • +
            + +
              +
            • + + +

              Constructor Detail

              + + + +
                +
              • +

                V8ValueBuiltInReflect

                +
                public V8ValueBuiltInReflect(V8Runtime v8Runtime,
                +                             long handle)
                +                      throws JavetException
                +
                Instantiates a new V8 value built in reflect.
                +
                +
                Parameters:
                +
                v8Runtime - the V8 runtime
                +
                handle - the handle
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              +
            • +
            + +
              +
            • + + +

              Method Detail

              + + + +
                +
              • +

                _get

                +
                public V8Value _get(V8Value target,
                +                    V8Value property)
                +             throws JavetException
                +
                Reflect.get(). + The Reflect.get() static method is like the property accessor syntax, but as a function.
                +
                +
                Parameters:
                +
                target - the target
                +
                property - the property
                +
                Returns:
                +
                the V8 value
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                _has

                +
                public V8ValueBoolean _has(V8Value target,
                +                           V8Value property)
                +                    throws JavetException
                +
                Reflect.has(). + The Reflect.has() static method is like the in operator, but as a function.
                +
                +
                Parameters:
                +
                target - the target
                +
                property - the property
                +
                Returns:
                +
                the V8 value boolean
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                _set

                +
                public V8ValueBoolean _set(V8Value target,
                +                           V8Value propertyKey,
                +                           V8Value propertyValue,
                +                           V8Value receiver)
                +                    throws JavetException
                +
                Reflect.set(). + The Reflect.set() static method is like the property accessor and assignment syntax, but as a function.
                +
                +
                Parameters:
                +
                target - the target
                +
                propertyKey - the property key
                +
                propertyValue - the property value
                +
                receiver - the receiver
                +
                Returns:
                +
                the V8 value boolean
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                apply

                +
                public V8Value apply(V8Value target,
                +                     V8Value thisObject,
                +                     V8ValueArray arguments)
                +              throws JavetException
                +
                Reflect.apply(). + The Reflect.apply() static method calls a target function with arguments as specified.
                +
                +
                Parameters:
                +
                target - the target
                +
                thisObject - this object
                +
                arguments - the arguments
                +
                Returns:
                +
                the V8 value
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                construct

                +
                public V8Value construct(V8Value target,
                +                         V8ValueArray arguments,
                +                         V8Value newTarget)
                +                  throws JavetException
                +
                Reflect.construct(). + The Reflect.construct() static method is like the new operator, but as a function. + It is equivalent to calling new target(...args). + It gives also the added option to specify a different new.target value.
                +
                +
                Parameters:
                +
                target - the target
                +
                arguments - the arguments
                +
                newTarget - the new target
                +
                Returns:
                +
                the V8 value
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                defineProperty

                +
                public V8ValueBoolean defineProperty(V8Value target,
                +                                     V8Value property,
                +                                     V8ValueObject descriptor)
                +                              throws JavetException
                +
                Reflect.defineProperty(). + The Reflect.defineProperty() static method is like Object.defineProperty() but returns a Boolean.
                +
                +
                Parameters:
                +
                target - the target
                +
                property - the property
                +
                descriptor - the descriptor
                +
                Returns:
                +
                the V8 value boolean
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                deleteProperty

                +
                public V8ValueBoolean deleteProperty(V8Value target,
                +                                     V8Value property)
                +                              throws JavetException
                +
                Reflect.deleteProperty(). + The Reflect.deleteProperty() static method is like the delete operator, + but as a function. It deletes a property from an object.
                +
                +
                Parameters:
                +
                target - the target
                +
                property - the property
                +
                Returns:
                +
                the V8 value boolean
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                getOwnPropertyDescriptor

                +
                public V8Value getOwnPropertyDescriptor(V8Value target,
                +                                        V8Value property)
                +                                 throws JavetException
                +
                Reflect.getOwnPropertyDescriptor(). + The Reflect.getOwnPropertyDescriptor() static method is like Object.getOwnPropertyDescriptor(). + It returns a property descriptor of the given property if it exists on the object, undefined otherwise.
                +
                +
                Parameters:
                +
                target - the target
                +
                property - the property
                +
                Returns:
                +
                the own property descriptor
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                getPrototypeOf

                +
                public V8Value getPrototypeOf(V8Value target)
                +                       throws JavetException
                +
                Reflect.getPrototypeOf(). + The Reflect.getPrototypeOf() static method is like Object.getPrototypeOf(). + It returns the prototype of the specified object.
                +
                +
                Parameters:
                +
                target - the target
                +
                Returns:
                +
                the prototype of
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                isExtensible

                +
                public V8ValueBoolean isExtensible(V8Value target)
                +                            throws JavetException
                +
                Reflect.isExtensible(). + The Reflect.isExtensible() static method is like Object.isExtensible(). + It determines if an object is extensible (whether it can have new properties added to it).
                +
                +
                Parameters:
                +
                target - the target
                +
                Returns:
                +
                the V8 value boolean
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                ownKeys

                +
                public V8ValueArray ownKeys(V8Value target)
                +                     throws JavetException
                +
                Reflect.ownKeys(). + The Reflect.ownKeys() static method returns an array of the target object's own property keys.
                +
                +
                Parameters:
                +
                target - the target
                +
                Returns:
                +
                the V8 value array
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                preventExtensions

                +
                public V8ValueBoolean preventExtensions(V8Value target)
                +                                 throws JavetException
                +
                Reflect.preventExtensions(). + The Reflect.preventExtensions() static method is like Object.preventExtensions(). + It prevents new properties from ever being added to an object (i.e., prevents future extensions to the object).
                +
                +
                Parameters:
                +
                target - the target
                +
                Returns:
                +
                the V8 value boolean
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + +
                +
              • +

                setPrototypeOf

                +
                public V8ValueBoolean setPrototypeOf(V8Value target,
                +                                     V8Value prototype)
                +                              throws JavetException
                +
                Reflect.setPrototypeOf(). + The Reflect.setPrototypeOf() static method is like Object.setPrototypeOf() but returns a Boolean. + It sets the prototype (i.e., the internal [[Prototype]] property) of a specified object.
                +
                +
                Parameters:
                +
                target - the target
                +
                prototype - the prototype
                +
                Returns:
                +
                the V8 value boolean
                +
                Throws:
                +
                JavetException - the javet exception
                +
                Since:
                +
                3.0.4
                +
                +
              • +
              + + + + +
            • +
            +
          • +
          +
          +
          + + + + + + + diff --git a/docs/reference/javadoc/com/caoccao/javet/values/reference/builtin/V8ValueBuiltInSymbol.html b/docs/reference/javadoc/com/caoccao/javet/values/reference/builtin/V8ValueBuiltInSymbol.html index e17f1ed40..53c4b73c8 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/reference/builtin/V8ValueBuiltInSymbol.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/reference/builtin/V8ValueBuiltInSymbol.html @@ -3,7 +3,7 @@ -V8ValueBuiltInSymbol (javet-linux-arm64 3.0.3 API) +V8ValueBuiltInSymbol (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -15,6 +15,7 @@

          Classes

        • V8ValueBuiltInJson
        • V8ValueBuiltInObject
        • V8ValueBuiltInPromise
        • +
        • V8ValueBuiltInReflect
        • V8ValueBuiltInSymbol
        diff --git a/docs/reference/javadoc/com/caoccao/javet/values/reference/builtin/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/values/reference/builtin/package-summary.html index 542e84683..42f8dd93c 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/reference/builtin/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/reference/builtin/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.values.reference.builtin (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.values.reference.builtin (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -42,11 +42,15 @@

        Classes

      • V8ValueArguments
      • V8ValueArray
      • V8ValueArrayBuffer
      • +
      • V8ValueBooleanObject
      • V8ValueDataView
      • +
      • V8ValueDoubleObject
      • V8ValueError
      • V8ValueFunction
      • V8ValueGlobalObject
      • +
      • V8ValueIntegerObject
      • V8ValueIterator
      • +
      • V8ValueLongObject
      • V8ValueMap
      • V8ValueObject
      • V8ValuePromise
      • @@ -55,6 +59,7 @@

        Classes

      • V8ValueRegExp
      • V8ValueSet
      • V8ValueSharedArrayBuffer
      • +
      • V8ValueStringObject
      • V8ValueSymbol
      • V8ValueSymbolObject
      • V8ValueTypedArray
      • diff --git a/docs/reference/javadoc/com/caoccao/javet/values/reference/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/values/reference/package-summary.html index 139ea4cee..d54f34fa3 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/reference/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/reference/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.values.reference (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.values.reference (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/docs/reference/javadoc/com/caoccao/javet/values/virtual/package-summary.html b/docs/reference/javadoc/com/caoccao/javet/values/virtual/package-summary.html index da1372815..1295eb7fe 100644 --- a/docs/reference/javadoc/com/caoccao/javet/values/virtual/package-summary.html +++ b/docs/reference/javadoc/com/caoccao/javet/values/virtual/package-summary.html @@ -3,7 +3,7 @@ -com.caoccao.javet.values.virtual (javet-linux-arm64 3.0.3 API) +com.caoccao.javet.values.virtual (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -31,6 +31,7 @@

        Packages

      • com.caoccao.javet.interop.monitoring
      • com.caoccao.javet.interop.options
      • com.caoccao.javet.interop.proxy
      • +
      • com.caoccao.javet.interop.proxy.plugins
      • com.caoccao.javet.node.modules
      • com.caoccao.javet.utils
      • com.caoccao.javet.utils.receivers
      • diff --git a/docs/reference/javadoc/overview-summary.html b/docs/reference/javadoc/overview-summary.html index 485a6bdcc..6022837d8 100644 --- a/docs/reference/javadoc/overview-summary.html +++ b/docs/reference/javadoc/overview-summary.html @@ -3,7 +3,7 @@ -Overview (javet-linux-arm64 3.0.3 API) +Overview (javet-linux-arm64 3.0.4 API) @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ + diff --git a/docs/reference/resource_management/load_and_unload.html b/docs/reference/resource_management/load_and_unload.html index d3b1180f6..0f90a343d 100644 --- a/docs/reference/resource_management/load_and_unload.html +++ b/docs/reference/resource_management/load_and_unload.html @@ -6,7 +6,7 @@ - Load and Unload - Javet 3.0.3 documentation + Load and Unload - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
        @@ -151,7 +151,7 @@
        - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
      • Proxy Converter
      • Bridge Converter
      • Custom Converter
      • +
      • Proxy Plugins
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
        @@ -304,12 +305,41 @@

        Release Notes 3.0.x#

        +
        +

        3.0.4 V8 v12.2#

        +
          +
        • Upgraded V8 to v12.2.281.16 (2024-02-15)

        • +
        • Upgraded Node.js to v20.11.1 (2024-02-14)

        • +
        • 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

        • +
        +

        3.0.3 V8 v12.1#

        • Upgraded V8 to v12.1.285.26 (2024-01-17)

        • Upgraded Node.js to v20.11.0 (2024-01-09)

        • -
        • Restore the reference lock

        • +
        • Restored the reference lock

        • Downgraded to Ubuntu 20.04 for better compatibility

        • Fixed a slight memory leak in closing the V8 runtime

        • Fixed a memory leak in dynamic proxy and dynamic object

        • @@ -414,6 +444,7 @@

          3.0.0 V8 v11.8
          • Release Notes 3.0.x
          • Resource Management
              @@ -340,7 +341,7 @@ - + diff --git a/docs/searchindex.js b/docs/searchindex.js index c49fc3ec2..41106f175 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["development/build", "development/build_javet_from_scratch", "development/build_javet_with_docker", "development/debug_with_chrome_developer_tools", "development/design", "development/index", "development/performance", "development/test", "development/tools", "faq/background/history_with_j2v8", "faq/background/index", "faq/background/what_is_the_motivation", "faq/development/can_native_image_be_supported", "faq/development/how_to_think_in_javet", "faq/development/index", "faq/development/where_are_es6_api_in_v8_mode", "faq/development/where_are_the_examples", "faq/development/why_is_the_inspector_disabled_in_node_js_mode", "faq/environment/can_javet_support_legacy_linux", "faq/environment/index", "faq/index", "faq/troubleshooting/a_dynamic_link_library_dll_initialization_routine_failed", "faq/troubleshooting/can_i18n_be_supported", "faq/troubleshooting/can_i_debug_javet_in_chrome_dev_tools", "faq/troubleshooting/index", "faq/troubleshooting/sigsegv_at_createv8runtime_in_v8_mode_on_aws", "faq/troubleshooting/why_node_js_crashes_when_being_closed", "index", "reference/converters/bridge_converter", "reference/converters/custom_converter", "reference/converters/index", "reference/converters/object_converter", "reference/converters/primitive_converter", "reference/converters/proxy_converter", "reference/index", "reference/javadoc/index", "reference/resource_management/index", "reference/resource_management/load_and_unload", "reference/resource_management/lock", "reference/resource_management/memory_management", "reference/resource_management/modularization", "reference/resource_management/snapshot", "reference/tips/best_practices", "reference/tips/index", "reference/todo_list", "reference/troubleshooting/error_codes", "reference/troubleshooting/index", "reference/troubleshooting/logging", "reference/troubleshooting/termination", "reference/v8_values/index", "reference/v8_values/v8_collection", "reference/v8_values/v8_function", "reference/v8_values/v8_promise", "release_notes/index", "release_notes/release_notes_0_7", "release_notes/release_notes_0_8", "release_notes/release_notes_0_9", "release_notes/release_notes_1_0", "release_notes/release_notes_1_1", "release_notes/release_notes_2_0", "release_notes/release_notes_2_1", "release_notes/release_notes_2_2", "release_notes/release_notes_3_0", "tutorial/advanced/access_the_whole_jvm", "tutorial/advanced/expose_json_node_in_v8", "tutorial/advanced/index", "tutorial/advanced/interact_with_node_js", "tutorial/advanced/java_and_javascript_interop", "tutorial/advanced/object_converter", "tutorial/basic/engine_pool", "tutorial/basic/hello_javet", "tutorial/basic/index", "tutorial/basic/installation", "tutorial/basic/interception", "tutorial/basic/javet_shell", "tutorial/basic/node_js_mode_and_v8_mode", "tutorial/basic/polyfill", "tutorial/basic/spring_integration", "tutorial/index", "tutorial/migration_guides/index", "tutorial/migration_guides/migrate_from_j2v8"], "filenames": ["development/build.rst", "development/build_javet_from_scratch.rst", "development/build_javet_with_docker.rst", "development/debug_with_chrome_developer_tools.rst", "development/design.rst", "development/index.rst", "development/performance.rst", "development/test.rst", "development/tools.rst", "faq/background/history_with_j2v8.rst", "faq/background/index.rst", "faq/background/what_is_the_motivation.rst", "faq/development/can_native_image_be_supported.rst", "faq/development/how_to_think_in_javet.rst", "faq/development/index.rst", "faq/development/where_are_es6_api_in_v8_mode.rst", "faq/development/where_are_the_examples.rst", "faq/development/why_is_the_inspector_disabled_in_node_js_mode.rst", "faq/environment/can_javet_support_legacy_linux.rst", "faq/environment/index.rst", "faq/index.rst", "faq/troubleshooting/a_dynamic_link_library_dll_initialization_routine_failed.rst", "faq/troubleshooting/can_i18n_be_supported.rst", "faq/troubleshooting/can_i_debug_javet_in_chrome_dev_tools.rst", "faq/troubleshooting/index.rst", "faq/troubleshooting/sigsegv_at_createv8runtime_in_v8_mode_on_aws.rst", "faq/troubleshooting/why_node_js_crashes_when_being_closed.rst", "index.rst", "reference/converters/bridge_converter.rst", "reference/converters/custom_converter.rst", "reference/converters/index.rst", "reference/converters/object_converter.rst", "reference/converters/primitive_converter.rst", "reference/converters/proxy_converter.rst", "reference/index.rst", "reference/javadoc/index.rst", "reference/resource_management/index.rst", "reference/resource_management/load_and_unload.rst", "reference/resource_management/lock.rst", "reference/resource_management/memory_management.rst", "reference/resource_management/modularization.rst", "reference/resource_management/snapshot.rst", "reference/tips/best_practices.rst", "reference/tips/index.rst", "reference/todo_list.rst", "reference/troubleshooting/error_codes.rst", "reference/troubleshooting/index.rst", "reference/troubleshooting/logging.rst", "reference/troubleshooting/termination.rst", "reference/v8_values/index.rst", "reference/v8_values/v8_collection.rst", "reference/v8_values/v8_function.rst", "reference/v8_values/v8_promise.rst", "release_notes/index.rst", "release_notes/release_notes_0_7.rst", "release_notes/release_notes_0_8.rst", "release_notes/release_notes_0_9.rst", "release_notes/release_notes_1_0.rst", "release_notes/release_notes_1_1.rst", "release_notes/release_notes_2_0.rst", "release_notes/release_notes_2_1.rst", "release_notes/release_notes_2_2.rst", "release_notes/release_notes_3_0.rst", "tutorial/advanced/access_the_whole_jvm.rst", "tutorial/advanced/expose_json_node_in_v8.rst", "tutorial/advanced/index.rst", "tutorial/advanced/interact_with_node_js.rst", "tutorial/advanced/java_and_javascript_interop.rst", "tutorial/advanced/object_converter.rst", "tutorial/basic/engine_pool.rst", "tutorial/basic/hello_javet.rst", "tutorial/basic/index.rst", "tutorial/basic/installation.rst", "tutorial/basic/interception.rst", "tutorial/basic/javet_shell.rst", "tutorial/basic/node_js_mode_and_v8_mode.rst", "tutorial/basic/polyfill.rst", "tutorial/basic/spring_integration.rst", "tutorial/index.rst", "tutorial/migration_guides/index.rst", "tutorial/migration_guides/migrate_from_j2v8.rst"], "titles": ["Build Javet", "Build Javet from Scratch", "Build Javet with Docker", "Debug with Chrome Developer Tools", "Javet Design", "Development", "Javet Performance", "Test Javet", "Development Tools", "History with J2V8", "Background", "What is the Motivation?", "Can Native Image be Supported?", "How to Think in Javet?", "Development", "Where are ES6 API in V8 Mode?", "Where are the Examples?", "Why is the Inspector Disabled in Node.js Mode?", "Can Javet Support Legacy Linux?", "Environment", "FAQ", "A dynamic link library (DLL) initialization routine failed", "Can i18n be Supported?", "Can I Debug Javet in Chrome DevTools?", "Troubleshooting", "SIGSEGV at createV8Runtime() in V8 Mode on AWS", "Why Node.js Crashes When being Closed?", "Javet", "Bridge Converter", "Custom Converter", "Converters", "Object Converter", "Primitive Converter", "Proxy Converter", "Reference", "API Reference", "Resource Management", "Load and Unload", "Know the Lock", "Memory Management", "Modularization", "Snapshot", "Best Practices", "Tips", "TODO List", "Error Codes", "Troubleshooting", "Logging", "Termination", "V8 Values", "V8 Collection", "V8 Function", "V8 Promise", "Release Notes", "Release Notes 0.7.x", "Release Notes 0.8.x", "Release Notes 0.9.x", "Release Notes 1.0.x", "Release Notes 1.1.x", "Release Notes 2.0.x", "Release Notes 2.1.x", "Release Notes 2.2.x", "Release Notes 3.0.x", "Access the Whole JVM", "Expose JsonNode in V8", "Advanced", "Interact with Node.js", "Java and JavaScript Interop", "Object Converter", "Javet Engine Pool", "Hello Javet", "Basic", "Installation", "Interception", "Javet Shell", "Node.js Mode and V8 Mode", "Polyfill", "Spring Integration", "Tutorial", "Migration Guides", "Migrate from J2V8"], "terms": {"It": [0, 2, 4, 6, 9, 13, 17, 22, 27, 29, 30, 33, 38, 39, 40, 41, 42, 51, 69, 74, 75, 80], "": [0, 2, 4, 6, 9, 11, 25, 26, 29, 33, 38, 39, 40, 41, 42, 45, 51, 52, 63, 64, 66, 68, 75, 80], "quit": [0, 4, 6, 11, 13, 25, 30, 33, 39, 47, 48, 51, 64, 66, 69, 80], "hard": [0, 9, 52, 80], "develop": [0, 17, 20, 23, 27, 41, 45, 52, 54, 64, 80], "successfulli": [0, 2, 3, 25], "variou": [0, 61, 80], "reason": [0, 4, 9, 22, 26, 45, 52, 66, 80], "node": [0, 2, 5, 7, 9, 14, 15, 20, 21, 22, 24, 27, 37, 38, 39, 41, 44, 45, 51, 52, 53, 56, 58, 60, 61, 62, 63, 64, 65, 69, 71, 72, 74, 77, 78], "j": [0, 2, 5, 7, 9, 14, 15, 20, 21, 22, 24, 27, 37, 38, 39, 41, 44, 45, 51, 52, 53, 54, 56, 58, 60, 61, 62, 63, 65, 69, 71, 72, 78], "need": [0, 3, 6, 9, 29, 30, 31, 33, 38, 39, 40, 51, 52, 64, 67, 72, 80], "built": [0, 2, 3, 6, 7, 28, 31, 39, 41, 45, 48, 51, 52, 55, 56, 60, 63, 64, 80], "static": [0, 1, 17, 25, 29, 41, 51, 56, 58, 66], "librari": [0, 2, 3, 4, 7, 13, 20, 22, 24, 40, 45, 47, 51, 56, 63], "monolith": 0, "everi": [0, 4, 13, 30, 38, 39, 51], "o": [0, 2, 4, 27, 38, 41, 45, 51, 64, 80], "platform": [0, 5, 41], "ha": [0, 2, 4, 6, 8, 9, 13, 17, 29, 31, 33, 37, 39, 40, 47, 50, 51, 52, 55, 64, 80], "its": [0, 4, 9, 33, 38, 39, 40, 51, 52], "own": [0, 4, 9, 29, 31, 33, 37, 39, 40, 51, 52], "pitfal": 0, "which": [0, 3, 4, 6, 7, 9, 13, 16, 18, 26, 27, 30, 31, 33, 37, 39, 40, 41, 48, 51, 63, 64, 67, 73, 75, 76, 80], "usual": [0, 29, 33, 40, 48, 51, 52, 63, 66], "make": [0, 1, 2, 17, 30, 31, 39, 40, 41, 52, 66, 76, 80], "frustrat": [0, 9], "even": [0, 9, 80], "desper": 0, "here": [0, 3, 4, 6, 9, 11, 17, 29, 33, 37, 39, 40, 51, 52, 66, 67, 68], "ar": [0, 1, 2, 3, 4, 6, 8, 9, 13, 14, 17, 18, 20, 26, 27, 28, 29, 30, 31, 32, 33, 37, 38, 39, 40, 41, 42, 45, 48, 51, 52, 54, 55, 56, 63, 64, 66, 67, 68, 72, 73, 75, 80], "3": [0, 1, 5, 6, 9, 17, 18, 26, 27, 28, 33, 37, 40, 41, 50, 51, 53, 63, 70, 72, 73, 74], "wai": [0, 4, 13, 26, 27, 28, 29, 33, 37, 39, 40, 41, 42, 48, 51, 52, 56, 64, 66, 69, 73, 77], "docker": [0, 3, 5, 9], "from": [0, 2, 4, 5, 6, 9, 11, 12, 16, 17, 18, 25, 26, 30, 33, 38, 40, 41, 42, 45, 48, 51, 52, 55, 56, 57, 58, 63, 64, 66, 67, 69, 70, 73, 74, 78, 79], "scratch": [0, 5, 11, 41], "all": [0, 1, 3, 4, 9, 12, 26, 28, 29, 31, 33, 37, 39, 40, 41, 51, 55, 57, 63, 64, 66, 68, 80], "them": [0, 3, 33, 39, 40, 51, 64], "share": [0, 1, 4, 38, 40, 51, 52, 66, 80], "same": [0, 4, 17, 38, 39, 40, 42, 51, 52, 64, 80], "next": [0, 30, 51], "section": [0, 40, 41, 51], "ubuntu": [0, 2, 18, 40, 55, 58, 62, 72], "20": [0, 2, 26, 55, 57, 58, 59, 60, 61, 62, 72], "04": [0, 2, 18, 54, 55, 58, 60, 62, 72], "cmake": [0, 1, 9], "25": [0, 57, 59, 62, 72], "1": [0, 4, 6, 9, 13, 18, 27, 28, 29, 31, 33, 37, 40, 41, 42, 48, 50, 51, 53, 63, 64, 67, 68, 72, 73, 74, 75, 76, 80], "jdk": [0, 5, 29, 47, 64], "8": [0, 3, 5, 6, 9, 18, 29, 39, 53, 57, 60, 63, 64, 66, 72], "gradl": [0, 1, 2, 5, 9, 33], "2": [0, 6, 8, 9, 13, 18, 27, 28, 31, 33, 37, 40, 41, 42, 48, 50, 53, 63, 67, 70, 72, 73, 74, 75, 76, 80], "gcc": [0, 18, 55, 62], "11": [0, 27, 29, 57, 58, 59, 62], "python": [0, 1, 5], "9": [0, 9, 18, 53, 63, 66], "catalina": [0, 72], "latest": [0, 2, 12, 75], "brew": 0, "xcode": 0, "4": [0, 6, 9, 33, 37, 39, 40, 50, 51, 53, 63, 66, 72, 73, 74], "16": [0, 6, 18, 39, 55, 56, 58, 59, 60, 61, 72], "10": [0, 2, 6, 33, 39, 48, 57, 62, 64, 72], "visual": [0, 5, 59, 60], "studio": [0, 5, 59, 60], "2022": [0, 5, 58, 59, 60], "commun": [0, 3, 5, 9, 17, 27], "24": [0, 55, 60, 62, 72], "come": [0, 4, 6, 38, 40], "sdk": [0, 47, 77], "windbg": 0, "wsl2": [0, 2], "option": [0, 5, 17, 32, 40, 41, 42, 51, 56, 58, 62, 63, 64, 73, 75], "ndk": [0, 58], "r25b": 0, "30": [0, 59], "javet_hom": [0, 1], "i": [0, 1, 2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37, 38, 39, 40, 41, 42, 45, 47, 48, 50, 52, 55, 56, 63, 64, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 80], "home": 0, "directori": [0, 4, 40, 76], "node_hom": [0, 1], "v8_home": [0, 1], "depot_tools_hom": [0, 1], "googl": [0, 3], "depot": 0, "tool": [0, 1, 2, 5, 17, 18, 23, 27, 41, 54], "android_ndk_hom": [0, 1], "android_sdk_hom": 0, "descript": [0, 33, 39], "custom": [0, 4, 5, 30, 40, 41, 42, 51, 55, 56, 58], "libcxx": 0, "off": [0, 1, 3, 4, 39], "The": [0, 1, 2, 3, 4, 6, 7, 9, 13, 16, 17, 21, 25, 26, 28, 29, 30, 33, 37, 38, 39, 40, 41, 45, 48, 51, 52, 63, 64, 66, 67, 72, 73, 74, 75, 80], "offici": [0, 1, 9, 12, 16, 18, 27, 40], "releas": [0, 1, 4, 6, 9, 27, 39, 45, 80], "doesn": [0, 3, 4, 9, 31, 33, 37, 38, 39, 40, 45, 47, 48, 51, 77, 80], "t": [0, 3, 4, 9, 17, 25, 26, 27, 29, 30, 31, 33, 37, 38, 39, 40, 41, 45, 47, 48, 51, 74, 75, 77, 80], "support": [0, 1, 2, 4, 8, 9, 14, 17, 19, 20, 24, 27, 31, 32, 33, 37, 39, 40, 41, 45, 48, 50, 51, 55, 56, 57, 58, 59, 61, 62, 72, 75, 80], "debug": [0, 4, 5, 17, 20, 24, 27, 47, 51], "extern": [0, 6, 39], "startup": [0, 41], "data": [0, 4, 30, 39, 40, 41, 51, 54, 59, 63], "i18n": [0, 1, 20, 24, 45, 58], "pleas": [0, 1, 2, 3, 4, 6, 11, 17, 18, 22, 23, 27, 30, 33, 37, 38, 39, 40, 42, 48, 51, 52, 53, 63, 64, 67, 68, 69, 70, 72, 73, 74, 76, 80], "contact": [0, 1, 9, 17, 18, 22, 53, 72, 80], "maintain": [0, 17, 18, 22, 53, 72, 80], "privat": [0, 17, 18, 22, 29, 31, 33, 51, 64, 72, 73], "thi": [0, 3, 4, 9, 11, 13, 18, 21, 25, 26, 27, 29, 30, 31, 33, 37, 38, 39, 40, 41, 52, 58, 64, 66, 67, 73, 75, 80], "pointer": [0, 39, 51], "compress": 0, "sandbox": 0, "snapshot": [0, 18, 36, 45, 59], "follow": [1, 2, 3, 4, 12, 16, 18, 22, 25, 26, 27, 29, 31, 39, 40, 41, 42, 45, 47, 50, 51, 52, 63, 64, 66, 73, 75], "guid": [1, 27, 78], "If": [1, 2, 13, 26, 27, 30, 31, 32, 33, 39, 40, 41, 42, 48, 51, 72, 73, 74, 80], "you": [1, 2, 3, 8, 9, 13, 16, 23, 26, 27, 29, 33, 38, 39, 41, 47, 51, 52, 53, 63, 72, 76, 77, 80], "face": [1, 4], "ani": [1, 9, 30, 31, 32, 33, 40, 41, 45, 47, 48, 51, 80], "issu": [1, 3, 4, 11, 25, 26, 38, 39, 40, 42, 55, 56, 57, 60, 62], "mai": [1, 2, 3, 4, 6, 9, 13, 16, 25, 26, 27, 28, 30, 33, 37, 38, 39, 40, 41, 42, 47, 48, 51, 77], "sjtucaocao": [1, 2, 27], "clone": [1, 2, 59], "sourc": [1, 3, 17, 25, 30, 38, 40, 45, 48, 63, 64, 67, 68, 69, 70, 73, 74, 76, 80], "code": [1, 3, 4, 6, 9, 13, 17, 25, 29, 30, 31, 38, 39, 40, 41, 42, 46, 48, 52, 56, 57, 61, 63, 64, 67, 68, 69, 70, 73, 74, 76, 80], "checkout": 1, "proper": 1, "version": [1, 3, 4, 8, 11, 27, 33, 40, 41, 53, 72, 75], "also": [1, 2, 4, 6, 9, 11, 13, 30, 32, 33, 37, 38, 39, 40, 47, 51, 52, 66, 80], "sure": [1, 2, 9, 17, 30, 39, 40, 66, 76], "arg": [1, 25, 29, 51, 66], "gn": 1, "file": [1, 3, 4, 6, 9, 22, 39, 40, 41, 52, 63, 66, 76], "look": [1, 4, 9, 11, 40, 56], "like": [1, 3, 6, 9, 11, 13, 27, 33, 40, 41, 42, 45, 51, 58, 74], "is_debug": 1, "fals": [1, 17, 28, 30, 33, 37, 39, 40, 51, 63, 66, 67], "target_cpu": 1, "v8_monolith": 1, "true": [1, 11, 17, 28, 30, 33, 37, 39, 40, 41, 48, 51, 63, 64, 66, 67, 68, 72, 74], "v8_use_external_startup_data": 1, "is_component_build": 1, "v8_enable_i18n_support": 1, "v8_enable_pointer_compress": 1, "v8_static_librari": 1, "symbol_level": 1, "0": [1, 3, 9, 18, 25, 27, 28, 29, 31, 33, 39, 40, 41, 42, 48, 50, 51, 53, 63, 64, 66, 68, 72, 73, 76, 80], "use_custom_libcxx": 1, "v8_enable_sandbox": 1, "x64": [1, 40], "To": [1, 3, 9, 22, 30, 37, 44, 67], "enabl": [1, 2, 3, 6, 13, 17, 22, 33, 39, 41, 51, 52, 55, 56, 63, 67], "set": [1, 3, 4, 7, 9, 13, 28, 29, 30, 31, 37, 39, 40, 41, 47, 50, 52, 55, 61, 63, 64, 66, 67, 68, 73], "export": [1, 25, 40], "path": [1, 18, 37, 40, 45, 61, 66], "cd": [1, 2, 40], "ninja": 1, "c": [1, 33, 40, 51, 58, 59, 60, 64, 68], "out": [1, 25, 27, 39, 40, 45, 48, 63, 64, 66, 67, 68, 70, 73, 74, 80], "python3": [1, 9], "script": [1, 4, 9, 13, 27, 40, 42, 48, 51, 55, 59, 69, 74, 76], "patch_v8_build": 1, "py": 1, "p": [1, 33], "requir": [1, 6, 8, 13, 37, 40, 42, 48, 51, 52, 66], "depot_tools_win_toolchain": 1, "gen": 1, "id": [1, 3, 4, 45, 51, 72], "v": [1, 5, 9, 27, 40], "solut": [1, 11, 31, 51, 63], "dev": [1, 6], "v8gen": 1, "arm": [1, 27, 57, 72], "target_o": 1, "v8_target_cpu": 1, "ia32": 1, "x86": [1, 27, 56, 57, 72], "A": [1, 4, 20, 24, 25, 29, 40, 41, 51], "few": [1, 2, 3, 8, 9, 11, 13, 25, 29, 30, 33, 39, 51, 54, 55, 62, 63, 67, 68, 74], "certain": [1, 3, 4, 13, 41, 51, 52, 56], "warn": [1, 47, 55], "error": [1, 9, 37, 40, 46, 47, 51, 52, 56, 57, 58, 61], "so": [1, 2, 4, 6, 7, 9, 13, 15, 18, 25, 26, 28, 29, 30, 31, 33, 37, 38, 39, 40, 41, 42, 47, 51, 52, 59, 64, 66, 68, 72, 76, 77, 80], "msvc": [1, 40], "stop": [1, 9, 60], "compil": [1, 4, 6, 33, 40, 41, 45, 51, 62, 63, 67, 80], "turn": [1, 3, 4, 39, 55, 62], "those": [1, 3, 4, 13, 26, 39, 40, 51, 63], "lt": 1, "patch_node_build": 1, "configur": 1, "without": [1, 2, 3, 4, 26, 31, 33, 37, 38, 41, 51, 57, 61, 63, 64, 80], "intl": 1, "j4": 1, "first": [1, 3, 37, 39, 40, 51, 54, 80], "thin": 1, "disabl": [1, 3, 13, 14, 20, 25, 33, 39, 41, 42, 45, 48, 52, 59], "second": [1, 3, 16, 22, 40, 41, 48, 51], "mani": [1, 9, 11, 39, 41, 51, 80], "posit": [1, 6, 51], "independ": [1, 6], "link": [1, 20, 24, 39, 40], "phase": 1, "broken": [1, 9, 25, 39, 51], "fpic": 1, "usr": [1, 18], "bin": [1, 18], "ld": 1, "libnod": 1, "node_bind": 1, "reloc": 1, "r_x86_64_tpoff32": 1, "against": [1, 51], "_zn4nodel23thread_local_modpending": 1, "can": [1, 2, 3, 4, 6, 13, 14, 19, 20, 24, 26, 31, 33, 39, 40, 41, 42, 52, 63, 66, 67, 75, 76, 77, 80], "us": [1, 3, 4, 6, 8, 11, 17, 25, 26, 30, 32, 37, 39, 40, 41, 42, 47, 51, 63, 69, 80], "when": [1, 4, 6, 9, 20, 21, 24, 33, 39, 40, 41, 42, 48, 51, 52, 58, 60, 80], "object": [1, 4, 13, 26, 39, 41, 42, 50, 55, 56, 57, 58, 62, 64, 65, 67, 69, 73, 78, 80], "recompil": 1, "vcbuild": 1, "bat": 1, "vs2022": 1, "onc": [1, 29, 30, 39, 40, 41, 45, 63, 66], "readi": 1, "navig": [1, 40], "cpp": [1, 41], "access": [1, 13, 33, 37, 39, 45, 51, 65, 78], "execut": [1, 3, 4, 6, 12, 25, 33, 40, 41, 42, 45, 48, 50, 51, 52, 63, 64, 69, 70, 74], "correspond": [1, 2, 4, 26, 39, 40, 42, 51, 63], "command": [1, 41, 74], "sh": [1, 40], "dnode_dir": 1, "dv8_dir": 1, "maco": [1, 9, 27, 37, 72], "cmd": [1, 40], "after": [1, 3, 9, 31, 33, 37, 40, 41, 42, 48, 51, 52, 64, 80], "while": [1, 2, 33, 48, 66, 74], "place": [1, 4, 9, 26, 30, 39, 80], "folder": [1, 42, 66], "src": [1, 41], "main": [1, 25, 29, 33, 67], "resourc": [1, 4, 13, 16, 27, 30, 34, 38, 40, 45, 48, 52, 63, 64, 70, 73, 74, 77], "libjavet": [1, 37, 40], "dylib": 1, "dll": [1, 20, 24, 40], "arch": [1, 27, 41, 57, 72], "dcmake_android_ndk": 1, "dcmake_android_arch": 1, "jnilib": 1, "armeabi": 1, "v7a": 1, "v8a": 1, "mode": [1, 5, 7, 14, 18, 20, 21, 22, 24, 26, 27, 37, 39, 41, 42, 51, 52, 55, 56, 58, 61, 63, 69, 71, 72, 78, 80], "append": [1, 33, 63, 67], "denable_i18n": 1, "test": [1, 2, 4, 5, 6, 9, 16, 17, 18, 27, 33, 38, 40, 41, 51, 52, 54, 63, 66, 72, 76], "jar": [1, 3, 4, 9], "lib": [1, 40, 57], "aar": 1, "output": [1, 29, 51, 63, 64, 66, 67, 68], "As": [2, 3, 4, 13, 25, 28, 31, 33, 37, 39, 47, 51, 63, 77], "regard": [2, 3], "mac": [2, 9, 27, 80], "contributor": 2, "welcom": [2, 74], "interest": [2, 9], "Or": 2, "have": [2, 9, 17, 25, 27, 29, 31, 33, 39, 40, 41, 51, 52, 76, 80], "wait": [2, 3, 57, 66], "long": [2, 31, 32, 33, 38, 51, 64], "git": 2, "network": 2, "connect": [2, 3, 4, 69], "up": [2, 3, 4, 6, 13, 33, 38, 39, 40, 41, 56, 57, 63, 66], "run": [2, 4, 6, 29, 33, 38, 39, 40, 48, 76], "repositori": [2, 18], "imag": [2, 3, 9, 14, 20], "avail": [2, 3, 4, 21, 37, 41, 45, 51, 63, 75], "http": [2, 3, 4, 6, 27, 66], "com": [2, 6, 25, 27, 39, 40, 47, 72], "r": [2, 18, 67], "caoccao": [2, 6, 25, 27, 39, 40, 47, 72], "f": [2, 4, 40], "x86_64": [2, 25, 27, 40, 57, 72], "build_artifact": 2, "dockerfil": [2, 56, 60], "pull": 2, "5gb": 2, "actual": [2, 3, 4, 6, 9, 13, 30, 38, 39, 40, 45, 51, 64, 66], "take": [2, 4, 6, 9, 11, 26, 32, 33, 39, 40, 41, 51, 55, 57, 63, 64, 66, 69, 74, 80], "minut": [2, 4, 30], "includ": [2, 9, 28, 33, 37, 41, 51, 80], "depend": [2, 4, 6, 9, 33, 40, 41, 47, 51, 77], "maven": [2, 5, 33], "central": [2, 8], "instruct": [2, 39], "insid": [2, 3, 4, 25, 33, 39, 52], "perform": [2, 3, 4, 5, 9, 25, 26, 27, 28, 30, 31, 37, 39, 40, 42, 51, 54, 57, 61, 62, 64, 66, 69, 73, 80], "base_jvm": 2, "base": [2, 6, 7, 25, 33, 39, 51, 56, 58, 59, 64, 80], "jvm": [2, 4, 22, 27, 30, 33, 37, 38, 54, 65, 66, 68, 69, 75, 78, 80], "base_nod": 2, "base_v8": 2, "v8": [2, 3, 5, 7, 9, 11, 13, 14, 17, 20, 22, 24, 26, 27, 30, 31, 33, 34, 37, 38, 41, 42, 44, 45, 48, 53, 63, 65, 66, 67, 68, 69, 71, 72, 73, 74, 77, 78], "base_gradl": 2, "final": [2, 25, 29, 30, 31, 33, 39, 40, 45, 48, 51, 52, 63, 64], "artifact": 2, "base_all_in_on": 2, "build_all_in_on": 2, "updat": [2, 18, 37, 41, 51, 55, 56, 57, 58, 60], "daemon": [2, 39, 48], "json": [2, 3, 28, 33, 40, 64, 68], "storag": [2, 6, 25], "opt": 2, "dm": 2, "bases": 2, "120gb": 2, "size": [2, 4, 6, 22, 28, 31, 33, 37, 39, 45], "restart": [2, 80], "m": [2, 6, 64], "4g": 2, "roughli": 2, "5": [2, 3, 25, 26, 33, 39, 40, 41, 53, 63, 66, 72, 73, 74], "hour": [2, 9], "internet": 2, "stabl": 2, "dai": [2, 42], "just": [2, 3, 6, 9, 12, 13, 29, 31, 37, 38, 39, 40, 51, 63, 67, 80], "fail": [2, 20, 24, 40, 45, 48, 51, 58], "forev": [2, 39], "larg": [2, 17], "60": 2, "gb": 2, "effici": [2, 16, 56], "push": [2, 33, 50, 51, 52, 61], "Of": [2, 33, 39, 40, 51, 63, 80], "cours": [2, 33, 39, 40, 51, 63, 80], "wise": [2, 18, 51, 64, 72], "workflow": 2, "11gb": 2, "process": [2, 3, 26, 29, 52], "been": [2, 8, 9, 26, 37, 51, 80], "significantli": [2, 41, 45], "chang": [2, 17, 25, 30, 31, 38, 40, 45, 56, 57, 61, 62, 67, 73], "sinc": [2, 9, 72], "v12": [2, 27], "That": [2, 4, 6, 9, 25, 26, 30, 37, 39, 40, 47, 48, 51, 63, 80], "result": [2, 3, 4, 6, 30, 38, 42, 52, 70, 74], "devtool": [3, 20, 24, 27], "aka": 3, "web": [3, 39, 42], "directli": [3, 33, 37, 39, 51, 64, 67, 80], "browser": [3, 42], "help": [3, 41, 42], "edit": [3, 51], "page": 3, "fly": 3, "diagnos": 3, "problem": [3, 6, 9, 29, 51], "quickli": 3, "ultim": 3, "build": [3, 4, 5, 8, 11, 12, 17, 18, 22, 25, 27, 40, 41, 51, 55, 56, 60, 62, 72], "better": [3, 4, 6, 37, 38, 51, 62, 64], "websit": 3, "faster": [3, 41], "javet": [3, 5, 8, 9, 12, 14, 15, 16, 17, 19, 20, 21, 24, 25, 26, 28, 29, 30, 31, 33, 39, 42, 44, 45, 47, 48, 50, 51, 52, 54, 56, 61, 63, 66, 67, 68, 71, 72, 73, 75, 76, 77, 78], "ship": 3, "applic": [3, 4, 6, 13, 17, 25, 26, 29, 30, 31, 33, 37, 38, 39, 40, 41, 48, 51, 52, 63, 66, 67, 69, 73, 74, 80], "demonstr": 3, "how": [3, 4, 7, 11, 14, 16, 20, 26, 27, 29, 37, 38, 40, 56, 63, 64, 80], "work": [3, 4, 9, 12, 13, 25, 26, 27, 37, 38, 39, 40, 51, 52, 64, 66, 72, 80], "normal": [3, 39, 48, 66], "java": [3, 4, 5, 9, 15, 25, 27, 29, 30, 33, 37, 38, 39, 40, 52, 57, 63, 65, 66, 68, 73, 76, 78, 80], "consol": [3, 4, 29, 51, 52, 63, 64, 66, 69, 70, 73, 74], "an": [3, 4, 6, 9, 11, 13, 15, 25, 27, 28, 30, 33, 37, 38, 39, 40, 41, 42, 47, 48, 51, 52, 63, 68, 73, 74, 75], "interact": [3, 4, 27, 29, 55, 63, 65, 74, 78], "appear": [3, 51], "arbitrari": [3, 4, 13, 30, 31, 33, 63, 67, 80], "what": [3, 9, 10, 16, 20, 30, 39, 40, 64, 80], "done": [3, 80], "let": [3, 9, 26, 29, 33, 40, 41, 63, 64, 66, 74], "undefin": [3, 30, 33, 40, 51, 63, 64, 74], "b": [3, 28, 30, 33, 40, 41, 51, 63, 64, 67, 68, 74, 76], "7": [3, 6, 18, 39, 53, 63, 66, 72, 73, 74, 80], "inspect": [3, 17, 51], "remot": 3, "target": [3, 7, 30, 31, 41, 64, 80], "click": 3, "voil\u00e0": [3, 33, 66], "screenshot": 3, "show": [3, 4, 33, 39, 40, 51, 52, 63], "evalu": [3, 4, 40, 58, 80], "auto": [3, 18, 37, 55], "complet": [3, 4, 7, 12, 31, 33, 39, 40, 42, 48, 51, 56, 57, 66, 67, 72, 80], "enjoi": 3, "listen": [3, 26, 39, 52, 66], "port": [3, 53, 66], "9229": 3, "default": [3, 4, 22, 25, 30, 31, 33, 37, 39, 40, 48, 51, 67, 73, 75], "becaus": [3, 4, 6, 8, 9, 17, 26, 27, 28, 29, 30, 31, 33, 37, 38, 39, 42, 45, 51, 52, 63, 64, 69, 75, 76, 80], "constantli": 3, "queri": [3, 63], "127": [3, 39], "list": [3, 6, 25, 27, 30, 31, 34, 51], "tell": [3, 26, 33, 37, 39, 40, 66, 73], "flavor": [3, 16, 51, 63, 74], "via": [3, 4, 33, 39, 40, 42, 48, 51, 52, 63, 66, 73], "websocket": 3, "address": [3, 26, 39, 40, 42, 51, 62, 66], "w": 3, "protocol": 3, "current": [3, 4, 9, 41, 45, 51, 72], "v1": [3, 53, 57, 72], "api": [3, 4, 9, 11, 13, 14, 20, 27, 29, 30, 33, 34, 37, 38, 39, 40, 47, 51, 52, 54, 55, 57, 61, 63, 64, 66, 68, 76, 80], "doc": [3, 6, 55, 57], "chromedevtool": 3, "github": [3, 6], "io": [3, 17, 63], "upgrad": [3, 8, 9, 11, 18, 44, 55, 56, 57, 58, 59, 60, 61, 62], "request": 3, "respons": [3, 37, 40, 41, 51], "accept": [3, 17, 30, 47, 51, 52, 56], "switch": [3, 27, 37, 38, 42, 55], "send": [3, 30, 39, 66], "messag": [3, 39, 45, 47], "method": [3, 13, 29, 31, 33, 45, 51, 64], "runtim": [3, 4, 18, 22, 33, 37, 38, 40, 41, 42, 45, 48, 51, 56, 57, 58, 60, 62, 63, 64, 66, 69, 70, 73, 74, 75, 80], "param": 3, "notif": [3, 39], "executioncontextcr": 3, "context": [3, 6, 13, 26, 38, 39, 40, 42, 45, 60], "origin": [3, 4, 51], "name": [3, 4, 13, 29, 31, 37, 40, 45, 47, 51, 57, 60, 63, 64, 73, 76, 77], "inspector": [3, 14, 20], "00000000": 3, "uniqueid": 3, "debugg": [3, 51], "maxscriptscaches": 3, "100000000": 3, "debuggerid": 3, "setpauseonexcept": 3, "state": [3, 41, 51], "none": [3, 51], "setasynccallstackdepth": 3, "maxdepth": [3, 45], "32": [3, 39], "profil": [3, 72], "6": [3, 8, 9, 40, 53, 59, 62, 63, 66, 72, 73, 74], "getisolateid": 3, "setblackboxpattern": 3, "pattern": [3, 13, 16, 31, 48], "runifwaitingfordebugg": 3, "pars": [3, 6], "expos": [3, 4, 27, 30, 31, 33, 39, 40, 44, 51, 52, 57, 63, 65, 78, 80], "callback": [3, 26, 39, 40, 45, 51, 55, 56, 57, 58, 60, 61, 66], "iv8inspectorlisten": 3, "rest": [3, 40], "refer": [3, 6, 11, 26, 27, 33, 37, 38, 40, 42, 45, 48, 51, 52, 60, 62, 63, 64, 67, 68, 69, 70, 72, 73, 74, 76, 80], "detail": [3, 4, 11, 17, 22, 23, 38, 48, 51, 52, 63, 64, 67, 68, 69, 70, 72, 73, 74, 75, 76, 80], "ye": [3, 4, 12, 18, 23, 26, 30, 31, 33, 37, 38, 40, 50, 51, 72, 76], "feel": [3, 40, 41, 51], "free": [3, 4, 13, 31, 38, 39, 40, 51, 55, 69, 80], "server": [3, 6, 30, 72], "your": [3, 9, 18, 33, 37, 41, 42, 47, 77, 80], "environ": [3, 4, 5, 6, 18, 20, 27, 38, 40, 55, 57, 69], "creat": [3, 17, 22, 25, 28, 31, 33, 38, 39, 40, 45, 47, 48, 51, 52, 56, 61, 63, 64, 66, 67, 68, 69, 70, 73, 74, 77, 80], "showcas": 3, "further": [3, 6, 39], "some": [3, 4, 6, 9, 13, 15, 18, 21, 25, 26, 30, 37, 39, 41, 51, 52, 57, 61, 63, 64, 69, 76, 80], "tip": [3, 27, 34], "integr": [3, 9, 27, 47, 54, 71, 78], "embed": [3, 4, 6, 9, 22, 27, 41, 42], "jetti": 3, "Be": [3, 33, 39, 42, 52, 63], "care": [3, 32, 33, 38, 39, 40, 42, 52, 63], "host": [3, 4, 22, 37, 40, 63, 64, 66, 70, 73, 74], "togeth": [3, 41, 66], "otherwis": [3, 31, 32, 37, 38, 51], "refus": 3, "add": [3, 18, 25, 28, 29, 31, 33, 39, 40, 41, 50, 51, 52, 63, 68, 73, 76, 80], "intercept": [3, 5, 33, 39, 40, 54, 56, 71, 78], "event": [3, 42, 52, 66, 80], "In": [3, 4, 6, 13, 17, 26, 28, 30, 33, 37, 38, 39, 40, 42, 48, 51, 52, 64, 66, 80], "practic": [3, 4, 13, 43], "decent": [3, 6, 9, 50, 52], "jackson": [3, 64], "gson": [3, 64], "interpret": [3, 4], "why": [3, 13, 14, 20, 24, 25, 37, 39, 76], "breakpoint": 3, "befor": [3, 13, 25, 26, 30, 37, 39, 40, 63, 66], "right": [3, 37], "featur": [3, 4, 5, 8, 9, 13, 25, 31, 37, 39, 40, 45, 50, 51, 52, 53, 67, 72, 75, 76, 80], "enforc": [3, 63], "authent": 3, "author": 3, "among": [3, 6, 38, 51, 61, 80], "well": [3, 9, 12, 26, 33, 39, 80], "though": [3, 8, 45, 51, 69, 80], "other": [3, 4, 13, 30, 37, 38, 39, 41, 42, 47, 51, 52, 55, 66, 68, 72, 75, 80], "visit": [3, 17, 23, 27, 76], "more": [3, 4, 6, 9, 17, 18, 31, 37, 39, 40, 41, 44, 45, 48, 51, 52, 56, 57, 69, 70, 73, 74, 75, 76, 80], "javetshel": [3, 27, 63], "provid": [3, 4, 6, 18, 26, 28, 29, 30, 31, 33, 40, 41, 50, 51, 63, 69, 73, 80], "either": [3, 4, 6, 7, 51], "There": [4, 9, 12, 13, 18, 28, 29, 30, 37, 39, 40, 41, 45, 51, 63, 64, 75], "vagu": 4, "boundari": 4, "between": [4, 6, 9, 27, 30, 31, 39, 42, 51, 55, 64, 67], "definit": 4, "mixtur": 4, "both": [4, 6, 30, 37, 39, 41, 45, 52, 56, 63, 75, 80], "trade": 4, "No": [4, 9, 29, 30, 37, 40, 48, 50, 51, 66], "copi": [4, 33, 37, 39], "valu": [4, 27, 29, 30, 31, 32, 34, 37, 39, 40, 45, 50, 54, 55, 56, 57, 64, 73], "Not": [4, 41, 51, 72], "possibl": [4, 31, 38, 41, 42, 64], "weak": 4, "keep": [4, 30, 33, 38, 39, 42, 64], "footprint": 4, "jni": [4, 8, 37, 39, 51, 57, 58, 60], "recycl": [4, 6, 26, 30, 33, 39, 42, 70], "close": [4, 9, 13, 17, 20, 24, 33, 37, 39, 40, 42, 45, 48, 51, 55, 56, 60, 62, 63, 68, 69], "call": [4, 6, 9, 13, 17, 25, 26, 29, 30, 33, 37, 38, 39, 40, 42, 48, 52, 55, 63, 64, 66, 67, 73, 80], "old": [4, 9, 42, 52], "school": 4, "manag": [4, 9, 13, 16, 27, 34, 40, 55], "tri": [4, 9, 21], "hide": [4, 9], "kind": [4, 9, 29, 38, 51, 80], "tediou": [4, 13, 80], "try": [4, 9, 11, 25, 27, 29, 33, 38, 40, 41, 42, 48, 50, 51, 52, 63, 64, 66, 69, 70, 73, 74, 75, 76], "best": [4, 16, 43], "co": 4, "exist": [4, 11, 33, 40, 41, 64, 76], "one": [4, 7, 9, 11, 13, 17, 22, 28, 33, 37, 39, 40, 51, 64, 67, 73, 74, 75, 80], "word": [4, 39, 66], "thei": [4, 9, 31, 37, 39, 40, 42, 45, 52, 64, 75], "side": [4, 6, 17, 39], "don": [4, 9, 17, 27, 33, 40, 41, 47, 75, 77, 80], "interfer": 4, "each": [4, 39, 51, 75, 80], "diagram": [4, 51], "lazi": 4, "load": [4, 13, 21, 36, 41, 45, 76, 80], "dedic": [4, 39, 42, 66, 80], "classload": [4, 80], "comparison": [4, 5, 9, 27], "loadabl": 4, "high": [4, 30, 39], "ecosystem": [4, 75], "secur": [4, 6, 13, 40, 41, 76, 80], "low": 4, "unload": [4, 36, 40, 80], "One": [4, 30], "beauti": [4, 30, 51], "appli": [4, 25, 30, 33, 37, 40, 42, 48, 51, 58, 62, 66], "exampl": [4, 14, 20, 29, 67, 68], "e": [4, 6, 13, 15, 26, 28, 29, 30, 37, 39, 40, 48, 51, 52, 63, 64, 66, 73, 75, 76, 80], "g": [4, 6, 13, 15, 18, 26, 28, 30, 37, 39, 40, 51, 52, 63, 64, 66, 67, 73, 75, 76, 80], "net": [4, 33], "etc": [4, 11, 13, 15, 28, 30, 37, 39, 51, 63, 66, 76], "zero": [4, 39], "byte": [4, 31, 32, 33, 39, 41, 51, 63], "buffer": [4, 39], "achiev": [4, 9, 33, 38, 39, 51], "thread": [4, 6, 9, 17, 25, 39, 45, 48, 52, 55, 56, 63, 69, 80], "multipl": [4, 17, 22, 25, 38, 40, 42, 56, 80], "instanc": [4, 6, 13, 17, 28, 39, 40, 42, 47, 51, 67, 73], "onli": [4, 13, 15, 17, 22, 25, 30, 32, 33, 37, 40, 41, 42, 47, 51, 53, 64, 72, 80], "visibl": [4, 51], "beyond": 4, "allow": [4, 6, 9, 22, 28, 29, 30, 31, 33, 37, 40, 47, 51, 52, 55, 56, 57, 61, 63, 66, 67, 68, 69, 73, 80], "explicit": [4, 28, 80], "await": [4, 6, 42, 51, 52, 55, 59, 66], "control": [4, 26, 30, 40, 48, 51], "over": [4, 26, 30, 40, 51, 80], "async": [4, 6, 26, 52], "global": [4, 13, 25, 40, 51, 60, 63, 69, 80], "recommend": [4, 6, 8, 33, 42, 51, 52, 64, 69], "project": [4, 9, 11, 13, 15, 16, 27, 33, 40, 52, 63, 72, 76, 80], "increas": [4, 30, 45, 80], "align": 4, "chrome": [4, 5, 17, 20, 24, 27, 41, 54], "doe": [4, 17, 25, 26, 37, 39, 48, 51, 80], "bring": [4, 30, 37], "system": [4, 8, 11, 25, 27, 33, 37, 40, 45, 47, 63, 64, 66, 67, 68, 70, 72, 73, 74], "unfortun": [4, 9], "veri": [4, 25, 33, 40, 42, 51, 74, 75], "limit": [4, 13], "howev": [4, 6, 9, 11, 13, 26, 30, 31, 37, 39, 51, 64, 80], "bad": [4, 9], "leav": [4, 11, 31, 40, 63], "typic": [4, 40, 48, 51], "challeng": [4, 9, 13, 30], "sync": 4, "locat": [4, 40, 80], "interceptor": [4, 26, 51, 52, 63, 69, 73], "partial": 4, "know": [4, 7, 9, 26, 36, 40, 51, 80], "want": [4, 8, 9, 13, 26, 30, 37, 38, 39, 41, 45, 51, 52, 53, 63], "defin": [4, 30, 33], "es6": [4, 9, 14, 20, 40], "repres": [4, 13, 30, 39, 51, 80], "string": [4, 25, 29, 31, 32, 33, 40, 47, 52, 54, 64, 66, 68, 70, 73, 74, 76], "dure": [4, 25, 26, 30, 37, 39, 40, 41, 51, 55, 80], "url": 4, "whatev": [4, 26, 38, 39, 51, 52, 63], "store": [4, 25, 39, 40, 41, 51, 60], "map": [4, 28, 30, 31, 40, 50], "kei": [4, 25, 33, 40, 50, 64], "feed": [4, 40], "get": [4, 9, 13, 26, 28, 29, 31, 33, 37, 39, 40, 42, 47, 48, 50, 51, 52, 57, 58, 64, 66, 68, 69, 75, 76, 77, 80], "start": [4, 11, 17, 25, 30, 41, 48, 51, 57, 63, 66, 80], "excel": [4, 9], "articl": 4, "explain": 4, "concept": [4, 13, 52], "insight": 4, "summari": [4, 6], "vm": [4, 25, 42, 62], "heap": [4, 39, 41], "separ": [4, 6, 13, 33], "unrel": [4, 6], "javascript": [4, 6, 17, 26, 27, 30, 33, 38, 39, 40, 41, 52, 57, 63, 65, 68, 70, 73, 78, 80], "singl": [4, 6, 9, 38, 51, 66], "model": [4, 25, 38], "simplifi": [4, 51], "v8runtim": [4, 6, 25, 27, 28, 29, 31, 33, 38, 40, 41, 42, 48, 50, 51, 52, 54, 55, 56, 57, 59, 62, 63, 64, 67, 68, 69, 70, 73, 74, 75, 76], "resetisol": [4, 38, 55], "resetcontext": [4, 38, 42, 55], "alwai": [4, 29, 42, 51], "brand": 4, "new": [4, 6, 7, 9, 11, 25, 28, 29, 31, 33, 37, 38, 39, 40, 41, 47, 48, 50, 51, 52, 53, 63, 64, 66, 67, 68, 69, 73, 74, 75, 76, 77], "much": [4, 6, 9, 33, 39, 42, 51, 64, 74, 76, 80], "cheaper": 4, "oper": [4, 30], "good": [4, 27, 39, 73], "enough": [4, 29, 33], "term": [4, 48, 51, 64], "almost": [4, 9, 33, 39, 51, 66], "db": 4, "safe": [4, 26, 30, 38, 51], "NOT": [4, 38, 51], "lock": [4, 36, 39, 45, 48, 55, 62, 80], "violat": 4, "core": [4, 37, 38, 40, 42, 56], "dump": [4, 38, 42, 56, 57], "immedi": [4, 17, 22, 38, 39, 42, 48], "valid": [4, 39, 51, 63], "minim": [4, 31, 42, 69], "overhead": [4, 6, 13, 30, 31, 38, 39, 48, 69], "behind": [4, 6, 11, 13, 26, 63, 68], "scene": [4, 13, 26, 63, 68], "sampl": [4, 29, 33, 37, 39, 40, 51, 63, 66], "function": [4, 15, 17, 31, 37, 39, 40, 41, 49, 54, 57, 58, 59, 63, 64, 66, 67, 73, 80], "packag": [4, 6, 8, 9, 63], "automat": [4, 7, 30, 33, 37, 38, 40, 45, 60, 70, 73, 80], "per": [4, 33, 37, 38, 39, 40], "calcul": [4, 51], "unpack": 4, "system_temporary_directori": 4, "pid": 4, "deploi": [4, 56, 63], "avoid": [4, 13, 22, 30, 33, 37, 42, 62, 63], "race": [4, 38], "condit": [4, 31, 38], "initi": [4, 6, 20, 24, 39, 40, 41, 58, 62, 66, 69, 73], "purg": [4, 66], "legaci": [4, 9, 19, 20, 58], "least": [4, 9], "begin": 4, "nativ": [4, 14, 20, 21, 27, 28, 31, 38, 39, 42, 51, 54, 66, 80], "track": [4, 39, 61], "delet": [4, 28, 33, 50, 51, 63, 67, 73], "javetnativemonitor": 4, "unit": [4, 16], "case": [4, 6, 7, 9, 16, 30, 32, 37, 38, 39, 40, 51, 52, 54, 80], "fetch": [4, 6, 52], "compar": [4, 7, 38], "count": [4, 45, 48, 50, 63, 66], "verifi": [4, 40, 51], "unmanag": [4, 39], "properli": [4, 25, 63], "alloc": [4, 38, 51, 57], "freed": 4, "intellij": [5, 9], "flag": [5, 25, 39, 56, 58], "design": [5, 7, 16, 17, 27, 31, 33, 37, 38, 40, 51, 66, 75, 80], "architectur": [5, 9], "modul": [5, 21, 26, 41, 42, 44, 45, 51, 59, 60, 76], "engin": [5, 25, 27, 28, 39, 40, 41, 45, 57, 71, 77, 78], "pool": [5, 25, 27, 39, 47, 54, 57, 71, 77, 78], "cross": [5, 80], "memori": [5, 9, 11, 16, 25, 26, 30, 33, 36, 37, 41, 42, 45, 51, 55, 57, 62, 63, 64, 80], "leak": [5, 9, 11, 30, 33, 39, 42, 55, 57, 62, 63], "detect": [5, 29, 30, 45, 51, 56, 57], "wasm": 5, "benchmark": 5, "improv": [5, 9, 38, 39, 41, 57, 61, 62], "cdt": [5, 74], "shell": [5, 71, 78], "intern": [5, 33, 37, 38, 39, 51, 57, 58, 61, 72], "faq": [5, 27], "reset": [6, 42], "i7": [6, 9], "10700k": [6, 9], "window": [6, 11, 13, 21, 27, 54, 64, 80], "type": [6, 13, 28, 29, 30, 31, 33, 37, 38, 39, 40, 45, 54, 55, 57, 58, 64], "tp": [6, 9], "751": 6, "032": 6, "ad": [6, 9, 33, 38, 54, 55, 56, 57, 58, 59, 60, 61, 62], "hoc": [6, 9, 38, 56], "65": 6, "410": 6, "143": 6, "363": 6, "isol": [6, 13, 38, 39, 40, 42, 80], "51": 6, "263": [6, 39], "647": 6, "458": 6, "846": 6, "968": 6, "253": 6, "508": 6, "748": 6, "660": 6, "slightli": 6, "mainli": 6, "older": 6, "than": [6, 11, 30, 41, 48, 51, 76, 80], "dramat": [6, 51], "outperform": 6, "huge": [6, 22, 72], "serious": [6, 9], "slow": [6, 31], "down": [6, 80], "creation": [6, 39, 41, 69], "unless": [6, 39, 42, 80], "particular": [6, 9, 37, 40, 41], "linux": [6, 11, 19, 20, 25, 27, 54, 55, 56, 58, 60, 62, 80], "addit": [6, 12, 18, 31, 38, 51, 72, 80], "emb": 6, "bind": [6, 33, 40, 52, 55, 68, 73, 80], "webassembli": 6, "concern": 6, "program": 6, "languag": [6, 39, 51], "gener": [6, 29, 33, 39, 41, 45, 51, 56, 64], "jul": 6, "13": [6, 57, 59, 60], "2023": [6, 25, 59, 60, 61, 62], "binarytre": 6, "672": 6, "2048": 6, "305": 6, "edigit": 6, "814": 6, "484": 6, "59": 6, "fannkuch": 6, "redux": 6, "1660": 6, "4639": 6, "279": 6, "fasta": 6, "512": [6, 39], "367": 6, "72": 6, "helloworld": 6, "mandelbrot": 6, "1411": 6, "1095": 6, "78": 6, "merkletre": 6, "1134": 6, "221": 6, "nbodi": 6, "546": 6, "472": 6, "86": 6, "nsiev": 6, "694": 6, "586": 6, "84": 6, "pidigit": 6, "4975": 6, "2761": 6, "55": 6, "spectral": 6, "norm": 6, "4198": 6, "4128": 6, "98": 6, "coro": 6, "prime": 6, "siev": 6, "796": 6, "105": [6, 45], "jit": 6, "optim": 6, "warm": 6, "could": [6, 9], "higher": 6, "And": [6, 9, 27, 66], "measur": [6, 64], "choos": [6, 26, 51], "technologi": 6, "accord": 6, "differ": [6, 9, 13, 31, 40, 42, 51, 52, 64], "signific": [6, 39], "algorithm": [6, 57], "awar": [6, 39, 42], "drawback": [6, 40, 64], "consider": [6, 18, 30, 48, 72], "written": [6, 30, 41], "rust": 6, "21": [6, 38, 56, 62, 72], "kb": 6, "amount": [6, 22, 72, 80], "time": [6, 9, 17, 31, 33, 37, 40, 41, 64, 69], "eventu": [6, 39, 63], "whole": [6, 33, 65, 78], "asynchron": 6, "mean": [6, 37, 40, 47, 51], "busi": [6, 57, 80], "logic": [6, 9, 30, 51, 52, 66, 80], "deal": [6, 29, 31, 39, 51], "promis": [6, 26, 42, 49, 66], "synchron": [6, 38, 80], "flexibl": [6, 40], "black": 6, "box": [6, 40], "impli": [6, 11, 17, 18, 26, 72, 80], "vulner": [6, 41, 42], "major": [6, 40, 54, 80], "javetperf": [6, 61], "reus": [7, 13], "do": [7, 9, 13, 23, 26, 27, 38, 39, 40, 42, 51, 52, 68], "suit": 7, "timestamp": 7, "newer": 7, "instal": [8, 9, 12, 18, 37, 40, 66, 71, 76, 78], "drop": [8, 9, 40, 51], "heavili": [8, 29, 51, 80], "person": 8, "idea": [8, 9, 11, 39], "For": [8, 13, 33, 40, 51], "now": [8, 9, 29, 33, 40, 47, 51, 73], "v7": 8, "kotlin": [8, 33, 38], "dsl": [8, 33], "construct": [8, 51, 56], "14": [8, 9, 33, 57, 58, 59, 60, 61, 72], "17": [8, 56, 58, 61, 62], "v3": [8, 25, 40, 53, 72], "bundl": 8, "hasn": [9, 26, 51], "activ": [9, 26, 37, 40, 72], "2017": 9, "last": 9, "wa": [9, 40, 80], "2016": 9, "v4": 9, "fulli": [9, 29], "were": [9, 25], "around": [9, 40], "android": [9, 27, 37, 58, 59, 60], "year": [9, 80], "nearli": 9, "seriou": [9, 11], "fix": [9, 11, 21, 28, 39, 40, 53, 55, 56, 57, 58, 59, 60, 61, 62], "under": [9, 39, 42, 51, 63], "Its": [9, 39, 41, 80], "evolv": 9, "expect": [9, 25, 39, 45, 51], "chanc": 9, "implement": [9, 27, 31, 33, 37, 39, 40, 51, 52, 63, 64, 72], "obvious": [9, 40, 51, 64], "couldn": [9, 80], "easili": [9, 30, 39, 48, 77], "would": [9, 11, 17], "contribut": 9, "me": [9, 27], "had": [9, 11], "admit": 9, "think": [9, 11, 14, 16, 17, 20, 41], "mere": 9, "meanwhil": [9, 66], "ecmascript": [9, 40], "move": [9, 55, 56], "forward": [9, 40], "rapidli": 9, "caus": [9, 21, 22, 25, 37, 48, 51, 57, 80], "unexpect": [9, 30, 51], "someon": [9, 40], "team": 9, "realiti": 9, "cruel": 9, "unoffici": 9, "v6": 9, "110": 9, "2020": [9, 11], "temporarili": 9, "ve": [9, 11, 41], "j2v8_win32_x86_64": 9, "machin": 9, "cpu": [9, 25, 27, 64], "session": 9, "003": 9, "009": 9, "338": 9, "688": 9, "35": 9, "299": 9, "274": 9, "019": 9, "571": 9, "428": 9, "With": [9, 13, 40, 64], "stick": 9, "devic": [9, 27], "precis": [9, 30, 51], "mini": 9, "macbook": 9, "air": 9, "too": [9, 17, 40], "plan": 9, "bui": 9, "futur": 9, "donat": [9, 27], "joke": 9, "intend": [9, 13], "tl": 9, "dr": 9, "rel": 9, "easi": [9, 13, 27, 29, 51, 54, 64, 69, 74], "master": [9, 52], "didn": 9, "213": 9, "solvabl": 9, "revisit": 9, "remov": [9, 55, 56, 57, 58], "earli": [9, 42], "haven": 9, "got": [9, 11], "reviv": 9, "v2": [9, 53, 72], "far": 9, "lowest": [9, 72], "my": [9, 27], "eclips": 9, "plai": [9, 38, 40, 52, 64, 66], "hei": 9, "satisfi": 9, "luck": 9, "understand": 9, "suffer": 9, "nowadai": 9, "2019": [9, 60], "cmakelist": 9, "txt": 9, "still": [9, 41, 48, 51, 63, 80], "2015": [9, 40], "ag": 9, "surpris": 9, "deepli": 9, "gone": [9, 26], "step": [9, 12, 13, 26, 28, 31, 33, 37, 39, 40, 51, 63, 67, 70, 73, 74], "sit": 9, "watch": 9, "break": [9, 30, 40, 51, 52, 64, 74], "made": [9, 11, 41], "full": [9, 25, 42, 51], "thought": [9, 11], "month": [9, 11], "pai": [9, 80], "python2": 9, "form": [9, 51], "outer": 9, "layer": [9, 80], "who": [9, 40], "spend": 9, "preciou": 9, "wish": [9, 80], "hair": 9, "guido": 9, "van": 9, "rossum": 9, "am": [9, 33, 51], "problemat": 9, "At": [9, 11, 51], "hack": [9, 13, 26], "pom": [9, 58], "xml": [9, 58], "uncertainti": 9, "someth": [9, 51], "roi": 9, "suppos": [9, 32, 37, 52], "sai": [9, 29], "x": [9, 27, 28, 31, 33, 40, 51, 53, 68], "later": [9, 11, 40], "255": [9, 39, 54, 67], "permiss": 9, "realli": [9, 52], "local": [9, 29, 39, 51], "histori": [10, 11, 20, 80], "j2v8": [10, 11, 13, 20, 78, 79], "motiv": [10, 20, 80], "find": [11, 51, 63], "compel": 11, "slowli": 11, "dy": 11, "sometim": [11, 25, 28, 29, 30, 33, 39, 41, 51, 52, 63], "lower": [11, 41], "cost": 11, "might": [11, 37, 41], "learn": [11, 16], "lot": [11, 69], "manual": [11, 18, 33], "end": [11, 33, 39, 42, 51, 70], "abl": [11, 13, 22, 26, 30, 40, 41, 48, 51, 66, 80], "write": [11, 29, 30, 39, 80], "inde": [11, 42], "graalvm": 12, "download": [12, 18, 40], "site": 12, "folk": [13, 40], "migrat": [13, 27, 78], "experienc": 13, "perspect": [13, 39], "noth": 13, "globalthi": [13, 40, 80], "mix": 13, "longer": [13, 30, 33, 39, 42, 80], "getglobalobject": [13, 28, 29, 31, 33, 40, 48, 51, 52, 63, 64, 66, 67, 68, 69, 73, 76, 80], "top": [13, 40, 51, 80], "level": [13, 30, 38, 51], "globalobject": [13, 51], "invok": [13, 29, 55], "involv": 13, "common": [13, 18], "where": [13, 14, 20, 37, 40, 41, 64, 80], "thing": [13, 30, 31, 39, 40], "offer": [13, 15, 39], "builder": 13, "check": [13, 38, 40, 51, 56, 80], "ast": [13, 27], "scope": [13, 17, 39, 59], "duplic": 13, "regist": [13, 26, 40, 42, 45, 51, 59, 61, 63, 69, 73, 80], "decor": [13, 51, 56, 73, 80], "v8function": [13, 51, 52, 56, 57, 63], "v8properti": [13, 51, 55, 56, 57, 80], "back": [13, 30, 33, 39, 40, 51, 53], "leakag": [13, 45], "lifecycl": [13, 39, 42, 51], "convers": [13, 28, 30, 59, 68], "handl": [13, 26, 29, 33, 38, 40, 52, 56, 58, 69], "everyth": [13, 63], "goe": [13, 51], "smoothli": [13, 30], "experi": [13, 26, 33, 37, 40, 68, 69, 74], "littl": [13, 31], "bit": [13, 31, 39, 40], "spring": [13, 27, 54, 71, 78], "framework": [13, 77], "most": [13, 38, 40, 42, 51], "cover": [13, 29, 31, 39, 80], "express": [13, 33, 66, 72], "effect": [13, 37, 39, 40, 66], "basic": [15, 27, 32, 51, 69, 76, 78, 80], "absent": [15, 38, 51], "settimeout": [15, 66, 76, 80], "setinterv": [15, 66, 76], "javenod": [15, 16, 27, 52, 72, 76, 80], "extens": [15, 51, 69], "aim": [15, 40, 76, 80], "simul": [15, 40, 51, 76, 80], "singleton": 17, "fine": [17, 27, 30], "noderuntim": [17, 40, 55, 58, 66, 70, 75], "But": [17, 37, 38, 39, 40, 51, 52, 77], "crash": [17, 20, 22, 24, 37, 38, 51, 57, 60, 62], "serv": 17, "agent": 17, "check_eq": 17, "start_io_thread_async_initi": 17, "exchang": 17, "std": 17, "atomic_bool": 17, "flip": 17, "again": [17, 33, 37], "trigger": [17, 38, 39, 51], "workaround": [17, 40], "inevit": 17, "hacki": 17, "fundament": [17, 47, 77], "instead": [17, 30, 38, 39, 40, 41, 55, 60, 68, 80], "distribut": [18, 25, 58, 62, 72], "eg": 18, "18": [18, 57, 61, 72], "reli": [18, 39, 47, 63, 64, 77], "advanc": [18, 27, 52, 78], "chain": [18, 39], "drive": [18, 40], "prepar": [18, 37, 40, 41, 51, 69], "sudo": [18, 40], "apt": [18, 40], "y": [18, 28, 31, 33, 68], "essenti": 18, "softwar": 18, "properti": [18, 30, 31, 33, 64, 72, 73, 77], "ppa": 18, "toolchain": 18, "altern": [18, 31], "90": 18, "slave": 18, "gcov": 18, "80": 18, "70": 18, "config": [18, 33, 47], "choic": [18, 27], "select": [18, 39, 51], "prioriti": [18, 57], "statu": [18, 48, 53], "effort": [18, 48, 72], "commit": [18, 25, 72], "background": [20, 27, 52], "troubleshoot": [20, 27, 34], "dynam": [20, 24, 27, 37, 41, 51, 55, 62], "routin": [20, 24, 40], "sigsegv": [20, 24], "createv8runtim": [20, 24, 27, 29, 40, 41, 48, 63, 64, 66, 70, 73, 74, 75], "aw": [20, 24, 39], "being": [20, 24, 33, 39, 40, 48, 51], "failur": [21, 57], "happen": [21, 26, 30, 33, 39, 52], "root": [21, 25, 29, 39, 40, 41], "napi": [21, 40], "symbol": [21, 28, 31, 33, 40, 45, 56, 58, 61], "cannot": [21, 30, 38, 39, 40, 41], "found": [21, 40, 45, 76], "modular": [21, 36, 42, 80], "By": [22, 37, 39, 73], "reduc": [22, 41], "relat": [22, 51], "attempt": 22, "meet": [25, 30, 40], "import": [25, 26, 47, 48, 52, 72, 80], "enum": 25, "jsruntimetyp": [25, 37, 40, 75, 77], "interop": [25, 27, 65, 78], "ijavetengin": [25, 40, 48, 69, 75, 76], "javetenginepool": [25, 40, 47, 55, 57, 69, 75, 77], "util": [25, 33], "arraylist": [25, 28, 31, 68], "public": [25, 29, 31, 33, 37, 47, 51, 52, 58, 63, 64, 66, 73, 76, 77], "class": [25, 29, 31, 40, 47, 51, 63, 64, 66, 73, 77], "testcrash": 25, "void": [25, 29, 31, 33, 47, 51, 52, 63, 64, 66, 73, 76], "throw": [25, 29, 30, 33, 40, 48, 51, 52, 64, 66, 76], "except": [25, 29, 33, 38, 39, 40, 42, 47, 48, 51, 55, 57, 58, 64, 80], "int": [25, 29, 31, 32, 33, 41, 48, 51, 64, 66, 73], "threadcount": 25, "length": [25, 28, 29, 31, 33, 39, 41], "integ": [25, 31, 32, 33, 39, 50, 51, 66], "parseint": 25, "println": [25, 27, 40, 63, 64, 66, 67, 68, 70, 73, 74], "els": [25, 29, 40, 51, 52, 64, 66, 72, 76, 80], "threadlist": 25, "enginepool": 25, "getconfig": [25, 33, 40, 63, 75], "setjsruntimetyp": [25, 40, 75, 77], "getengin": [25, 40, 48, 69, 75], "reach": [25, 30, 45], "catch": [25, 29, 48, 51, 52, 66, 74], "throwabl": [25, 47, 74], "printstacktrac": [25, 29, 48, 66], "err": [25, 74], "join": [25, 33, 63], "peacefulli": 25, "seem": 25, "protect": [25, 29, 38, 47, 48, 77], "specif": [25, 39, 52], "26": [25, 27, 57, 58, 62], "occur": [25, 26, 30, 33, 39], "small": 25, "forc": [25, 26, 33, 42, 69], "v8host": [25, 27, 29, 37, 39, 40, 41, 48, 55, 56, 57, 63, 64, 66, 70, 73, 74], "getv8inst": [25, 27, 39, 40, 48, 63, 64, 70, 73, 74, 75], "trick": [25, 66], "threadisol": 25, "fedora": 25, "kvm": 25, "cycl": [25, 39], "ensur": [25, 63], "patch": [25, 53, 62], "consum": [25, 50], "linx": 25, "kernel": 25, "user": [26, 30, 33, 40, 47, 69, 74, 77], "segfault": [26, 80], "82": 26, "loop": [26, 48, 52, 66, 74], "exit": [26, 74], "see": [26, 38, 40, 63, 64, 75], "hand": 26, "yet": 26, "resolv": [26, 33, 40, 41, 66, 80], "reject": [26, 42, 56], "land": 26, "lead": [26, 41, 42], "corrupt": 26, "peopl": [26, 80], "mostli": 26, "genuin": 26, "prevent": [26, 37, 39, 42], "fact": [26, 52], "won": [26, 30, 37], "standard": [26, 40, 60], "hit": [26, 48], "explicitli": [26, 33, 37, 39, 42, 69], "garbag": [26, 33, 37, 39, 63], "collect": [26, 28, 31, 37, 49, 54], "eight": 27, "awesom": [27, 75], "star": 27, "medium": 27, "blogspot": 27, "channel": 27, "discord": [27, 80], "retir": 27, "mail": 27, "great": 27, "thank": 27, "arm64": [27, 60, 62, 72], "v20": [27, 53, 62], "285": [27, 62], "prefer": 27, "polyfil": [27, 71, 78, 80], "exposur": [27, 54], "bigint": [27, 32, 39, 54], "date": [27, 32, 40, 54], "live": [27, 38, 39, 51], "analysi": [27, 40], "javetsanit": 27, "groupid": [27, 33, 72], "artifactid": [27, 33, 72], "getnodeinst": [27, 29, 39, 66, 70, 75], "getexecutor": [27, 28, 29, 31, 33, 40, 41, 48, 50, 51, 52, 63, 64, 66, 67, 68, 69, 70, 73, 74, 76], "executestr": [27, 28, 31, 33, 40, 51, 63, 67, 68, 70, 76], "hivemq": 27, "apach": 27, "graalj": [27, 33], "nashorn": 27, "elegantli": [27, 63, 64], "jsonnod": [27, 65, 78], "compromis": 27, "typescript": 27, "intro": 27, "tutori": [27, 63], "convert": [27, 34, 45, 51, 55, 57, 58, 63, 64, 65, 67, 78, 80], "todo": [27, 34], "note": [27, 33, 39, 40, 51], "javetproxyconvert": [28, 30, 39, 56, 57, 63, 64, 67, 80], "skip": [28, 30, 33, 56], "proxi": [28, 31, 57, 58, 62, 63, 64], "primit": [28, 29, 30, 31, 33, 42, 51, 54, 57, 58], "annoi": 28, "variabl": [28, 38, 40, 51, 57, 67, 68, 73], "accid": 28, "javetbridgeconvert": [28, 39, 57], "ident": [28, 40, 51, 73], "setconvert": [28, 29, 33, 63, 64, 67], "btrue": 28, "bfals": 28, "asserttru": [28, 33, 40, 41, 48, 50, 51, 52], "executeobject": [28, 33, 63, 67, 68], "assertfals": [28, 33, 40, 48, 50, 51], "assertequ": [28, 31, 33, 40, 41, 48, 50, 51], "tov8valu": [28, 29, 64], "executeinteg": [28, 31, 33, 40, 41, 48, 51, 63, 70], "toprimit": 28, "12345": 28, "12346": 28, "intarrai": 28, "assertarrayequ": [28, 33], "iter": [28, 33, 61], "integerlist": 28, "executevoid": [28, 29, 33, 40, 41, 48, 51, 63, 64, 66, 67, 68, 69, 73, 76], "longlist": 28, "unmodifiablelist": 28, "aslist": [28, 51], "1l": 28, "2l": 28, "stringifi": [28, 33, 68], "implicit": [28, 80], "given": [28, 39], "give": [28, 30, 39, 48, 51, 63], "ab": 28, "implicitli": [28, 57], "besid": [28, 51], "power": [29, 41], "simpl": [29, 33, 37, 39, 40, 41, 47, 51, 64, 66, 75], "about": [29, 38], "reflect": [29, 31, 33, 42, 51, 61], "tweak": 29, "pair": [29, 51], "null": [29, 31, 33, 40, 51, 52, 66, 73, 74], "getnam": [29, 31, 73, 77], "return": [29, 30, 31, 33, 37, 39, 40, 42, 48, 51, 52, 55, 64, 66, 67, 68, 73, 77], "setnam": [29, 31, 73], "getvalu": [29, 31, 50, 51, 64, 73], "setvalu": [29, 31, 51, 73], "Then": 29, "recurs": [29, 30, 56], "parent": [29, 42], "overrid": [29, 33, 37, 47, 51, 52, 64], "depth": [29, 30, 45, 56], "argument": [29, 31, 41, 80], "circular": [29, 45, 56], "structur": [29, 45, 56, 64], "increment": [29, 64], "suppresswarn": 29, "uncheck": 29, "extend": [29, 33, 40, 51], "javetobjectconvert": [29, 30, 31, 56, 80], "method_prefix_get": 29, "method_prefix_i": 29, "excluded_method": 29, "hashset": [29, 31, 51], "getmethod": [29, 51], "getparametercount": 29, "methodnam": [29, 45, 51], "startswith": 29, "v8valu": [29, 30, 52, 55, 56, 58, 64, 68, 74, 80], "javetexcept": [29, 51, 52, 64, 66, 76], "super": [29, 64], "isundefin": 29, "objectclass": 29, "getclass": 29, "v8valueobject": [29, 33, 39, 40, 51, 56, 58, 73, 76, 80], "createv8valueobject": [29, 39, 40, 51, 73], "canaccess": 29, "propertynam": 29, "contain": [29, 33, 40, 42, 51], "substr": 29, "tolowercas": 29, "v8valuetemp": 29, "line": [29, 38, 51, 74], "testpojo": 29, "pojoarrai": 29, "tom": 29, "ceo": 29, "jerri": 29, "cfo": 29, "log": [29, 39, 42, 46, 51, 52, 66, 69, 73], "transpar": [29, 33, 51, 80], "autom": [29, 39], "bridg": [30, 57], "arrai": [30, 31, 33, 39, 50, 51, 54], "famou": 30, "topic": [30, 52], "lang": [30, 37, 63], "nullpointerexcept": 30, "luckili": [30, 40], "inject": [30, 33, 37, 39, 41, 45, 51, 52, 56, 63, 64, 80], "javetconverterconfig": [30, 56, 62], "overridden": [30, 37], "differenti": 30, "introduc": [30, 39, 40, 57, 80], "ijavetentityfunct": [30, 31], "ijavetentitymap": [30, 31], "setskipfunctioninobject": 30, "boolean": [30, 31, 32, 37, 41], "setextractfunctionsourcecod": 30, "opportun": 30, "extract": 30, "ineffici": 30, "inconveni": [30, 37], "substanti": 30, "javetconverterexcept": 30, "maximum": 30, "cheap": 30, "unrealist": 30, "number": [30, 32, 39, 40], "stackoverflowerror": 30, "wors": 30, "block": [30, 38, 39, 45, 51, 70], "stack": [30, 51], "overflow": 30, "attack": [30, 48], "drain": [30, 39], "tini": 30, "behavior": [30, 33, 39, 42, 51], "fanci": 30, "read": [30, 39, 41, 45, 52], "setproxymapen": [30, 33], "wherea": [30, 39], "conveni": 30, "bi": [30, 68], "direction": [30, 68], "grain": 30, "worri": [30, 37, 40, 48, 66], "vice": 30, "versa": 30, "open": [31, 33, 42, 63], "subclass": [31, 33, 42, 52], "int8arrai": [31, 39], "char": [31, 32, 51], "doubl": [31, 32, 39, 51], "float64arrai": [31, 39], "float": [31, 32, 39, 51], "float32arrai": [31, 39], "int32arrai": [31, 39], "int64arrai": 31, "short": [31, 32, 39, 51], "int16arrai": [31, 39], "stream": [31, 51, 56, 58], "javetentitysymbol": 31, "ijavetmapp": [31, 56], "hashmap": [31, 68], "uint8arrai": [31, 39], "uint8clampedarrai": [31, 39], "uint16arrai": [31, 39], "uint32arrai": [31, 39], "bigint32arrai": 31, "bigint64arrai": [31, 39], "pojo": 31, "registercustomobject": [31, 56], "alien": 31, "match": [31, 33, 40, 67], "constructor": [31, 33, 57, 63, 76], "signatur": [31, 45, 51], "frommap": 31, "tomap": 31, "touchabl": 31, "easier": 31, "customobject": 31, "put": [31, 33, 42, 64, 68], "getter": [31, 33, 51, 56, 57, 73, 80], "setter": [31, 33, 51, 56, 73, 80], "snippet": [31, 39, 40, 63], "below": [31, 51], "getconvert": 31, "ones": 31, "upon": 31, "registr": [31, 45, 80], "customfrommap": 31, "customtomap": 31, "regular": [31, 38], "v8customobject": 31, "getobject": [31, 33], "assertnotnul": [31, 33, 41, 50], "pro": 31, "con": 31, "intrus": [31, 64], "carri": [31, 80], "inform": 31, "memor": 31, "complic": [31, 40], "relationship": 31, "javetprimitiveconvert": [32, 56, 58], "charact": 32, "biginteg": 32, "zoneddatetim": [32, 58, 59], "optionalint": 32, "optionaldoubl": 32, "optionallong": 32, "fall": 32, "rang": [32, 39], "danger": 33, "touch": [33, 38], "tmp": 33, "executeboolean": [33, 63], "isfil": 33, "isdirectori": 33, "canread": [33, 76], "canwrit": 33, "canexecut": 33, "lowmemorynotif": [33, 51, 52, 55, 63, 64, 69, 73, 80], "setproxylisten": [33, 62], "simplelist": 33, "assertsam": 33, "z": 33, "pop": 33, "tojson": 33, "unshift": 33, "shift": 33, "simplemap": 33, "getownpropertynam": [33, 50], "containskei": 33, "topath": 33, "tostr": [33, 40, 50, 51, 63, 64, 67, 74, 76], "newpath": 33, "toobject": 33, "abc": [33, 37, 51, 63, 67], "setproxyseten": 33, "simpleset": 33, "const": [33, 40, 41, 50, 51, 64, 66, 67, 68, 76], "def": [33, 51, 66], "n": [33, 40, 51, 67], "d": [33, 40, 67], "instanceof": [33, 51, 52, 64], "matcher": [33, 67], "123": [33, 51, 63, 67, 73, 76], "a123": 33, "smart": [33, 39], "javeterrortyp": 33, "assertthrow": 33, "javetexecutionexcept": [33, 40, 57], "field": 33, "should": [33, 48], "writabl": 33, "annot": [33, 51, 56, 63], "autoclos": 33, "ijavetclos": [33, 56], "isassignablefrom": 33, "special": [33, 40, 51], "known": [33, 39], "lambda": [33, 51], "istringjoin": 33, "two": [33, 39], "stringjoin": 33, "hold": [33, 39, 52], "joiner": 33, "getjoin": 33, "setjoin": 33, "v8valuefunct": [33, 40, 51, 55, 56, 66, 76], "orphan": 33, "callabl": 33, "outofmemoryerror": 33, "similar": [33, 42, 69], "enhanc": [33, 51, 55, 56, 57, 58, 61], "istringutil": 33, "hello": [33, 66, 67, 69, 71, 78], "split": 33, "stringutil": 33, "getutil": 33, "setutil": 33, "str": [33, 51], "toarrai": [33, 68], "aussi": 33, "non": [33, 42, 51, 63], "bytebuddi": [33, 59], "alreadi": [33, 45, 52], "referenc": [33, 39, 40], "buddi": [33, 63], "groovi": 33, "javetreflectionobjectfactori": [33, 63], "stai": [33, 37, 66, 80], "dynamicclass": [33, 63], "ijavetanonym": [33, 51, 56, 63], "setreflectionobjectfactori": [33, 63], "getinst": [33, 37, 63], "codestr": [33, 40, 54], "gc": [33, 37, 63, 64, 69, 73], "runfin": [33, 63], "collector": [33, 39, 63], "less": [33, 37], "go": [33, 40, 53], "period": [33, 44], "smartli": 33, "overload": 33, "vararg": [33, 51, 55, 58], "identifi": 33, "alter": 33, "v8allow": [33, 57], "v8block": [33, 57], "ignor": [33, 39, 51, 55], "v8getter": [33, 57], "v8setter": [33, 57], "treat": [33, 37, 39], "allowonli": 33, "blockonli": 33, "alia": 33, "virtual": [33, 40, 58], "document": [37, 51, 56], "assum": [37, 40, 51], "reload": 37, "setlibraryreload": 37, "unloadlibrari": [37, 56], "restor": [37, 51, 62], "prior": 37, "loadlibrari": [37, 56], "unstabl": 37, "risk": [37, 42], "temp": 37, "javetlibload": 37, "setlibloadinglisten": 37, "ijavetlibloadinglisten": [37, 57], "getlibpath": 37, "anywher": 37, "bypass": [37, 51], "isdeploi": 37, "must": [37, 39, 51, 76], "islibinsystempath": 37, "mavin": 37, "plug": 37, "osgi": 37, "repeatedli": 37, "regardless": [37, 38, 42], "unsatisfiedlinkerror": 37, "issuppressingerror": [37, 57], "javetlibloadinglisten": [37, 57], "mechan": [37, 38, 80], "djavet": 37, "unlock": [38, 64], "surround": 38, "v8locker": [38, 42, 54], "locker": 38, "getv8lock": 38, "nest": 38, "thrown": [38, 39, 42, 48, 51], "report": 38, "conflict": [38, 45], "slight": [38, 62], "sensit": [38, 39, 42, 54, 80], "extrem": [38, 51], "50": 38, "granular": [38, 40], "concurr": 38, "scenario": [38, 39, 42, 54, 80], "maxim": [38, 42], "incompat": 38, "chao": 38, "sequenc": 38, "newglobalref": 39, "javaobject": [39, 80], "until": 39, "deleteglobalref": 39, "across": 39, "raw": 39, "categor": 39, "within": 39, "persist": 39, "borrow": [39, 51], "rule": [39, 51], "wrap": 39, "outsid": 39, "setweak": [39, 42], "determin": [39, 51, 56], "javetstandardconsoleinterceptor": [39, 69, 73], "v8scope": [39, 42, 56], "setescap": 39, "getv8scop": 39, "binari": [39, 45, 60], "often": 39, "manipul": [39, 50], "content": [39, 52, 62], "dataview": 39, "format": [39, 40, 45, 51], "nio": 39, "bytebuff": [39, 58], "consid": [39, 51, 64], "idl": 39, "equival": [39, 41, 51], "128": 39, "complement": 39, "sign": 39, "int8_t": 39, "unsign": 39, "octet": 39, "uint8_t": 39, "clamp": 39, "32768": 39, "32767": 39, "int16_t": 39, "65535": 39, "uint16_t": 39, "2147483648": 39, "2147483647": 39, "int32_t": 39, "4294967295": 39, "uint32_t": 39, "38": 39, "1038": 39, "ieee": 39, "point": [39, 40], "digit": 39, "234567": 39, "unrestrict": 39, "324": 39, "10308": 39, "64": [39, 56], "23456789012345": 39, "int64_t": 39, "biguint64arrai": 39, "264": 39, "uint64_t": 39, "testv8valuetypedarrai": 39, "testv8valuedataview": 39, "frequenc": 39, "area": 39, "pace": 39, "zombi": 39, "notifi": [39, 64, 73], "space": 39, "v8notifi": 39, "setmemoryusagethresholdratio": [39, 55], "threshold": 39, "ratio": 39, "enablegcnotif": [39, 55], "ration": 39, "xms64m": 39, "xmx64m": 39, "pressur": [39, 80], "destroi": 39, "curv": 39, "smoother": 39, "exce": 39, "broadcast": 39, "schedul": [39, 57], "affect": 39, "worker": 39, "javetengineconfig": [39, 47, 55, 58, 77], "setautosendgcnotif": [39, 77], "light": 39, "weight": 39, "hint": [39, 51], "task": [39, 52, 55], "queue": [39, 52], "decis": 39, "millisecond": [39, 41, 48, 66], "disregard": 39, "aforement": 39, "noderuntimeopt": [39, 57], "v8_flag": 39, "setallownativessyntax": 39, "setexposegc": 39, "setexposeinspectorscript": 39, "setmaxheaps": 39, "768": 39, "setmaxoldspaces": 39, "setusestrict": 39, "settrackretainingpath": 39, "setcustomflag": 39, "max": [39, 45], "semi": [39, 51], "384": 39, "min": 39, "256": 39, "seal": 39, "modif": 39, "analyz": [39, 40], "getv8heapspacestatist": [39, 57], "getv8heapstatist": [39, 57], "getv8sharedmemorystatist": [39, 57], "esm": 40, "earlier": 40, "commonj": 40, "amd": [40, 64], "getv8runtim": [40, 48, 64, 69, 76], "workingdirectori": 40, "javetosutil": [40, 66, 76], "working_directori": [40, 66, 76], "node_modul": [40, 42, 66, 76], "getnodemodul": 40, "nodemodulemodul": 40, "setrequirerootdirectori": 40, "getlogg": [40, 47, 76], "loginfo": [40, 76], "23": [40, 55, 58, 59, 61, 72, 76], "34": [40, 72, 76], "decim": 40, "__dirnam": 40, "__filenam": 40, "scriptfil": 40, "scriptpath": 40, "scriptstr": 40, "iv8executor": [40, 59], "setresourcenam": 40, "resourcenam": 40, "setmodul": 40, "excit": 40, "potenti": [40, 56, 57], "piec": 40, "sqlite3": 40, "bother": 40, "electron": 40, "approach": [40, 51], "simpler": 40, "node_sqlite3": 40, "napi_create_error": 40, "patchelf": 40, "npm": [40, 66, 76], "node_module_fil": 40, "loadlibraryexw": 40, "unzip": 40, "somewher": 40, "replac": [40, 63, 64], "voluntarili": 40, "compat": [40, 57, 62], "through": [40, 51], "pretti": 40, "backup": 40, "rebuilt": [40, 55], "dumpbin": 40, "win32": 40, "delai": 40, "ex": [40, 41], "00000001": 40, "characterist": 40, "0000000180154a40": 40, "hmodul": 40, "0000000180154818": 40, "tabl": [40, 60], "000000018014f248": 40, "000000018014fa68": 40, "bound": 40, "0000000000000000": 40, "stamp": 40, "0000000180108724": 40, "424b": 40, "napi_create_funct": 40, "0000000180108ab5": 40, "4243": 40, "napi_create_buffer_copi": 40, "1801363d8": 40, "180166610": 40, "index": 40, "6096": 40, "napi_open_escapable_handle_scop": 40, "6072": 40, "napi_get_undefin": 40, "apart": 40, "swc": 40, "gyp": 40, "ppee": 40, "puppi": 40, "profession": 40, "pe": 40, "explor": 40, "cli": 40, "drag": 40, "directory_entry_delay_import": 40, "save": [40, 66], "resolut": [40, 61], "embedd": 40, "relai": [40, 57], "reachabl": 40, "javetbuiltinmoduleresolv": [40, 62], "setv8moduleresolv": 40, "existssync": 40, "getboolean": 40, "capabl": [40, 51, 63, 64], "gain": 40, "order": [40, 50], "launch": [40, 41, 42], "testfrommodul": 40, "assign": [40, 51, 56, 67], "v8modul": [40, 55, 59, 62], "compilemodul": 40, "containsmodul": 40, "getinteg": [40, 48], "heavi": 40, "v8modulereferr": 40, "equal": [40, 51, 54, 68, 74, 76], "compilev8modul": [40, 80], "cach": [40, 54, 58, 59], "propos": 40, "advantag": 40, "tradit": 40, "record": 40, "createv8valuefunct": [40, 51], "createv8modul": [40, 62], "issourcetextmodul": [40, 62], "issyntheticmodul": [40, 62], "invokeinteg": 40, "speed": 41, "popular": 41, "pre": 41, "cook": 41, "meal": 41, "re": [41, 55, 63, 66], "hungri": 41, "deploy": 41, "captur": [41, 74], "primari": 41, "usag": [41, 80], "smaller": 41, "mitig": 41, "harder": 41, "malici": [41, 42, 48], "subset": 41, "suitabl": [41, 73], "v8runtimeopt": [41, 57], "setcreatesnapshoten": [41, 62], "setsnapshotblob": [41, 62], "blob": 41, "snapshotblob1": 41, "snapshotblob2": 41, "createsnapshot": [41, 62], "usabl": 41, "subtract": 41, "technic": [41, 51, 75], "difficulti": 41, "toolkit": 41, "variant": 41, "label": 41, "extra": [41, 80], "1m": 41, "assembli": 41, "direct": 41, "298k": 41, "745k": 41, "28": [41, 56, 59, 62], "previou": [41, 51], "obtain": 42, "pass": [42, 56], "dangl": [42, 60], "ey": 42, "stage": 42, "prohibit": 42, "uncertain": 42, "acquir": [42, 45, 80], "eval": [42, 51], "impact": [42, 51], "unhandl": 42, "whose": 42, "style": 44, "statist": [44, 57], "101": 45, "osnotsupport": 45, "102": 45, "librarynotfound": 45, "103": 45, "librarynotload": 45, "104": 45, "notsupport": 45, "failedtoreadpath": 45, "201": 45, "compilationfailur": 45, "301": 45, "executionfailur": 45, "302": 45, "executiontermin": 45, "termin": [45, 46], "continu": 45, "401": 45, "callbacksignatureparametersizemismatch": 45, "mismatch": 45, "paramet": [45, 51], "expectedparameters": 45, "actualparameters": 45, "402": 45, "callbacksignatureparametertypemismatch": 45, "expectedparametertyp": 45, "actualparametertyp": 45, "403": 45, "callbackinjectionfailur": 45, "404": 45, "callbackregistrationfailur": 45, "405": 45, "callbackmethodfailur": 45, "406": 45, "callbackunknownfailur": 45, "unknown": 45, "407": [45, 56], "callbackunregistrationfailur": 45, "unregistr": 45, "408": [45, 61], "callbacktypenotsupport": [45, 61], "callbacktyp": 45, "501": 45, "converterfailur": 45, "502": 45, "convertercircularstructur": 45, "503": [45, 56], "convertersymbolnotbuiltin": 45, "601": 45, "modulenameempti": 45, "empti": 45, "602": [45, 56], "modulenotfound": 45, "modulenam": 45, "603": [45, 56], "modulepermissiondeni": 45, "deni": 45, "701": 45, "lockacquisitionfailur": 45, "702": 45, "lockreleasefailur": 45, "703": 45, "lockconflictthreadidmismatch": 45, "lockedthreadid": 45, "currentthreadid": 45, "801": 45, "runtimealreadyclos": 45, "802": 45, "runtimealreadyregist": 45, "803": 45, "runtimenotregist": 45, "804": 45, "runtimeleakagedetect": 45, "805": [45, 56], "runtimeclosefailur": 45, "806": [45, 57], "runtimeoutofmemori": 45, "heapstatist": 45, "807": 45, "runtimecreatesnapshotdis": [45, 62], "808": 45, "runtimecreatesnapshotblock": [45, 62], "callbackcontextcount": 45, "referencecount": 45, "v8modulecount": 45, "901": [45, 58], "enginenotavail": [45, 58], "hell": [47, 77], "3rd": [47, 51], "parti": [47, 51], "interfac": [47, 52, 80], "slf4j": 47, "org": [47, 72], "loggerfactori": 47, "myjavetlogg": [47, 77], "isdebugen": 47, "info": [47, 59], "isinfoen": 47, "iswarnen": 47, "javetlogg": 47, "testlogg": 47, "setjavetlogg": [47, 77], "ijavetengineguard": [48, 54], "ijavetenginepool": [48, 69, 77], "guard": 48, "getguard": 48, "10000": 48, "infinit": [48, 74], "javetterminatedexcept": 48, "mark": 48, "iscontinu": 48, "dead": 48, "afterward": [48, 52], "hang": 48, "till": 48, "timeout": [48, 52], "cancel": 48, "monitor": 48, "daemonthread": 48, "isinus": [48, 54], "timeunit": [48, 66], "sleep": [48, 66], "interruptedexcept": [48, 66], "terminateexecut": [48, 54, 80], "var": [48, 51, 66], "greater": 48, "javetengineguard": [48, 55], "interrupt": 48, "disableindebugmod": [48, 55], "enableindebugmod": [48, 55], "getlength": 50, "getsiz": 50, "getkei": 50, "getentri": 50, "foreach": [50, 54, 61], "biconsum": 50, "weakmap": 50, "weakset": 50, "atomicinteg": 50, "v8valueinteg": [50, 51, 64], "getandincr": 50, "popinteg": 50, "preserv": 50, "v8valuestr": [50, 64], "getjsfunctiontyp": [51, 55], "invis": 51, "stori": 51, "closur": 51, "goal": 51, "iv8valueobject": [51, 54, 55, 56, 59, 61], "caller": [51, 52], "scan": 51, "input": [51, 64, 68, 74], "receiv": [51, 52, 56, 64], "functioncallbackreceiv": 51, "tricki": 51, "charm": 51, "generatearraywithconvert": 51, "intrud": 51, "untouch": 51, "situat": 51, "v8runtimesett": 51, "generatearraywithoutconvert": 51, "declar": [51, 77, 80], "annotationbasedcallbackreceiv": 51, "stringvalu": 51, "getstringvalu": 51, "setstringvalu": 51, "echo": 51, "mathadd": 51, "recogn": [51, 64], "v8valuearrai": 51, "createv8valuearrai": 51, "staticecho": 51, "setv8runtim": 51, "tojsonstr": 51, "testopt": 51, "optionalstr": 51, "teststream": 51, "filter": 51, "thisobjectrequir": [51, 56], "specifi": [51, 80], "thisobject": 51, "bodi": [51, 64, 66], "especi": [51, 69, 80], "simpli": [51, 64], "symboltyp": 51, "v8valuesymboltyp": 51, "v8bindingenabl": [51, 56], "disabledfunct": 51, "disabledproperti": 51, "isv8bindingen": 51, "arbitrarymethod": 51, "whether": [51, 56], "refactor": [51, 55, 56, 57, 58], "friendli": [51, 80], "javetreflectionutil": [51, 56], "getmethodnamefromlambda": [51, 56], "getmethodnamesetfromlambda": [51, 56], "firstli": 51, "disabledfunctionset": 51, "supplier": 51, "serializ": 51, "secondli": 51, "est": 51, "tr\u00e8": 51, "bien": 51, "unbind": [51, 56, 80], "unbindproperti": [51, 56, 61], "unbindfunct": [51, 56, 61], "ijavetanonymous1": 51, "testfunct": 51, "testproperti": 51, "ijavetanonymous2": 51, "javetentityfunct": [51, 56], "jsfunctiontyp": 51, "userdefin": 51, "mockcallbackreceiv": 51, "blank": 51, "iscal": 51, "happi": 51, "mirror": 51, "anonym": [51, 63], "getsourcecod": [51, 55], "setsourcecod": [51, 55], "sourcecod": 51, "existingsourcecod": 51, "startposit": 51, "endposit": 51, "getposit": 51, "newsourcecod": 51, "setposit": 51, "len": 51, "radic": 51, "rough": 51, "layout": 51, "remain": 51, "accordingli": 51, "invoc": 51, "pseudo": [51, 52, 66], "originalsourcecod": 51, "getjsscopetyp": 51, "isclass": 51, "indic": 51, "callvoid": [51, 66], "isfunct": 51, "incorrect": 51, "malform": 51, "keyword": 51, "discard": 51, "createv8valuestr": [51, 55], "toclon": [51, 59], "abov": 51, "intvalu": 51, "valueof": 51, "createv8valueinteg": [51, 64], "safeti": 51, "sentenc": [51, 80], "belong": 51, "prototyp": 51, "combin": 51, "func": 51, "callobject": 51, "callprimit": 51, "callasconstructor": [51, 54, 76], "itself": 51, "invokevoid": [51, 64], "invokeobject": [51, 67], "invokeprimit": 51, "despit": 51, "deficit": 51, "quot": 51, "getcontext": [51, 57], "setcontext": 51, "copyscopeinfofrom": [51, 59], "anoth": [51, 63, 76], "setscriptsourc": [51, 59], "lexic": 51, "jsfunction": 51, "ecma": 51, "262": 51, "speak": 51, "parallel": 51, "slot": 51, "scope_info": 51, "describ": 51, "lookup": 51, "presenc": 51, "scopeinfo": [51, 59], "hascontextextensionslot": 51, "search": 51, "purpos": 51, "henc": 51, "sloppi": 51, "inner": [51, 57], "fast": 51, "harmoni": 51, "scriptcontext": 51, "rather": 51, "functioncontext": 51, "gather": 51, "scriptcontextt": 51, "toler": 51, "natur": [51, 52], "strongli": [51, 64], "conform": 51, "throughout": 51, "samplewithoutthi": 51, "samplewiththi": 51, "excess": 51, "behav": 51, "redund": 51, "fill": 51, "review": [51, 52], "due": 52, "multi": [52, 69, 80], "friend": 52, "iv8valuepromis": [52, 59], "ownership": 52, "chart": 52, "v8valuepromis": [52, 55, 56], "icallback": 52, "oncatch": 52, "v8valueerror": 52, "onfulfil": 52, "fulfil": 52, "onreject": 52, "manner": [52, 80], "filecont": 52, "filepath": 52, "v8valuepromiseresolv": 52, "createv8valuepromis": 52, "getpromis": 52, "getfilecont": 52, "getfilepath": 52, "createv8valueundefin": 52, "print": [52, 68, 74], "rais": 52, "setpromiserejectcallback": 52, "ijavetpromiserejectcallback": 52, "unhandledreject": 52, "handi": 52, "mainstream": 53, "v11": [53, 72], "mainten": [53, 56], "v18": [53, 60, 61], "v10": [53, 62], "v16": [53, 58], "v9": [53, 72], "v0": [53, 54, 55, 56, 72, 80], "v14": [53, 55, 56], "critic": 53, "bug": [53, 55, 57, 58, 59, 60, 61, 80], "deprec": [54, 55], "v8valueweakmap": 54, "v8valueweakset": 54, "setfunct": [54, 55], "functionnam": 54, "strictequ": 54, "samevalu": 54, "iv8valu": [54, 55, 59], "getidentityhash": 54, "iv8valuerefer": 54, "isdead": 54, "view": 54, "2021": [54, 55, 56, 57, 80], "02": [54, 55, 58, 59], "renam": [55, 56, 59, 61], "ijavetconsum": 55, "ijavetuniconsum": 55, "ijavetuniindexedconsum": 55, "ijavetbiindexedconsum": 55, "v8functioncallback": [55, 61], "bindfunct": [55, 61], "bindproperti": [55, 61], "checkreturnvalu": 55, "organ": 55, "iv8valuefunct": [55, 56, 59], "emit": 55, "univers": 55, "createv8valuedoubl": 55, "createv8valuezoneddatetim": 55, "javeterror": [55, 58, 62], "gcbeforeengineclos": 55, "javetcallbackexcept": 55, "isnullorundefin": 55, "06": [55, 56, 58, 61], "257": 55, "idlenotificationdeadlin": 55, "disablegcnotif": 55, "autosendgcnotif": 55, "javetcallbackcontext": [55, 61], "javetpromiserejectcallback": 55, "allowev": 55, "v8script": [55, 59], "v8bindenabl": 56, "v8virtualescapablevalu": 56, "146": [56, 57], "09": [56, 57, 59, 61, 62], "hasinternaltyp": 56, "isgeneratorobject": 56, "isgeneratorfunct": 56, "isasyncfunct": 56, "v8flag": 56, "v8valuesharedarraybuff": 56, "unregistercustomobject": 56, "javadoc": 56, "08": [56, 58, 61], "31": 56, "345": 56, "v8valuebuiltinsymbol": 56, "getownpropertysymbol": 56, "v8valuebuiltinobject": [56, 62], "createv8valuesymbol": 56, "javetvirtualobject": 56, "javetuniversalproxyhandl": 56, "isclos": 56, "07": [56, 58, 60, 61], "29": [56, 72], "staticclassen": 56, "ownkei": 56, "iv8valueproxi": 56, "v8valueproxi": 56, "gettarget": 56, "gethandl": 56, "isrevok": 56, "revok": 56, "createv8valueproxi": 56, "230": 56, "19": [56, 57], "getprototyp": 56, "setprototyp": 56, "01": [56, 57, 58, 59, 62], "iv8moduleresolv": 56, "nodemoduleprocess": 56, "getvers": 56, "15": [56, 58, 59, 60, 62], "05": [56, 58, 61], "269": 56, "12": [57, 59, 60, 61], "106": 57, "javetcompilationexcept": 57, "convent": 57, "agnost": 57, "getdetailedmessag": 57, "getstack": 57, "javetscriptingerror": 57, "adjust": 57, "capac": 57, "observ": 57, "v8runtimeobserveraveragecallbackcontextcount": 57, "v8runtimeobserveraveragereferencecount": 57, "v8runtimeobserveraveragev8modulecount": 57, "v8convert": 57, "180": 57, "javetoutofmemoryexcept": 57, "awai": 57, "haspendingexcept": 57, "haspendingmessag": 57, "hasscheduledexcept": 57, "promotescheduledexcept": 57, "reportpendingmessag": 57, "addgcepiloguecallback": 57, "addgcprologuecallback": 57, "removegcepiloguecallback": 57, "removegcprologuecallback": 57, "172": [57, 62], "22": [57, 62, 72], "v8intern": 57, "clean": [57, 63], "methodhandl": 57, "cast": 57, "mistakenli": 57, "218": 58, "handler": [58, 66], "132": 58, "improp": 58, "waitforenginemaxretrycount": 58, "174": 58, "pend": [58, 66], "andoird": 58, "v8valuebiginteg": 58, "154": 58, "ispurgeeventloopbeforeclos": 58, "setpurgeeventloopbeforeclos": [58, 66], "124": [58, 73], "03": [58, 59, 60], "139": 58, "115": 58, "createv8valuearraybuff": 58, "177": 58, "r23b": 58, "abi": [58, 60, 72], "libgcc": 58, "libstdc": 58, "cento": 58, "226": 59, "verifynostrongbaseobject": 59, "ilisten": 59, "v8awaitmod": 59, "194": 59, "compilev8valuefunct": 59, "getcacheddata": 59, "iswrap": 59, "getargu": 59, "cacheddata": 59, "v8stringexecutor": 59, "168": 59, "revis": 59, "getscopeinfo": 59, "getownpropertynamestr": 59, "referencecopi": 59, "193": 59, "javetuniversalproxi": 59, "javetdynamicproxi": [59, 61], "javetdynamicobjectfactori": 59, "copycontextfrom": 59, "getscriptsourc": 59, "setsourcecodeopt": 59, "iscompil": 59, "candiscardcompil": 59, "discardcompil": 59, "244": 60, "214": 60, "277": 60, "439": 61, "189": 61, "executor": 61, "nativecontext": 61, "150": 61, "ijavetdirectproxyhandl": [61, 64], "v8virtualiter": 61, "javetproxysymboliterableconvert": 61, "183": 61, "receivecallback": 61, "iv8valuemap": 61, "iv8valuearrai": 61, "batchget": 61, "javetcallbacktyp": 61, "ijavetdirectcal": 61, "redesign": 61, "javetreflectionproxi": 61, "2024": 62, "downgrad": 62, "temporari": 62, "knostdioiniti": 62, "knodefaultsignalhandl": 62, "basejavetconsoleinterceptor": 62, "javetjvminterceptor": [62, 63], "iscreatesnapshoten": 62, "getsnapshotblob": 62, "runtimeopt": 62, "isproxylisten": 62, "arrayutil": 62, "collectionutil": 62, "cdtshell": 62, "267": 62, "169": 62, "freez": 62, "sb": 63, "abc123": 63, "instanti": 63, "meta": 63, "javax": 63, "runnabl": 63, "coupl": 63, "necessari": [63, 69], "dispos": 63, "unregist": [63, 69, 73], "door": [63, 66], "hotfix": [63, 80], "leaf": 64, "elaps": 64, "leverag": 64, "verbos": [64, 80], "testjavaflavor": 64, "round": 64, "isobject": 64, "isint": 64, "asint": 64, "wrapper": 64, "neat": 64, "pure": 64, "testjsflavor": 64, "redirect": [64, 69], "proxyget": 64, "proxyset": 64, "jsonnodewrapp": 64, "requirenonnul": 64, "getjsonnod": 64, "childjsonnod": 64, "v8valueboolean": 64, "propertykei": 64, "propertyvalu": 64, "objectnod": 64, "createv8valueboolean": 64, "testnam": 64, "starttim": 64, "currenttimemilli": 64, "stoptim": 64, "100_000": 64, "interoper": 64, "testscriptjavaflavor": 64, "testscriptjsflavor": 64, "objectmapp": 64, "readtre": 64, "jsonstr": 64, "5950x": 64, "128gb": 64, "22h2": 64, "corretto": 64, "0_282": 64, "19464m": 64, "100000": 64, "5214m": 64, "370": 64, "underli": 64, "spent": 64, "hijack": 66, "seamlessli": 66, "parser": 66, "cooki": 66, "multer": 66, "app": 66, "req": 66, "8991": 66, "testexpress": 66, "codefil": 66, "tofil": 66, "atomicboolean": 66, "serverup": 66, "500": 66, "max_valu": 66, "1000": 66, "awaitmod": 66, "drain_the_task_queu": 66, "pause_the_event_loop": 66, "there_are_more_tasks_in_task_queu": 66, "sleep_a_whil": 66, "resume_the_event_loop": 66, "runonc": 66, "there_are_no_more_task": 66, "timer": 66, "gracefulli": 66, "color": 67, "pink": 67, "awt": 67, "175": 67, "stringarrai": 68, "represent": 68, "stringlist": 68, "assert": 68, "mapx": 68, "mapi": 68, "spawn": 69, "databas": 69, "javetengin": [69, 75], "javetconsoleinterceptor": 69, "famili": 72, "unix": 72, "activebydefault": 72, "operatingsystem": 72, "val": 72, "cpuarch": 72, "getproperti": 72, "ismacosx": 72, "islinux": 72, "aarch64": 72, "cent": 72, "glibc": 72, "mission": 72, "imposs": 72, "guess": 73, "increaseandget": 73, "testintercept": 73, "delta": 73, "testinterceptor": 73, "76": 73, "200": 73, "scanner": 74, "nextlin": 74, "getmessag": 74, "highlight": 75, "javetenginepoo": 75, "l": 75, "loadj": 76, "decimaljsfil": 76, "getabsolutepath": 76, "logerror": 76, "v8valuefunctiondecim": 76, "v8valueobjectdecim": 76, "45": 76, "hasownproperti": 76, "getstr": 76, "bigdecim": 76, "lack": [76, 80], "bean": 77, "propertysourc": 77, "classpath": 77, "configurationproperti": 77, "prefix": 77, "myjavetengineconfig": 77, "javetenginepoolnod": 77, "getjavetenginepoolnod": 77, "javetengineconfignod": 77, "setallowev": 77, "setdefaultengineguardtimeoutmilli": 77, "setengineguardcheckintervalmilli": 77, "setpooldaemoncheckintervalmilli": 77, "setpoolidletimeoutsecond": 77, "setpoolmins": 77, "setpoolmaxs": 77, "setpoolshutdowntimeoutsecond": 77, "setresetenginetimeoutsecond": 77, "javetenginepoolv8": 77, "getjavetenginepoolv8": 77, "javetengineconfigv8": 77, "frequent": 80, "ask": 80, "question": 80, "jan": 80, "publish": 80, "smooth": 80, "took": 80, "week": 80, "abandon": 80, "hierarchi": 80, "inconsist": 80, "repeat": 80, "attent": 80, "mental": 80, "role": 80, "inherit": 80, "liter": 80, "richer": 80, "v8valueprimit": 80, "v8data": 80, "consist": 80, "rich": 80, "pain": 80, "imper": 80, "never": 80, "deliv": 80, "elimin": 80, "rid": 80, "everywher": 80, "shut": 80, "success": 80}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"build": [0, 1, 2, 9], "javet": [0, 1, 2, 4, 6, 7, 13, 18, 23, 27, 37, 38, 40, 41, 57, 69, 70, 74, 80], "environ": [0, 2, 19, 25, 37], "linux": [0, 1, 2, 9, 18, 40, 72], "maco": 0, "window": [0, 1, 2, 9, 40, 72], "android": [0, 1, 2, 57, 72], "variabl": [0, 25, 37], "v8": [0, 1, 4, 6, 15, 25, 39, 40, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 70, 75, 76, 80], "featur": [0, 27, 33], "flag": 0, "from": [1, 13, 31, 32, 37, 39, 80], "scratch": 1, "prepar": [1, 28, 33, 67], "arm64": [1, 2, 57], "x86_64": [1, 56], "mac": [1, 56, 57, 72], "o": [1, 56, 57, 72], "why": [1, 9, 17, 26, 45, 51, 80], "patch": [1, 40], "node": [1, 3, 4, 6, 8, 17, 26, 40, 42, 55, 57, 59, 66, 70, 75, 76, 80], "j": [1, 3, 4, 6, 8, 17, 26, 40, 42, 55, 57, 59, 64, 66, 70, 75, 76, 80], "jni": 1, "librari": [1, 21, 37, 57], "docker": 2, "hub": 2, "github": 2, "express": 2, "full": 2, "multi": [2, 4, 56], "stage": 2, "all": 2, "one": 2, "file": [2, 33, 37], "deprec": 2, "debug": [3, 23, 48, 54], "chrome": [3, 23], "develop": [3, 5, 8, 14], "tool": [3, 8], "cdt": 3, "shell": [3, 74], "1": [3, 25, 38, 39, 47, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 70], "run": 3, "2": [3, 25, 38, 39, 47, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 66], "script": 3, "3": [3, 8, 39, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66], "open": 3, "4": [3, 54, 55, 56, 57, 58, 59, 61], "usual": 3, "intern": [3, 40], "handshak": 3, "custom": [3, 29, 31, 33, 37, 57], "faq": [3, 20], "doe": [3, 30, 31, 33, 38], "support": [3, 12, 18, 22], "mode": [3, 4, 6, 15, 17, 25, 33, 38, 40, 48, 70, 75, 76], "i": [3, 11, 17, 23, 51, 66], "There": 3, "live": [3, 54], "demo": 3, "design": [4, 29], "architectur": 4, "primit": [4, 32, 55, 80], "refer": [4, 34, 35, 39], "type": [4, 51, 80], "v": [4, 6, 51], "modul": [4, 40, 55, 56, 80], "requir": 4, "import": [4, 40, 51], "virtual": [4, 38], "engin": [4, 42, 48, 54, 69], "pool": [4, 42, 48, 69, 75], "isol": 4, "context": [4, 51], "intercept": [4, 13, 51, 55, 73], "cross": 4, "platform": 4, "process": [4, 56], "safeti": [4, 30, 38], "memori": [4, 39], "leak": 4, "detect": 4, "perform": [6, 38], "comparison": [6, 30, 38, 51], "highlight": [6, 31], "java": [6, 28, 31, 32, 51, 56, 64, 67], "wasm": 6, "benchmark": 6, "improv": 6, "test": [7, 13, 64, 73], "jdk": 8, "intellij": 8, "gradl": [8, 27, 72], "maven": [8, 9, 27, 72], "option": [8, 39], "visual": 8, "studio": 8, "commun": 8, "2022": 8, "python": 8, "8": [8, 55, 56, 58, 59, 62], "histori": 9, "j2v8": [9, 80], "issu": 9, "latest": 9, "version": 9, "onli": 9, "autom": 9, "system": [9, 39], "deploi": [9, 37], "repositori": 9, "background": [10, 26], "what": [11, 38, 51, 66], "motiv": [11, 69], "can": [12, 18, 22, 23, 30, 37, 51], "nativ": [12, 30, 37, 40, 55], "imag": 12, "how": [13, 28, 31, 33, 39, 41, 48, 51, 66], "think": 13, "v8runtim": [13, 39, 80], "v8valueglobalobject": 13, "executor": 13, "execut": 13, "declar": [13, 55], "function": [13, 30, 33, 51, 55, 56], "properti": [13, 51, 55, 56], "learn": 13, "unit": 13, "where": [15, 16], "ar": [15, 16], "es6": [15, 80], "api": [15, 35], "exampl": [16, 40, 52], "inspector": 17, "disabl": [17, 51], "legaci": 18, "A": 21, "dynam": [21, 33, 40, 63], "link": 21, "dll": 21, "initi": [21, 25], "routin": 21, "fail": 21, "i18n": 22, "devtool": 23, "troubleshoot": [24, 46], "sigsegv": 25, "createv8runtim": 25, "aw": 25, "symptom": 25, "analysi": 25, "solut": [25, 26], "enforc": 25, "set": [25, 33, 51], "javet_disable_pku": 25, "crash": 26, "when": [26, 30], "being": 26, "close": [26, 66], "root": 26, "caus": 26, "event": [26, 55], "unhandledreject": 26, "noderuntim": 26, "await": [26, 39], "lowmemorynotif": [26, 39], "major": 27, "quick": 27, "start": 27, "depend": [27, 72], "kotlin": [27, 72], "dsl": [27, 72], "groovi": [27, 72], "hello": [27, 70], "sponsor": 27, "licens": 27, "blog": 27, "document": 27, "bridg": 28, "convert": [28, 29, 30, 31, 32, 33, 56, 68], "usag": [28, 31, 33, 39, 50, 69, 75], "boolean": [28, 51], "int": 28, "arrai": [28, 68], "integ": 28, "list": [28, 33, 44, 68], "long": [28, 39], "unmodifi": 28, "string": [28, 51], "cast": 28, "object": [28, 29, 30, 31, 33, 51, 63, 68], "javascript": [28, 31, 32, 51, 66, 67], "pojo": 29, "defin": [29, 51], "creat": [29, 41], "pojoconvert": 29, "readi": 29, "go": 29, "insid": 30, "bind": [30, 51], "via": [30, 41], "proxi": [30, 33, 56], "null": 30, "circular": 30, "structur": 30, "config": 30, "take": [30, 37], "effect": 30, "built": [30, 40], "ignor": 30, "regist": [31, 52], "enhanc": 31, "It": 31, "work": [31, 33, 41], "instanc": 33, "map": [33, 51, 68], "path": 33, "static": [33, 67], "stringbuild": [33, 63, 67], "pattern": [33, 67], "enum": [33, 67], "interfac": [33, 56, 63], "anonym": [33, 56], "class": [33, 67], "v8convert": 33, "v8properti": [33, 73], "name": 33, "v8function": [33, 73, 80], "javetproxyconvert": 33, "resourc": [36, 39, 42, 51], "manag": [36, 39, 42, 51], "load": [37, 40, 57], "unload": 37, "On": [37, 40], "demand": [37, 40], "locat": 37, "deploy": 37, "skip": 37, "alreadi": 37, "anoth": 37, "classload": [37, 56], "suppress": 37, "lib": 37, "listen": 37, "remov": 37, "jar": 37, "know": 38, "lock": 38, "mean": 38, "implicit": 38, "explicit": 38, "thread": [38, 42, 66], "coroutin": 38, "challeng": 39, "jvm": [39, 63], "gc": [39, 55], "c": 39, "runtim": 39, "recommend": 39, "automat": [39, 48, 51], "try": 39, "weak": 39, "escap": 39, "without": 39, "altern": 39, "arraybuff": 39, "passiv": 39, "aggress": 39, "manual": [39, 40, 48, 51], "idlenotificationdeadlin": 39, "deadlineinmilli": 39, "runfin": 39, "v8flag": 39, "statist": 39, "modular": 40, "gap": 40, "between": 40, "deal": 40, "elf": 40, "rebuild": 40, "pre": 40, "synthet": 40, "snapshot": 41, "benefit": 41, "limit": 41, "mksnapshot": 41, "best": 42, "practic": 42, "secur": 42, "tip": [43, 51], "todo": 44, "error": [45, 55], "code": [45, 51, 55], "backward": 45, "compat": [45, 72], "log": 47, "step": [47, 66], "implement": 47, "ijavetlogg": 47, "inject": [47, 67, 77], "logger": 47, "termin": 48, "about": [48, 51], "valu": [49, 51], "collect": 50, "v8valuearrai": 50, "v8valueset": 50, "v8valuemap": 50, "registr": 51, "convers": [51, 55, 80], "thi": 51, "pass": 51, "symbol": 51, "unregist": 51, "both": 51, "One": 51, "bindfunct": 51, "functionnam": 51, "javetcallbackcontext": 51, "kei": 51, "v8valu": 51, "codestr": 51, "mismatch": 51, "summari": [51, 63], "chang": 51, "user": 51, "fly": 51, "sourc": [51, 55], "call": 51, "invok": 51, "scope": [51, 56], "info": 51, "avoid": 51, "argument": 51, "handl": 51, "count": 51, "promis": [52, 56], "resolv": [52, 56], "lifecycl": 52, "callback": 52, "f": 52, "readfileasync": 52, "unhandl": 52, "reject": 52, "releas": [53, 54, 55, 56, 57, 58, 59, 60, 61, 62], "note": [53, 54, 55, 56, 57, 58, 59, 60, 61, 62], "0": [54, 55, 56, 57, 58, 59, 60, 61, 62], "7": [54, 55, 56, 57, 58, 59, 61], "x": [54, 55, 56, 57, 58, 59, 60, 61, 62], "locker": 54, "guard": 54, "bug": 54, "fix": 54, "birth": 54, "9": [54, 55, 56, 57, 58, 59, 62], "10": [55, 56, 59], "index": 55, "foreach": 55, "hotfix": 55, "6": [55, 56, 57, 58, 61], "loop": 55, "5": [55, 56, 57, 58, 61], "v9": [55, 56, 57, 58], "first": [55, 57], "time": [55, 57], "14": 56, "13": 56, "12": 56, "privat": 56, "11": 56, "polyfil": [56, 76], "empow": 56, "v2": 56, "v1": 56, "safe": 56, "core": 57, "abi": 57, "21": 57, "v16": 57, "v10": [58, 59], "v11": [59, 60, 61, 62], "v18": 59, "v12": 62, "access": 63, "whole": 63, "plai": 63, "cleanup": 63, "expos": 64, "jsonnod": 64, "approach": 64, "flavor": 64, "direct": 64, "exposur": 64, "wrap": 64, "conclus": 64, "advanc": 65, "interact": 66, "That": 66, "possibl": 66, "server": 66, "worker": 66, "main": 66, "If": 66, "hang": 66, "dure": 66, "interop": 67, "an": 67, "goal": 69, "print": 70, "basic": 71, "instal": 72, "sampl": 73, "co": 75, "exist": 75, "v8host": 75, "decim": 76, "spring": 77, "integr": 77, "configur": 77, "tutori": 78, "migrat": [79, 80], "guid": [79, 80], "registerjavamethod": 80, "v8locker": 80, "bless": 80}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"Build Javet": [[0, "build-javet"], [1, "build-javet"], [1, "id1"]], "Build Environment": [[0, "build-environment"], [2, "build-environment"]], "Linux Environment": [[0, "linux-environment"], [2, "linux-environment"]], "MacOS Environment": [[0, "macos-environment"]], "Windows Environment": [[0, "windows-environment"], [2, "windows-environment"]], "Android Environment": [[0, "android-environment"]], "Environment Variables": [[0, "environment-variables"]], "V8 Feature Flags": [[0, "v8-feature-flags"]], "Build Javet from Scratch": [[1, "build-javet-from-scratch"]], "Build V8": [[1, "build-v8"]], "Prepare V8": [[1, "prepare-v8"]], "Build V8 for Linux arm64": [[1, "build-v8-for-linux-arm64"]], "Build V8 for Linux x86_64": [[1, "build-v8-for-linux-x86-64"]], "Build V8 for Mac OS arm64": [[1, "build-v8-for-mac-os-arm64"]], "Build V8 for Mac OS x86_64": [[1, "build-v8-for-mac-os-x86-64"]], "Build V8 for Windows": [[1, "build-v8-for-windows"]], "Build V8 for Android": [[1, "build-v8-for-android"]], "Why Patching V8?": [[1, "why-patching-v8"]], "Build Node.js": [[1, "build-node-js"]], "Prepare Node.js": [[1, "prepare-node-js"]], "Build Node.js on Linux": [[1, "build-node-js-on-linux"]], "Why Patching Node.js?": [[1, "why-patching-node-js"]], "Build Node.js on Mac OS": [[1, "build-node-js-on-mac-os"]], "Build Node.js on Windows": [[1, "build-node-js-on-windows"]], "Build Javet JNI Library for Android": [[1, "build-javet-jni-library-for-android"]], "Build Javet for Linux, Mac OS and Windows": [[1, "build-javet-for-linux-mac-os-and-windows"]], "Build Javet for Android": [[1, "build-javet-for-android"]], "Build Javet with Docker": [[2, "build-javet-with-docker"]], "Docker Hub and Github": [[2, "docker-hub-and-github"]], "Build Javet for Linux on Linux or Windows": [[2, "build-javet-for-linux-on-linux-or-windows"]], "Express Build": [[2, "express-build"]], "Full Build - Multi-staged": [[2, "full-build-multi-staged"]], "Full Build - All-in-one": [[2, "full-build-all-in-one"]], "Build Javet for Windows on Windows": [[2, "build-javet-for-windows-on-windows"]], "Build Javet for Android on Linux or Windows": [[2, "build-javet-for-android-on-linux-or-windows"]], "Linux arm64 Docker Files Deprecated": [[2, "linux-arm64-docker-files-deprecated"]], "Debug with Chrome Developer Tools": [[3, "debug-with-chrome-developer-tools"]], "CDT Shell": [[3, "cdt-shell"]], "1. Run CDT Shell": [[3, "run-cdt-shell"]], "2. Run Script in CDT Shell": [[3, "run-script-in-cdt-shell"]], "3. Open CDT": [[3, "open-cdt"]], "4. Debug as Usual": [[3, "debug-as-usual"]], "Chrome Developer Tools Internals": [[3, "chrome-developer-tools-internals"]], "Handshake": [[3, "handshake"]], "Customization": [[3, "customization"]], "FAQs": [[3, "faqs"]], "Does it Support Node.js Mode?": [[3, "does-it-support-node-js-mode"]], "Is There a Live Demo?": [[3, "is-there-a-live-demo"]], "Javet Design": [[4, "javet-design"]], "Architecture": [[4, "architecture"]], "Primitive and Reference Types in Javet": [[4, "primitive-and-reference-types-in-javet"]], "Node.js Mode vs. V8 Mode": [[4, "node-js-mode-vs-v8-mode"]], "Module": [[4, "module"]], "require() vs. import()": [[4, "require-vs-import"]], "Module Virtualization": [[4, "module-virtualization"]], "Engine Pool": [[4, "engine-pool"]], "V8 Isolate and Context in Javet": [[4, "v8-isolate-and-context-in-javet"]], "Javet Engine Pool": [[4, "javet-engine-pool"], [69, "javet-engine-pool"]], "Interception": [[4, "interception"], [73, "interception"]], "Cross-platform": [[4, "cross-platform"]], "Multi-process Safety": [[4, "multi-process-safety"]], "Memory Leak Detection": [[4, "memory-leak-detection"]], "Development": [[5, "development"], [14, "development"]], "Javet Performance": [[6, "javet-performance"]], "Performance Comparisons of Node.js Mode and V8 Mode": [[6, "performance-comparisons-of-node-js-mode-and-v8-mode"]], "Highlights": [[6, "highlights"], [31, "highlights"]], "Java VS Wasm Benchmarks": [[6, "java-vs-wasm-benchmarks"]], "Javet Performance Improvements": [[6, "javet-performance-improvements"]], "Test Javet": [[7, "test-javet"]], "Development Tools": [[8, "development-tools"]], "JDK": [[8, "jdk"]], "IntelliJ": [[8, "intellij"]], "Gradle": [[8, "gradle"]], "Node.js": [[8, "node-js"], [42, "node-js"]], "Maven (Optional)": [[8, "maven-optional"]], "Visual Studio Community 2022 (Optional)": [[8, "visual-studio-community-2022-optional"]], "Python 3.8+ (Optional)": [[8, "python-3-8-optional"]], "History with J2V8": [[9, "history-with-j2v8"]], "J2V8 Issues": [[9, "j2v8-issues"]], "J2V8 Latest Version": [[9, "j2v8-latest-version"]], "Why Windows and Linux only?": [[9, "why-windows-and-linux-only"]], "Why not Automate the J2V8 Build System?": [[9, "why-not-automate-the-j2v8-build-system"]], "Why not Deploy J2V8 to Maven Repository?": [[9, "why-not-deploy-j2v8-to-maven-repository"]], "Background": [[10, "background"], [26, "background"]], "What is the Motivation?": [[11, "what-is-the-motivation"]], "Can Native Image be Supported?": [[12, "can-native-image-be-supported"]], "How to Think in Javet?": [[13, "how-to-think-in-javet"]], "V8Runtime and V8ValueGlobalObject": [[13, "v8runtime-and-v8valueglobalobject"]], "V8Runtime": [[13, "v8runtime"]], "V8ValueGlobalObject": [[13, "v8valueglobalobject"]], "Executor and Execute": [[13, "executor-and-execute"]], "Declarative Function and Property Interception": [[13, "declarative-function-and-property-interception"]], "Learn from Unit Test": [[13, "learn-from-unit-test"]], "Where are ES6 API in V8 Mode?": [[15, "where-are-es6-api-in-v8-mode"]], "Where are the Examples?": [[16, "where-are-the-examples"]], "Why is the Inspector Disabled in Node.js Mode?": [[17, "why-is-the-inspector-disabled-in-node-js-mode"]], "Can Javet Support Legacy Linux?": [[18, "can-javet-support-legacy-linux"]], "Environment": [[19, "environment"]], "FAQ": [[20, "faq"]], "A dynamic link library (DLL) initialization routine failed": [[21, "a-dynamic-link-library-dll-initialization-routine-failed"]], "Can i18n be Supported?": [[22, "can-i18n-be-supported"]], "Can I Debug Javet in Chrome DevTools?": [[23, "can-i-debug-javet-in-chrome-devtools"]], "Troubleshooting": [[24, "troubleshooting"], [46, "troubleshooting"]], "SIGSEGV at createV8Runtime() in V8 Mode on AWS": [[25, "sigsegv-at-createv8runtime-in-v8-mode-on-aws"]], "Symptoms": [[25, "symptoms"]], "Analysis": [[25, "analysis"]], "Solutions": [[25, "solutions"]], "Solution 1: Enforce the Initialization": [[25, "solution-1-enforce-the-initialization"]], "Solution 2: Set Environment Variable JAVET_DISABLE_PKU": [[25, "solution-2-set-environment-variable-javet-disable-pku"]], "Why Node.js Crashes When being Closed?": [[26, "why-node-js-crashes-when-being-closed"]], "Root Cause": [[26, "root-cause"]], "Solution": [[26, "solution"]], "Event unhandledRejection": [[26, "event-unhandledrejection"]], "NodeRuntime.await()": [[26, "noderuntime-await"]], "NodeRuntime.lowMemoryNotification()": [[26, "noderuntime-lowmemorynotification"]], "Javet": [[27, "javet"]], "Major Features": [[27, "major-features"]], "Quick Start": [[27, "quick-start"]], "Dependency": [[27, "dependency"], [72, "dependency"]], "Maven": [[27, "maven"], [72, "maven"]], "Gradle Kotlin DSL": [[27, "gradle-kotlin-dsl"], [72, "gradle-kotlin-dsl"]], "Gradle Groovy DSL": [[27, "gradle-groovy-dsl"], [72, "gradle-groovy-dsl"]], "Hello Javet": [[27, "hello-javet"], [70, "hello-javet"]], "Sponsors": [[27, "sponsors"]], "License": [[27, "license"]], "Blog": [[27, "blog"]], "Documents": [[27, "documents"]], "Bridge Converter": [[28, "bridge-converter"]], "Usage": [[28, "usage"], [31, "usage"], [33, "usage"], [50, "usage"], [69, "usage"], [75, "usage"]], "Preparation": [[28, "preparation"], [33, "preparation"], [67, "preparation"]], "Boolean": [[28, "boolean"]], "int": [[28, "int"]], "int Array": [[28, "int-array"]], "Integer List": [[28, "integer-list"]], "Long Unmodifiable List": [[28, "long-unmodifiable-list"]], "String Array": [[28, "string-array"]], "How to Cast Java Objects to JavaScript Objects?": [[28, "how-to-cast-java-objects-to-javascript-objects"]], "Custom Converter": [[29, "custom-converter"]], "Design a POJO Converter": [[29, "design-a-pojo-converter"]], "Define POJO Object": [[29, "define-pojo-object"]], "Create PojoConverter": [[29, "create-pojoconverter"]], "Ready! Go!": [[29, "ready-go"]], "Converters": [[30, "converters"]], "Comparisons": [[30, "comparisons"], [38, "comparisons"], [51, "comparisons"]], "Inside Converters": [[30, "inside-converters"]], "Binding via Native": [[30, "binding-via-native"]], "Binding via Proxy": [[30, "binding-via-proxy"]], "Null Safety": [[30, "null-safety"]], "Functions and Objects": [[30, "functions-and-objects"]], "Circular Structure": [[30, "circular-structure"]], "When does the Config Take Effect?": [[30, "when-does-the-config-take-effect"]], "Can Built-in Converter be Ignored?": [[30, "can-built-in-converter-be-ignored"]], "Object Converter": [[31, "object-converter"], [68, "object-converter"]], "From Java to JavaScript": [[31, "from-java-to-javascript"], [32, "from-java-to-javascript"]], "From JavaScript to Java": [[31, "from-javascript-to-java"], [32, "from-javascript-to-java"]], "Register Custom Objects": [[31, "register-custom-objects"]], "Enhance the Custom Object": [[31, "enhance-the-custom-object"]], "Register the Custom Object": [[31, "register-the-custom-object"]], "How does It Work?": [[31, "how-does-it-work"]], "Primitive Converter": [[32, "primitive-converter"]], "Proxy Converter": [[33, "proxy-converter"]], "Instance: File": [[33, "instance-file"]], "Instance: List": [[33, "instance-list"]], "Instance: Map": [[33, "instance-map"]], "Instance: Path": [[33, "instance-path"]], "Instance: Set": [[33, "instance-set"]], "Static: StringBuilder": [[33, "static-stringbuilder"]], "Static: Pattern": [[33, "static-pattern"]], "Static: Enum": [[33, "static-enum"]], "Static: Interface": [[33, "static-interface"]], "Dynamic: Anonymous Function": [[33, "dynamic-anonymous-function"]], "Dynamic: Anonymous Object for Interface": [[33, "dynamic-anonymous-object-for-interface"]], "Dynamic: Anonymous Object for Class": [[33, "dynamic-anonymous-object-for-class"]], "Features": [[33, "features"]], "@V8Convert::mode": [[33, "v8convert-mode"]], "@V8Property::name": [[33, "v8property-name"]], "@V8Function::name": [[33, "v8function-name"]], "How does JavetProxyConverter Work?": [[33, "how-does-javetproxyconverter-work"]], "How to Customize JavetProxyConverter?": [[33, "how-to-customize-javetproxyconverter"]], "Reference": [[34, "reference"]], "API Reference": [[35, "api-reference"]], "Resource Management": [[36, "resource-management"], [42, "resource-management"], [51, "resource-management"]], "Load and Unload": [[37, "load-and-unload"]], "Can Javet Native Library be Loaded or Unloaded On-demand?": [[37, "can-javet-native-library-be-loaded-or-unloaded-on-demand"]], "Unload": [[37, "unload"]], "Load": [[37, "load"]], "Can Javet Native Library be Deployed to a Custom Location?": [[37, "can-javet-native-library-be-deployed-to-a-custom-location"]], "Can Javet Native Library Deployment be Skipped?": [[37, "can-javet-native-library-deployment-be-skipped"]], "Can already loaded in another classloader be Suppressed?": [[37, "can-already-loaded-in-another-classloader-be-suppressed"]], "Can Javet Lib Loading Listener Take Environment Variables?": [[37, "can-javet-lib-loading-listener-take-environment-variables"]], "Can Javet Libraries be Removed from the Jar File?": [[37, "can-javet-libraries-be-removed-from-the-jar-file"]], "Know the Lock": [[38, "know-the-lock"]], "What does Lock Mean in Javet?": [[38, "what-does-lock-mean-in-javet"]], "1. Implicit Mode": [[38, "implicit-mode"]], "2. Explicit Mode": [[38, "explicit-mode"]], "Performance": [[38, "performance"]], "Thread-safety": [[38, "thread-safety"]], "Coroutines or Virtual Threads": [[38, "coroutines-or-virtual-threads"]], "Memory Management": [[39, "memory-management"]], "3 Challenges in Memory Management": [[39, "challenges-in-memory-management"]], "JVM GC": [[39, "jvm-gc"]], "C++ Runtime": [[39, "c-runtime"]], "V8 GC": [[39, "v8-gc"]], "Recommended Options": [[39, "recommended-options"]], "Automatic Management with try-with-resource": [[39, "automatic-management-with-try-with-resource"]], "Automatically Manage with Weak Reference": [[39, "automatically-manage-with-weak-reference"]], "How to Escape from try-with-resource?": [[39, "how-to-escape-from-try-with-resource"]], "Usage 1 without V8 Runtime": [[39, "usage-1-without-v8-runtime"]], "Usage 2 with V8 Runtime": [[39, "usage-2-with-v8-runtime"]], "Alternative Option: ArrayBuffer": [[39, "alternative-option-arraybuffer"]], "GC": [[39, "gc"]], "Automatic GC": [[39, "automatic-gc"]], "Passive GC": [[39, "passive-gc"]], "Aggressive GC": [[39, "aggressive-gc"]], "Manual GC": [[39, "manual-gc"]], "V8Runtime.await()": [[39, "v8runtime-await"]], "V8Runtime.idleNotificationDeadline(long deadlineInMillis)": [[39, "v8runtime-idlenotificationdeadline-long-deadlineinmillis"]], "V8Runtime.lowMemoryNotification()": [[39, "v8runtime-lowmemorynotification"]], "System.gc() and System.runFinalization()": [[39, "system-gc-and-system-runfinalization"]], "V8 Options and V8Flags": [[39, "v8-options-and-v8flags"]], "Statistics": [[39, "statistics"]], "Modularization": [[40, "modularization"]], "Node.js Mode": [[40, "node-js-mode"], [76, "node-js-mode"]], "Example": [[40, "example"]], "Gaps between Javet Node.js Mode and Native Node.js": [[40, "gaps-between-javet-node-js-mode-and-native-node-js"]], "Deal with Native Modules": [[40, "deal-with-native-modules"]], "Patch ELF Native Modules on Linux": [[40, "patch-elf-native-modules-on-linux"]], "Rebuild Native Modules on Windows": [[40, "rebuild-native-modules-on-windows"]], "Manual Patch Native Modules on Windows": [[40, "manual-patch-native-modules-on-windows"]], "Dynamically Import Built-in Modules": [[40, "dynamically-import-built-in-modules"]], "V8 Mode": [[40, "v8-mode"], [76, "v8-mode"]], "Pre-load": [[40, "pre-load"]], "On-demand": [[40, "on-demand"]], "Synthetic Module": [[40, "synthetic-module"]], "Internals": [[40, "internals"]], "Snapshot": [[41, "snapshot"]], "How Snapshot Works": [[41, "how-snapshot-works"]], "Benefits": [[41, "benefits"]], "Limitations": [[41, "limitations"]], "How to Create a Snapshot": [[41, "how-to-create-a-snapshot"]], "Create a Snapshot in Javet": [[41, "create-a-snapshot-in-javet"]], "Create a Snapshot via mksnapshot": [[41, "create-a-snapshot-via-mksnapshot"]], "Best Practices": [[42, "best-practices"]], "Thread, Engine and Pool": [[42, "thread-engine-and-pool"]], "Security": [[42, "security"]], "Tips": [[43, "tips"], [51, "tips"]], "TODO List": [[44, "todo-list"]], "Error Codes": [[45, "error-codes"]], "Why Error Codes?": [[45, "why-error-codes"]], "Backward Compatibility": [[45, "backward-compatibility"]], "Logging": [[47, "logging"]], "Step 1: Implement IJavetLogger": [[47, "step-1-implement-ijavetlogger"]], "Step 2: Inject the Logger": [[47, "step-2-inject-the-logger"]], "Termination": [[48, "termination"]], "Automatic Termination with Pool and Engine": [[48, "automatic-termination-with-pool-and-engine"]], "Manual Termination": [[48, "manual-termination"]], "How about Debug Mode?": [[48, "how-about-debug-mode"]], "V8 Values": [[49, "v8-values"]], "V8 Collection": [[50, "v8-collection"]], "Collection in V8": [[50, "collection-in-v8"]], "V8ValueArray": [[50, "v8valuearray"]], "V8ValueSet": [[50, "v8valueset"]], "V8ValueMap": [[50, "v8valuemap"]], "V8 Function": [[51, "v8-function"]], "Function Types": [[51, "function-types"]], "Function Interception": [[51, "function-interception"]], "Automatic Registration": [[51, "automatic-registration"]], "bind()": [[51, "bind"]], "How about Object Type Conversion?": [[51, "how-about-object-type-conversion"]], "Can this be Passed in?": [[51, "can-this-be-passed-in"]], "Can Symbol Properties be Intercepted?": [[51, "can-symbol-properties-be-intercepted"]], "How to Disable Properties or Functions?": [[51, "how-to-disable-properties-or-functions"]], "How to Unregister Properties or Functions?": [[51, "how-to-unregister-properties-or-functions"]], "Can Both JavaScript Function and Property Map to One Java Function?": [[51, "can-both-javascript-function-and-property-map-to-one-java-function"]], "Can 2 Java Functions Map to One JavaScript Function and Property?": [[51, "can-2-java-functions-map-to-one-javascript-function-and-property"]], "Manual Registration": [[51, "manual-registration"]], "boolean bindFunction(String functionName, JavetCallbackContext javetCallbackContext)": [[51, "boolean-bindfunction-string-functionname-javetcallbackcontext-javetcallbackcontext"]], "boolean set(String key, V8Value value)": [[51, "boolean-set-string-key-v8value-value"]], "boolean bindFunction(String functionName, String codeString)": [[51, "boolean-bindfunction-string-functionname-string-codestring"]], "Type Mismatch": [[51, "type-mismatch"]], "Summary": [[51, "summary"], [63, "summary"]], "Change a User Defined JavaScript Function on the Fly": [[51, "change-a-user-defined-javascript-function-on-the-fly"]], "Why is Changing a User Defined JavaScript Function Important?": [[51, "why-is-changing-a-user-defined-javascript-function-important"]], "How to Change a User Defined JavaScript Function on the Fly?": [[51, "how-to-change-a-user-defined-javascript-function-on-the-fly"]], "What is the Source Code of a Function in V8?": [[51, "what-is-the-source-code-of-a-function-in-v8"]], "Automatic Type Conversion": [[51, "automatic-type-conversion"]], "Call vs. Invoke": [[51, "call-vs-invoke"]], "Call": [[51, "call"]], "Invoke": [[51, "invoke"]], "How about Bind?": [[51, "how-about-bind"]], "Context and Scope Info": [[51, "context-and-scope-info"]], "How to Avoid Argument Type Mismatches?": [[51, "how-to-avoid-argument-type-mismatches"]], "How to Handle Argument Count Mismatches?": [[51, "how-to-handle-argument-count-mismatches"]], "V8 Promise": [[52, "v8-promise"]], "Promise and Resolver": [[52, "promise-and-resolver"]], "Lifecycle": [[52, "lifecycle"]], "Register a Callback": [[52, "register-a-callback"]], "Example fs.readFileAsync()": [[52, "example-fs-readfileasync"]], "Unhandled Rejection": [[52, "unhandled-rejection"]], "Release Notes": [[53, "release-notes"]], "Release Notes 0.7.x": [[54, "release-notes-0-7-x"]], "0.7.4 Live Debug": [[54, "live-debug"]], "0.7.3 Locker": [[54, "locker"]], "0.7.2 Engine Guard": [[54, "engine-guard"]], "0.7.1 Bug Fixes": [[54, "bug-fixes"]], "0.7.0 Birth with V8 v8.9": [[54, "birth-with-v8-v8-9"]], "Release Notes 0.8.x": [[55, "release-notes-0-8-x"]], "0.8.10 Index in forEach": [[55, "index-in-foreach"]], "0.8.9 Declarative Property Interception": [[55, "declarative-property-interception"]], "0.8.8 Hotfix the Source Code": [[55, "hotfix-the-source-code"]], "0.8.7 Native Modules for Node.js": [[55, "native-modules-for-node-js"]], "0.8.6 Event Loop for Node.js": [[55, "event-loop-for-node-js"]], "0.8.5 Error Codes": [[55, "error-codes"]], "0.8.4 V8 v9.0": [[55, "v8-v9-0"]], "0.8.3 GC": [[55, "gc"]], "0.8.2 Conversion for Primitive": [[55, "conversion-for-primitive"]], "0.8.1 Declarative Function Interception": [[55, "declarative-function-interception"]], "0.8.0 First Time with Node.js": [[55, "first-time-with-node-js"]], "Release Notes 0.9.x": [[56, "release-notes-0-9-x"]], "0.9.14 V8 Scope": [[56, "v8-scope"]], "0.9.13 V8 v9.4": [[56, "v8-v9-4"]], "0.9.12 Private Properties": [[56, "private-properties"]], "0.9.11 V8 v9.3": [[56, "v8-v9-3"]], "0.9.10 Polyfill Java Interfaces": [[56, "polyfill-java-interfaces"]], "0.9.9 Mac OS x86_64": [[56, "mac-os-x86-64"]], "0.9.8 Empower the Promise": [[56, "empower-the-promise"]], "0.9.7 Proxy Converter v2": [[56, "proxy-converter-v2"]], "0.9.6 Proxy Converter v1": [[56, "proxy-converter-v1"]], "0.9.5 V8 v9.2": [[56, "v8-v9-2"]], "0.9.4 Multi-process Safe": [[56, "multi-process-safe"]], "0.9.3 Module Resolver": [[56, "module-resolver"]], "0.9.2 Anonymous Functions in Converter": [[56, "anonymous-functions-in-converter"]], "0.9.1 V8 in Classloader": [[56, "v8-in-classloader"]], "0.9.0 V8 v9.1": [[56, "v8-v9-1"]], "Release Notes 1.0.x": [[57, "release-notes-1-0-x"]], "1.0.7 V8 v9.7": [[57, "v8-v9-7"]], "1.0.6 Mac OS (arm64)": [[57, "mac-os-arm64"]], "1.0.5 Javet Core": [[57, "javet-core"]], "1.0.4 V8 9.6": [[57, "v8-9-6"]], "1.0.3 Android ABI 21": [[57, "android-abi-21"]], "1.0.2 First Time with Android": [[57, "first-time-with-android"]], "1.0.1 Custom Library Loading": [[57, "custom-library-loading"]], "1.0.0 First Time with Node.js v16": [[57, "first-time-with-node-js-v16"]], "Release Notes 1.1.x": [[58, "release-notes-1-1-x"]], "1.1.7 V8 v10.5": [[58, "v8-v10-5"]], "1.1.6 V8 v10.4": [[58, "v8-v10-4"]], "1.1.5 V8 v10.3": [[58, "v8-v10-3"]], "1.1.4 V8 v10.2": [[58, "v8-v10-2"]], "1.1.3 V8 v10.1": [[58, "v8-v10-1"]], "1.1.2 V8 v10.0": [[58, "v8-v10-0"]], "1.1.1 V8 v9.9": [[58, "v8-v9-9"]], "1.1.0 V8 v9.8": [[58, "v8-v9-8"]], "Release Notes 2.0.x": [[59, "release-notes-2-0-x"]], "2.0.4 V8 v11.0": [[59, "v8-v11-0"]], "2.0.3 V8 v10.9": [[59, "v8-v10-9"]], "2.0.2 V8 v10.8": [[59, "v8-v10-8"]], "2.0.1 V8 v10.7": [[59, "v8-v10-7"]], "2.0.0 Node.js v18.10": [[59, "node-js-v18-10"]], "Release Notes 2.1.x": [[60, "release-notes-2-1-x"]], "2.1.2 V8 v11.3": [[60, "v8-v11-3"]], "2.1.1 V8 v11.2": [[60, "v8-v11-2"]], "2.1.0 V8 v11.1": [[60, "v8-v11-1"]], "Release Notes 2.2.x": [[61, "release-notes-2-2-x"]], "2.2.3 V8 v11.7": [[61, "v8-v11-7"]], "2.2.2 V8 v11.6": [[61, "v8-v11-6"]], "2.2.1 V8 v11.5": [[61, "v8-v11-5"]], "2.2.0 V8 v11.4": [[61, "v8-v11-4"]], "Release Notes 3.0.x": [[62, "release-notes-3-0-x"]], "3.0.3 V8 v12.1": [[62, "v8-v12-1"]], "3.0.2 V8 v12.0": [[62, "v8-v12-0"]], "3.0.1 V8 v11.9": [[62, "v8-v11-9"]], "3.0.0 V8 v11.8": [[62, "v8-v11-8"]], "Access the Whole JVM": [[63, "access-the-whole-jvm"]], "Play with StringBuilder": [[63, "play-with-stringbuilder"]], "Play with Dynamic Interface": [[63, "play-with-dynamic-interface"]], "Play with Dynamic Object": [[63, "play-with-dynamic-object"]], "Cleanup": [[63, "cleanup"]], "Expose JsonNode in V8": [[64, "expose-jsonnode-in-v8"]], "2 Approaches": [[64, "approaches"]], "Java Flavor (Direct Exposure)": [[64, "java-flavor-direct-exposure"]], "JS Flavor (Wrapped Exposure)": [[64, "js-flavor-wrapped-exposure"]], "Test": [[64, "test"], [73, "test"]], "Conclusion": [[64, "conclusion"]], "Advanced": [[65, "advanced"]], "Interact with Node.js": [[66, "interact-with-node-js"]], "Is That Possible?": [[66, "is-that-possible"]], "How?": [[66, "how"]], "Step 1: JavaScript Server": [[66, "step-1-javascript-server"]], "Step 2: Worker Thread for the JavaScript Server": [[66, "step-2-worker-thread-for-the-javascript-server"]], "Step 3: Main Thread for the Interaction": [[66, "step-3-main-thread-for-the-interaction"]], "What If Node.js Hangs during Close()?": [[66, "what-if-node-js-hangs-during-close"]], "Java and JavaScript Interop": [[67, "java-and-javascript-interop"]], "Inject a Static Class": [[67, "inject-a-static-class"]], "Inject an Enum": [[67, "inject-an-enum"]], "Inject a Pattern": [[67, "inject-a-pattern"]], "Inject a StringBuilder": [[67, "inject-a-stringbuilder"]], "Array": [[68, "array"]], "List": [[68, "list"]], "Map": [[68, "map"]], "Motivation": [[69, "motivation"]], "Goals": [[69, "goals"]], "Print Hello Javet in V8 Mode": [[70, "print-hello-javet-in-v8-mode"]], "Print 1 + 1 in Node.js Mode": [[70, "print-1-1-in-node-js-mode"]], "Basic": [[71, "basic"]], "Installation": [[72, "installation"]], "OS Compatibility": [[72, "os-compatibility"]], "Windows": [[72, "windows"]], "Linux": [[72, "linux"]], "Mac OS": [[72, "mac-os"]], "Android": [[72, "android"]], "Sample": [[73, "sample"]], "@V8Property and @V8Function": [[73, "v8property-and-v8function"]], "Javet Shell": [[74, "javet-shell"]], "Node.js Mode and V8 Mode": [[75, "node-js-mode-and-v8-mode"]], "Co-existence": [[75, "co-existence"]], "V8Host": [[75, "v8host"]], "Pool": [[75, "pool"]], "Polyfill": [[76, "polyfill"]], "decimal.js": [[76, "decimal-js"]], "Spring Integration": [[77, "spring-integration"]], "Configuration": [[77, "configuration"]], "Injection": [[77, "injection"]], "Tutorial": [[78, "tutorial"]], "Migration Guides": [[79, "migration-guides"], [80, "migration-guides"]], "Migrate from J2V8": [[80, "migrate-from-j2v8"]], "Why Migrate from J2V8 to Javet?": [[80, "why-migrate-from-j2v8-to-javet"]], "V8 \u27f6 V8Runtime": [[80, "v8-v8runtime"]], "Primitive Types": [[80, "primitive-types"]], "registerJavaMethod() \u27f6 @V8Function": [[80, "registerjavamethod-v8function"]], "V8Locker": [[80, "v8locker"]], "Type Conversion": [[80, "type-conversion"]], "Node.js and V8": [[80, "node-js-and-v8"]], "ES6 Module": [[80, "es6-module"]], "Blessing": [[80, "blessing"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["development/build", "development/build_javet_from_scratch", "development/build_javet_with_docker", "development/debug_with_chrome_developer_tools", "development/design", "development/index", "development/performance", "development/test", "development/tools", "faq/background/history_with_j2v8", "faq/background/index", "faq/background/what_is_the_motivation", "faq/development/can_native_image_be_supported", "faq/development/how_to_think_in_javet", "faq/development/index", "faq/development/where_are_es6_api_in_v8_mode", "faq/development/where_are_the_examples", "faq/development/why_is_the_inspector_disabled_in_node_js_mode", "faq/environment/can_javet_support_legacy_linux", "faq/environment/index", "faq/index", "faq/troubleshooting/a_dynamic_link_library_dll_initialization_routine_failed", "faq/troubleshooting/can_i18n_be_supported", "faq/troubleshooting/can_i_debug_javet_in_chrome_dev_tools", "faq/troubleshooting/index", "faq/troubleshooting/sigsegv_at_createv8runtime_in_v8_mode_on_aws", "faq/troubleshooting/why_node_js_crashes_when_being_closed", "index", "reference/converters/bridge_converter", "reference/converters/custom_converter", "reference/converters/index", "reference/converters/object_converter", "reference/converters/primitive_converter", "reference/converters/proxy_converter", "reference/converters/proxy_plugins", "reference/index", "reference/javadoc/index", "reference/resource_management/index", "reference/resource_management/load_and_unload", "reference/resource_management/lock", "reference/resource_management/memory_management", "reference/resource_management/modularization", "reference/resource_management/snapshot", "reference/tips/best_practices", "reference/tips/index", "reference/todo_list", "reference/troubleshooting/error_codes", "reference/troubleshooting/index", "reference/troubleshooting/logging", "reference/troubleshooting/termination", "reference/v8_values/index", "reference/v8_values/v8_collection", "reference/v8_values/v8_function", "reference/v8_values/v8_promise", "release_notes/index", "release_notes/release_notes_0_7", "release_notes/release_notes_0_8", "release_notes/release_notes_0_9", "release_notes/release_notes_1_0", "release_notes/release_notes_1_1", "release_notes/release_notes_2_0", "release_notes/release_notes_2_1", "release_notes/release_notes_2_2", "release_notes/release_notes_3_0", "tutorial/advanced/access_the_whole_jvm", "tutorial/advanced/expose_json_node_in_v8", "tutorial/advanced/index", "tutorial/advanced/interact_with_node_js", "tutorial/advanced/java_and_javascript_interop", "tutorial/advanced/object_converter", "tutorial/basic/engine_pool", "tutorial/basic/hello_javet", "tutorial/basic/index", "tutorial/basic/installation", "tutorial/basic/interception", "tutorial/basic/javet_shell", "tutorial/basic/node_js_mode_and_v8_mode", "tutorial/basic/polyfill", "tutorial/basic/spring_integration", "tutorial/index", "tutorial/migration_guides/index", "tutorial/migration_guides/migrate_from_j2v8"], "filenames": ["development/build.rst", "development/build_javet_from_scratch.rst", "development/build_javet_with_docker.rst", "development/debug_with_chrome_developer_tools.rst", "development/design.rst", "development/index.rst", "development/performance.rst", "development/test.rst", "development/tools.rst", "faq/background/history_with_j2v8.rst", "faq/background/index.rst", "faq/background/what_is_the_motivation.rst", "faq/development/can_native_image_be_supported.rst", "faq/development/how_to_think_in_javet.rst", "faq/development/index.rst", "faq/development/where_are_es6_api_in_v8_mode.rst", "faq/development/where_are_the_examples.rst", "faq/development/why_is_the_inspector_disabled_in_node_js_mode.rst", "faq/environment/can_javet_support_legacy_linux.rst", "faq/environment/index.rst", "faq/index.rst", "faq/troubleshooting/a_dynamic_link_library_dll_initialization_routine_failed.rst", "faq/troubleshooting/can_i18n_be_supported.rst", "faq/troubleshooting/can_i_debug_javet_in_chrome_dev_tools.rst", "faq/troubleshooting/index.rst", "faq/troubleshooting/sigsegv_at_createv8runtime_in_v8_mode_on_aws.rst", "faq/troubleshooting/why_node_js_crashes_when_being_closed.rst", "index.rst", "reference/converters/bridge_converter.rst", "reference/converters/custom_converter.rst", "reference/converters/index.rst", "reference/converters/object_converter.rst", "reference/converters/primitive_converter.rst", "reference/converters/proxy_converter.rst", "reference/converters/proxy_plugins.rst", "reference/index.rst", "reference/javadoc/index.rst", "reference/resource_management/index.rst", "reference/resource_management/load_and_unload.rst", "reference/resource_management/lock.rst", "reference/resource_management/memory_management.rst", "reference/resource_management/modularization.rst", "reference/resource_management/snapshot.rst", "reference/tips/best_practices.rst", "reference/tips/index.rst", "reference/todo_list.rst", "reference/troubleshooting/error_codes.rst", "reference/troubleshooting/index.rst", "reference/troubleshooting/logging.rst", "reference/troubleshooting/termination.rst", "reference/v8_values/index.rst", "reference/v8_values/v8_collection.rst", "reference/v8_values/v8_function.rst", "reference/v8_values/v8_promise.rst", "release_notes/index.rst", "release_notes/release_notes_0_7.rst", "release_notes/release_notes_0_8.rst", "release_notes/release_notes_0_9.rst", "release_notes/release_notes_1_0.rst", "release_notes/release_notes_1_1.rst", "release_notes/release_notes_2_0.rst", "release_notes/release_notes_2_1.rst", "release_notes/release_notes_2_2.rst", "release_notes/release_notes_3_0.rst", "tutorial/advanced/access_the_whole_jvm.rst", "tutorial/advanced/expose_json_node_in_v8.rst", "tutorial/advanced/index.rst", "tutorial/advanced/interact_with_node_js.rst", "tutorial/advanced/java_and_javascript_interop.rst", "tutorial/advanced/object_converter.rst", "tutorial/basic/engine_pool.rst", "tutorial/basic/hello_javet.rst", "tutorial/basic/index.rst", "tutorial/basic/installation.rst", "tutorial/basic/interception.rst", "tutorial/basic/javet_shell.rst", "tutorial/basic/node_js_mode_and_v8_mode.rst", "tutorial/basic/polyfill.rst", "tutorial/basic/spring_integration.rst", "tutorial/index.rst", "tutorial/migration_guides/index.rst", "tutorial/migration_guides/migrate_from_j2v8.rst"], "titles": ["Build Javet", "Build Javet from Scratch", "Build Javet with Docker", "Debug with Chrome Developer Tools", "Javet Design", "Development", "Javet Performance", "Test Javet", "Development Tools", "History with J2V8", "Background", "What is the Motivation?", "Can Native Image be Supported?", "How to Think in Javet?", "Development", "Where are ES6 API in V8 Mode?", "Where are the Examples?", "Why is the Inspector Disabled in Node.js Mode?", "Can Javet Support Legacy Linux?", "Environment", "FAQ", "A dynamic link library (DLL) initialization routine failed", "Can i18n be Supported?", "Can I Debug Javet in Chrome DevTools?", "Troubleshooting", "SIGSEGV at createV8Runtime() in V8 Mode on AWS", "Why Node.js Crashes When being Closed?", "Javet", "Bridge Converter", "Custom Converter", "Converters", "Object Converter", "Primitive Converter", "Proxy Converter", "Proxy Plugins", "Reference", "API Reference", "Resource Management", "Load and Unload", "Know the Lock", "Memory Management", "Modularization", "Snapshot", "Best Practices", "Tips", "TODO List", "Error Codes", "Troubleshooting", "Logging", "Termination", "V8 Values", "V8 Collection", "V8 Function", "V8 Promise", "Release Notes", "Release Notes 0.7.x", "Release Notes 0.8.x", "Release Notes 0.9.x", "Release Notes 1.0.x", "Release Notes 1.1.x", "Release Notes 2.0.x", "Release Notes 2.1.x", "Release Notes 2.2.x", "Release Notes 3.0.x", "Access the Whole JVM", "Expose JsonNode in V8", "Advanced", "Interact with Node.js", "Java and JavaScript Interop", "Object Converter", "Javet Engine Pool", "Hello Javet", "Basic", "Installation", "Interception", "Javet Shell", "Node.js Mode and V8 Mode", "Polyfill", "Spring Integration", "Tutorial", "Migration Guides", "Migrate from J2V8"], "terms": {"It": [0, 2, 4, 6, 9, 13, 17, 22, 27, 29, 30, 33, 34, 39, 40, 41, 42, 43, 52, 70, 75, 76, 81], "": [0, 2, 4, 6, 9, 11, 25, 26, 29, 33, 34, 39, 40, 41, 42, 43, 46, 52, 53, 64, 65, 67, 69, 76, 81], "quit": [0, 4, 6, 11, 13, 25, 30, 33, 40, 48, 49, 52, 65, 67, 70, 81], "hard": [0, 9, 53, 81], "develop": [0, 17, 20, 23, 27, 42, 46, 53, 55, 65, 81], "successfulli": [0, 2, 3, 25], "variou": [0, 62, 81], "reason": [0, 4, 9, 22, 26, 46, 53, 67, 81], "node": [0, 2, 5, 7, 9, 14, 15, 20, 21, 22, 24, 27, 38, 39, 40, 42, 45, 46, 52, 53, 54, 57, 59, 61, 62, 63, 64, 65, 66, 70, 72, 73, 75, 78, 79], "j": [0, 2, 5, 7, 9, 14, 15, 20, 21, 22, 24, 27, 34, 38, 39, 40, 42, 45, 46, 52, 53, 54, 55, 57, 59, 61, 62, 63, 64, 66, 70, 72, 73, 79], "need": [0, 3, 6, 9, 29, 30, 31, 33, 39, 40, 41, 52, 53, 65, 68, 73, 81], "built": [0, 2, 3, 6, 7, 28, 31, 40, 42, 46, 49, 52, 53, 56, 57, 61, 64, 65, 81], "static": [0, 1, 17, 25, 29, 42, 52, 57, 59, 67], "librari": [0, 2, 3, 4, 7, 13, 20, 22, 24, 41, 46, 48, 52, 57, 64], "monolith": 0, "everi": [0, 4, 13, 30, 39, 40, 52], "o": [0, 2, 4, 27, 39, 42, 46, 52, 65, 81], "platform": [0, 5, 42], "ha": [0, 2, 4, 6, 8, 9, 13, 17, 29, 31, 33, 38, 40, 41, 48, 51, 52, 53, 56, 65, 81], "its": [0, 4, 9, 33, 34, 39, 40, 41, 52, 53], "own": [0, 4, 9, 29, 31, 33, 34, 38, 40, 41, 52, 53], "pitfal": 0, "which": [0, 3, 4, 6, 7, 9, 13, 16, 18, 26, 27, 30, 31, 33, 38, 40, 41, 42, 49, 52, 64, 65, 68, 74, 76, 77, 81], "usual": [0, 29, 33, 41, 49, 52, 53, 64, 67], "make": [0, 1, 2, 17, 30, 31, 40, 41, 42, 53, 67, 77, 81], "frustrat": [0, 9], "even": [0, 9, 81], "desper": 0, "here": [0, 3, 4, 6, 9, 11, 17, 29, 33, 38, 40, 41, 52, 53, 67, 68, 69], "ar": [0, 1, 2, 3, 4, 6, 8, 9, 13, 14, 17, 18, 20, 26, 27, 28, 29, 30, 31, 32, 33, 34, 38, 39, 40, 41, 42, 43, 46, 49, 52, 53, 55, 56, 57, 64, 65, 67, 68, 69, 73, 74, 76, 81], "3": [0, 1, 5, 6, 9, 17, 18, 26, 27, 28, 33, 34, 38, 41, 42, 51, 52, 54, 64, 71, 73, 74, 75], "wai": [0, 4, 13, 26, 27, 28, 29, 33, 34, 38, 40, 41, 42, 43, 49, 52, 53, 57, 65, 67, 70, 74, 78], "docker": [0, 3, 5, 9], "from": [0, 2, 4, 5, 6, 9, 11, 12, 16, 17, 18, 25, 26, 30, 33, 34, 39, 41, 42, 43, 46, 49, 52, 53, 56, 57, 58, 59, 63, 64, 65, 67, 68, 70, 71, 74, 75, 79, 80], "scratch": [0, 5, 11, 34, 42], "all": [0, 1, 3, 4, 9, 12, 26, 28, 29, 31, 33, 34, 38, 40, 41, 42, 52, 56, 58, 64, 65, 67, 69, 81], "them": [0, 3, 33, 40, 41, 52, 65], "share": [0, 1, 4, 39, 41, 52, 53, 67, 81], "same": [0, 4, 17, 39, 40, 41, 43, 52, 53, 63, 65, 81], "next": [0, 30, 52], "section": [0, 41, 42, 52], "ubuntu": [0, 2, 18, 41, 56, 59, 63, 73], "20": [0, 2, 26, 56, 58, 59, 60, 61, 62, 63, 73], "04": [0, 2, 18, 55, 56, 59, 61, 63, 73], "cmake": [0, 1, 9], "25": [0, 58, 60, 63, 73], "1": [0, 4, 6, 9, 13, 18, 27, 28, 29, 31, 33, 34, 38, 41, 42, 43, 49, 51, 52, 54, 64, 65, 68, 69, 73, 74, 75, 76, 77, 81], "jdk": [0, 5, 29, 48, 65], "8": [0, 3, 5, 6, 9, 18, 29, 40, 54, 58, 61, 64, 65, 67, 73], "gradl": [0, 1, 2, 5, 9, 33], "2": [0, 6, 8, 9, 13, 18, 27, 28, 31, 33, 34, 38, 41, 42, 43, 49, 51, 54, 64, 68, 71, 73, 74, 75, 76, 77, 81], "gcc": [0, 18, 56, 63], "11": [0, 27, 29, 58, 59, 60, 63], "python": [0, 1, 5], "9": [0, 9, 18, 54, 64, 67], "catalina": [0, 73], "latest": [0, 2, 12, 76], "brew": 0, "xcode": 0, "4": [0, 6, 9, 27, 33, 34, 38, 40, 41, 51, 52, 54, 64, 67, 73, 74, 75], "16": [0, 6, 18, 27, 40, 56, 57, 59, 60, 61, 62, 63, 73], "10": [0, 2, 6, 33, 40, 49, 58, 63, 65, 73], "visual": [0, 5, 60, 61], "studio": [0, 5, 60, 61], "2022": [0, 5, 59, 60, 61], "commun": [0, 3, 5, 9, 17, 27], "24": [0, 56, 61, 63, 73], "come": [0, 4, 6, 39, 41], "sdk": [0, 48, 78], "windbg": 0, "wsl2": [0, 2], "option": [0, 5, 17, 32, 41, 42, 43, 52, 57, 59, 63, 64, 65, 74, 76], "ndk": [0, 59], "r25b": 0, "30": [0, 60], "javet_hom": [0, 1], "i": [0, 1, 2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 38, 39, 40, 41, 42, 43, 46, 48, 49, 51, 53, 56, 57, 64, 65, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 81], "home": 0, "directori": [0, 4, 41, 77], "node_hom": [0, 1], "v8_home": [0, 1], "depot_tools_hom": [0, 1], "googl": [0, 3], "depot": 0, "tool": [0, 1, 2, 5, 17, 18, 23, 27, 42, 55], "android_ndk_hom": [0, 1], "android_sdk_hom": 0, "descript": [0, 33, 40], "custom": [0, 4, 5, 30, 41, 42, 43, 52, 56, 57, 59], "libcxx": 0, "off": [0, 1, 3, 4, 34, 40], "The": [0, 1, 2, 3, 4, 6, 7, 9, 13, 16, 17, 21, 25, 26, 28, 29, 30, 33, 34, 38, 39, 40, 41, 42, 46, 49, 52, 53, 64, 65, 67, 68, 73, 74, 75, 76, 81], "offici": [0, 1, 9, 12, 16, 18, 27, 41], "releas": [0, 1, 4, 6, 9, 27, 40, 46, 81], "doesn": [0, 3, 4, 9, 31, 33, 38, 39, 40, 41, 46, 48, 49, 52, 78, 81], "t": [0, 3, 4, 9, 17, 25, 26, 27, 29, 30, 31, 33, 38, 39, 40, 41, 42, 46, 48, 49, 52, 75, 76, 78, 81], "support": [0, 1, 2, 4, 8, 9, 14, 17, 19, 20, 24, 27, 31, 32, 33, 34, 38, 40, 41, 42, 46, 49, 51, 52, 56, 57, 58, 59, 60, 62, 63, 73, 76, 81], "debug": [0, 4, 5, 17, 20, 24, 27, 48, 52], "extern": [0, 6, 40], "startup": [0, 42], "data": [0, 4, 30, 40, 41, 42, 52, 55, 60, 64], "i18n": [0, 1, 20, 24, 46, 59], "pleas": [0, 1, 2, 3, 4, 6, 11, 17, 18, 22, 23, 27, 30, 33, 38, 39, 40, 41, 43, 49, 52, 53, 54, 64, 65, 68, 69, 70, 71, 73, 74, 75, 77, 81], "contact": [0, 1, 9, 17, 18, 22, 54, 73, 81], "maintain": [0, 17, 18, 22, 54, 73, 81], "privat": [0, 17, 18, 22, 29, 31, 33, 52, 65, 73, 74], "thi": [0, 3, 4, 9, 11, 13, 18, 21, 25, 26, 27, 29, 30, 31, 33, 38, 39, 40, 41, 42, 53, 59, 65, 67, 68, 74, 76, 81], "pointer": [0, 40, 52], "compress": 0, "sandbox": 0, "snapshot": [0, 18, 37, 46, 60], "follow": [1, 2, 3, 4, 12, 16, 18, 22, 25, 26, 27, 29, 31, 34, 40, 41, 42, 43, 46, 48, 51, 52, 53, 64, 65, 67, 74, 76], "guid": [1, 27, 79], "If": [1, 2, 13, 26, 27, 30, 31, 32, 33, 40, 41, 42, 43, 49, 52, 73, 74, 75, 81], "you": [1, 2, 3, 8, 9, 13, 16, 23, 26, 27, 29, 33, 39, 40, 42, 48, 52, 53, 54, 64, 73, 77, 78, 81], "face": [1, 4], "ani": [1, 9, 30, 31, 32, 33, 41, 42, 46, 48, 49, 52, 81], "issu": [1, 3, 4, 11, 25, 26, 39, 40, 41, 43, 56, 57, 58, 61, 63], "mai": [1, 2, 3, 4, 6, 9, 13, 16, 25, 26, 27, 28, 30, 33, 38, 39, 40, 41, 42, 43, 48, 49, 52, 78], "sjtucaocao": [1, 2, 27], "clone": [1, 2, 60], "sourc": [1, 3, 17, 25, 30, 34, 39, 41, 46, 49, 64, 65, 68, 69, 70, 71, 74, 75, 77, 81], "code": [1, 3, 4, 6, 9, 13, 17, 25, 29, 30, 31, 34, 39, 40, 41, 42, 43, 47, 49, 53, 57, 58, 62, 64, 65, 68, 69, 70, 71, 74, 75, 77, 81], "checkout": 1, "proper": 1, "version": [1, 3, 4, 8, 11, 27, 33, 41, 42, 54, 73, 76], "also": [1, 2, 4, 6, 9, 11, 13, 30, 32, 33, 38, 39, 40, 41, 48, 52, 53, 67, 81], "sure": [1, 2, 9, 17, 30, 40, 41, 67, 77], "arg": [1, 25, 29, 52, 67], "gn": 1, "file": [1, 3, 4, 6, 9, 22, 40, 41, 42, 53, 64, 67, 77], "look": [1, 4, 9, 11, 41, 57], "like": [1, 3, 6, 9, 11, 13, 27, 33, 41, 42, 43, 46, 52, 59, 75], "is_debug": 1, "fals": [1, 17, 28, 30, 33, 38, 40, 41, 52, 64, 67, 68], "target_cpu": 1, "v8_monolith": 1, "true": [1, 11, 17, 28, 30, 33, 38, 40, 41, 42, 49, 52, 64, 65, 67, 68, 69, 73, 75], "v8_use_external_startup_data": 1, "is_component_build": 1, "v8_enable_i18n_support": 1, "v8_enable_pointer_compress": 1, "v8_static_librari": 1, "symbol_level": 1, "0": [1, 3, 9, 18, 25, 27, 28, 29, 31, 33, 34, 40, 41, 42, 43, 49, 51, 52, 54, 64, 65, 67, 69, 73, 74, 77, 81], "use_custom_libcxx": 1, "v8_enable_sandbox": 1, "x64": [1, 41], "To": [1, 3, 9, 22, 30, 38, 45, 68], "enabl": [1, 2, 3, 6, 13, 17, 22, 33, 40, 42, 52, 53, 56, 57, 64, 68], "set": [1, 3, 4, 7, 9, 13, 28, 29, 30, 31, 34, 38, 40, 41, 42, 48, 51, 53, 56, 62, 64, 65, 67, 68, 69, 74], "export": [1, 25, 41], "path": [1, 18, 38, 41, 46, 62, 67], "cd": [1, 2, 41], "ninja": 1, "c": [1, 33, 41, 52, 59, 60, 61, 65, 69], "out": [1, 25, 27, 40, 41, 46, 49, 64, 65, 67, 68, 69, 71, 74, 75, 81], "python3": [1, 9], "script": [1, 4, 9, 13, 27, 41, 43, 49, 52, 56, 60, 70, 75, 77], "patch_v8_build": 1, "py": 1, "p": [1, 33, 34], "requir": [1, 6, 8, 13, 38, 41, 43, 49, 52, 53, 67], "depot_tools_win_toolchain": 1, "gen": 1, "id": [1, 3, 4, 46, 52, 73], "v": [1, 5, 9, 27, 41], "solut": [1, 11, 31, 52, 64], "dev": [1, 6], "v8gen": 1, "arm": [1, 27, 58, 73], "target_o": 1, "v8_target_cpu": 1, "ia32": 1, "x86": [1, 27, 57, 58, 73], "A": [1, 4, 20, 24, 25, 29, 41, 42, 52], "few": [1, 2, 3, 8, 9, 11, 13, 25, 29, 30, 33, 40, 52, 55, 56, 63, 64, 68, 69, 75], "certain": [1, 3, 4, 13, 42, 52, 53, 57], "warn": [1, 48, 56], "error": [1, 9, 38, 41, 47, 48, 52, 53, 57, 58, 59, 62], "so": [1, 2, 4, 6, 7, 9, 13, 15, 18, 25, 26, 28, 29, 30, 31, 33, 38, 39, 40, 41, 42, 43, 48, 52, 53, 60, 65, 67, 69, 73, 77, 78, 81], "msvc": [1, 41], "stop": [1, 9, 61], "compil": [1, 4, 6, 33, 41, 42, 46, 52, 63, 64, 68, 81], "turn": [1, 3, 4, 34, 40, 56, 63], "those": [1, 3, 4, 13, 26, 40, 41, 52, 64], "lt": 1, "patch_node_build": 1, "configur": 1, "without": [1, 2, 3, 4, 26, 31, 33, 38, 39, 42, 52, 58, 62, 64, 65, 81], "intl": 1, "j4": 1, "first": [1, 3, 38, 40, 41, 52, 55, 81], "thin": 1, "disabl": [1, 3, 13, 14, 20, 25, 33, 40, 42, 43, 46, 49, 53, 60], "second": [1, 3, 16, 22, 41, 42, 49, 52], "mani": [1, 9, 11, 40, 42, 52, 81], "posit": [1, 6, 52], "independ": [1, 6], "link": [1, 20, 24, 40, 41], "phase": 1, "broken": [1, 9, 25, 40, 52], "fpic": 1, "usr": [1, 18], "bin": [1, 18], "ld": 1, "libnod": 1, "node_bind": 1, "reloc": 1, "r_x86_64_tpoff32": 1, "against": [1, 52], "_zn4nodel23thread_local_modpending": 1, "can": [1, 2, 3, 4, 6, 13, 14, 19, 20, 24, 26, 31, 33, 34, 40, 41, 42, 43, 53, 64, 67, 68, 76, 77, 78, 81], "us": [1, 3, 4, 6, 8, 11, 17, 25, 26, 30, 32, 38, 40, 41, 42, 43, 48, 52, 64, 70, 81], "when": [1, 4, 6, 9, 20, 21, 24, 33, 40, 41, 42, 43, 49, 52, 53, 59, 61, 81], "object": [1, 4, 13, 26, 34, 40, 42, 43, 51, 56, 57, 58, 59, 63, 65, 66, 68, 70, 74, 79, 81], "recompil": 1, "vcbuild": 1, "bat": 1, "vs2022": 1, "onc": [1, 29, 30, 34, 40, 41, 42, 46, 64, 67], "readi": 1, "navig": [1, 41], "cpp": [1, 42], "access": [1, 13, 33, 38, 40, 46, 52, 66, 79], "execut": [1, 3, 4, 6, 12, 25, 33, 41, 42, 43, 46, 49, 51, 52, 53, 64, 65, 70, 71, 75], "correspond": [1, 2, 4, 26, 34, 40, 41, 43, 52, 64], "command": [1, 42, 75], "sh": [1, 41], "dnode_dir": 1, "dv8_dir": 1, "maco": [1, 9, 27, 38, 73], "cmd": [1, 41], "after": [1, 3, 9, 31, 33, 38, 41, 42, 43, 49, 52, 53, 65, 81], "while": [1, 2, 33, 49, 67, 75], "place": [1, 4, 9, 26, 30, 40, 81], "folder": [1, 43, 67], "src": [1, 42], "main": [1, 25, 29, 33, 68], "resourc": [1, 4, 13, 16, 27, 30, 35, 39, 41, 46, 49, 53, 64, 65, 71, 74, 75, 78], "libjavet": [1, 38, 41], "dylib": 1, "dll": [1, 20, 24, 41], "arch": [1, 27, 42, 58, 73], "dcmake_android_ndk": 1, "dcmake_android_arch": 1, "jnilib": 1, "armeabi": 1, "v7a": 1, "v8a": 1, "mode": [1, 5, 7, 14, 18, 20, 21, 22, 24, 26, 27, 38, 40, 42, 43, 52, 53, 56, 57, 59, 62, 64, 70, 72, 73, 79, 81], "append": [1, 33, 64, 68], "denable_i18n": 1, "test": [1, 2, 4, 5, 6, 9, 16, 17, 18, 27, 33, 39, 41, 42, 52, 53, 55, 64, 67, 73, 77], "jar": [1, 3, 4, 9], "lib": [1, 41, 58], "aar": 1, "output": [1, 29, 52, 64, 65, 67, 68, 69], "As": [2, 3, 4, 13, 25, 28, 31, 33, 38, 40, 48, 52, 64, 78], "regard": [2, 3], "mac": [2, 9, 27, 81], "contributor": 2, "welcom": [2, 75], "interest": [2, 9], "Or": 2, "have": [2, 9, 17, 25, 27, 29, 31, 33, 34, 40, 41, 42, 52, 53, 77, 81], "wait": [2, 3, 58, 67], "long": [2, 31, 32, 33, 34, 39, 52, 65], "git": 2, "network": 2, "connect": [2, 3, 4, 70], "up": [2, 3, 4, 6, 13, 33, 39, 40, 41, 42, 57, 58, 64, 67], "run": [2, 4, 6, 29, 33, 39, 40, 41, 49, 77], "repositori": [2, 18], "imag": [2, 3, 9, 14, 20], "avail": [2, 3, 4, 21, 34, 38, 42, 46, 52, 64, 76], "http": [2, 3, 4, 6, 27, 67], "com": [2, 6, 25, 27, 40, 41, 48, 73], "r": [2, 18, 68], "caoccao": [2, 6, 25, 27, 40, 41, 48, 73], "f": [2, 4, 41], "x86_64": [2, 25, 27, 41, 58, 73], "build_artifact": 2, "dockerfil": [2, 57, 61], "pull": 2, "5gb": 2, "actual": [2, 3, 4, 6, 9, 13, 30, 39, 40, 41, 46, 52, 65, 67], "take": [2, 4, 6, 9, 11, 26, 32, 33, 40, 41, 42, 52, 56, 58, 64, 65, 67, 70, 75, 81], "minut": [2, 4, 30], "includ": [2, 9, 28, 33, 38, 42, 52, 81], "depend": [2, 4, 6, 9, 33, 41, 42, 48, 52, 78], "maven": [2, 5, 33], "central": [2, 8], "instruct": [2, 40], "insid": [2, 3, 4, 25, 33, 40, 53], "perform": [2, 3, 4, 5, 9, 25, 26, 27, 28, 30, 31, 38, 40, 41, 43, 52, 55, 58, 62, 63, 65, 67, 70, 74, 81], "base_jvm": 2, "base": [2, 6, 7, 25, 33, 40, 52, 57, 59, 60, 65, 81], "jvm": [2, 4, 22, 27, 30, 33, 38, 39, 55, 66, 67, 69, 70, 76, 79, 81], "base_nod": 2, "base_v8": 2, "v8": [2, 3, 5, 7, 9, 11, 13, 14, 17, 20, 22, 24, 26, 27, 30, 31, 33, 35, 38, 39, 42, 43, 45, 46, 49, 54, 64, 66, 67, 68, 69, 70, 72, 73, 74, 75, 78, 79], "base_gradl": 2, "final": [2, 25, 29, 30, 31, 33, 40, 41, 46, 49, 52, 53, 64, 65], "artifact": 2, "base_all_in_on": 2, "build_all_in_on": 2, "updat": [2, 18, 38, 42, 52, 56, 57, 58, 59, 61], "daemon": [2, 40, 49], "json": [2, 3, 28, 33, 34, 41, 65, 69], "storag": [2, 6, 25], "opt": 2, "dm": 2, "bases": 2, "120gb": 2, "size": [2, 4, 6, 22, 28, 31, 33, 34, 38, 40, 46], "restart": [2, 81], "m": [2, 6, 65], "4g": 2, "roughli": 2, "5": [2, 3, 25, 26, 33, 40, 41, 42, 54, 64, 67, 73, 74, 75], "hour": [2, 9], "internet": 2, "stabl": 2, "dai": [2, 43], "just": [2, 3, 6, 9, 12, 13, 29, 31, 38, 39, 40, 41, 52, 64, 68, 81], "fail": [2, 20, 24, 41, 46, 49, 52, 59], "forev": [2, 40], "larg": [2, 17], "60": 2, "gb": 2, "effici": [2, 16, 57], "push": [2, 33, 34, 51, 52, 53, 62], "Of": [2, 33, 40, 41, 52, 64, 81], "cours": [2, 33, 40, 41, 52, 64, 81], "wise": [2, 18, 52, 65, 73], "workflow": 2, "11gb": 2, "process": [2, 3, 26, 29, 53], "been": [2, 8, 9, 26, 38, 52, 81], "significantli": [2, 42, 46], "chang": [2, 17, 25, 30, 31, 39, 41, 46, 57, 58, 62, 63, 68, 74], "sinc": [2, 9, 73], "v12": [2, 27], "That": [2, 4, 6, 9, 25, 26, 30, 38, 40, 41, 48, 49, 52, 64, 81], "result": [2, 3, 4, 6, 30, 39, 43, 53, 71, 75], "devtool": [3, 20, 24, 27], "aka": 3, "web": [3, 40, 43], "directli": [3, 33, 38, 40, 52, 65, 68, 81], "browser": [3, 43], "help": [3, 42, 43], "edit": [3, 52], "page": 3, "fly": 3, "diagnos": 3, "problem": [3, 6, 9, 29, 52], "quickli": 3, "ultim": 3, "build": [3, 4, 5, 8, 11, 12, 17, 18, 22, 25, 27, 41, 42, 52, 56, 57, 61, 63, 73], "better": [3, 4, 6, 38, 39, 52, 63, 65], "websit": 3, "faster": [3, 42], "javet": [3, 5, 8, 9, 12, 14, 15, 16, 17, 19, 20, 21, 24, 25, 26, 28, 29, 30, 31, 33, 40, 43, 45, 46, 48, 49, 51, 52, 53, 55, 57, 62, 64, 67, 68, 69, 72, 73, 74, 76, 77, 78, 79], "ship": 3, "applic": [3, 4, 6, 13, 17, 25, 26, 29, 30, 31, 33, 38, 39, 40, 41, 42, 49, 52, 53, 64, 67, 68, 70, 74, 75, 81], "demonstr": 3, "how": [3, 4, 7, 11, 14, 16, 20, 26, 27, 29, 34, 38, 39, 41, 57, 64, 65, 81], "work": [3, 4, 9, 12, 13, 25, 26, 27, 38, 39, 40, 41, 52, 53, 65, 67, 73, 81], "normal": [3, 40, 49, 67], "java": [3, 4, 5, 9, 15, 25, 27, 29, 30, 33, 34, 38, 39, 40, 41, 53, 58, 64, 66, 67, 69, 74, 77, 79, 81], "consol": [3, 4, 29, 52, 53, 64, 65, 67, 70, 71, 74, 75], "an": [3, 4, 6, 9, 11, 13, 15, 25, 27, 28, 30, 33, 34, 38, 39, 40, 41, 42, 43, 48, 49, 52, 53, 64, 69, 74, 75, 76], "interact": [3, 4, 27, 29, 56, 64, 66, 75, 79], "appear": [3, 52], "arbitrari": [3, 4, 13, 30, 31, 33, 64, 68, 81], "what": [3, 9, 10, 16, 20, 30, 40, 41, 65, 81], "done": [3, 81], "let": [3, 9, 26, 29, 33, 41, 42, 64, 65, 67, 75], "undefin": [3, 30, 33, 41, 52, 64, 65, 75], "b": [3, 28, 30, 33, 34, 41, 42, 52, 64, 65, 68, 69, 75, 77], "7": [3, 6, 18, 40, 54, 64, 67, 73, 74, 75, 81], "inspect": [3, 17, 52], "remot": 3, "target": [3, 7, 30, 31, 42, 65, 81], "click": 3, "voil\u00e0": [3, 33, 67], "screenshot": 3, "show": [3, 4, 33, 40, 41, 52, 53, 64], "evalu": [3, 4, 41, 59, 81], "auto": [3, 18, 38, 56], "complet": [3, 4, 7, 12, 31, 33, 40, 41, 43, 49, 52, 57, 58, 67, 68, 73, 81], "enjoi": 3, "listen": [3, 26, 40, 53, 67], "port": [3, 54, 67], "9229": 3, "default": [3, 4, 22, 25, 30, 31, 33, 34, 38, 40, 41, 49, 52, 68, 74, 76], "becaus": [3, 4, 6, 8, 9, 17, 26, 27, 28, 29, 30, 31, 33, 38, 39, 40, 43, 46, 52, 53, 64, 65, 70, 76, 77, 81], "constantli": 3, "queri": [3, 64], "127": [3, 40], "list": [3, 6, 25, 27, 30, 31, 34, 35, 52], "tell": [3, 26, 33, 38, 40, 41, 67, 74], "flavor": [3, 16, 52, 64, 75], "via": [3, 4, 33, 40, 41, 43, 49, 52, 53, 64, 67, 74], "websocket": 3, "address": [3, 26, 40, 41, 43, 52, 63, 67], "w": 3, "protocol": 3, "current": [3, 4, 9, 42, 46, 52, 73], "v1": [3, 54, 58, 73], "api": [3, 4, 9, 11, 13, 14, 20, 27, 29, 30, 33, 35, 38, 39, 40, 41, 48, 52, 53, 55, 56, 58, 62, 64, 65, 67, 69, 77, 81], "doc": [3, 6, 56, 58], "chromedevtool": 3, "github": [3, 6], "io": [3, 17, 64], "upgrad": [3, 8, 9, 11, 18, 45, 56, 57, 58, 59, 60, 61, 62, 63], "request": 3, "respons": [3, 38, 41, 42, 52], "accept": [3, 17, 30, 48, 52, 53, 57], "switch": [3, 27, 38, 39, 43, 56], "send": [3, 30, 40, 67], "messag": [3, 40, 46, 48], "method": [3, 13, 29, 31, 33, 34, 46, 52, 65], "runtim": [3, 4, 18, 22, 33, 38, 39, 41, 42, 43, 46, 49, 52, 57, 58, 59, 61, 63, 64, 65, 67, 70, 71, 74, 75, 76, 81], "param": 3, "notif": [3, 40], "executioncontextcr": 3, "context": [3, 6, 13, 26, 39, 40, 41, 43, 46, 61], "origin": [3, 4, 52], "name": [3, 4, 13, 29, 31, 34, 38, 41, 46, 48, 52, 58, 61, 63, 64, 65, 74, 77, 78], "inspector": [3, 14, 20], "00000000": 3, "uniqueid": 3, "debugg": [3, 52], "maxscriptscaches": 3, "100000000": 3, "debuggerid": 3, "setpauseonexcept": 3, "state": [3, 42, 52], "none": [3, 52], "setasynccallstackdepth": 3, "maxdepth": [3, 46], "32": [3, 40], "profil": [3, 73], "6": [3, 8, 9, 41, 54, 60, 63, 64, 67, 73, 74, 75], "getisolateid": 3, "setblackboxpattern": 3, "pattern": [3, 13, 16, 31, 49], "runifwaitingfordebugg": 3, "pars": [3, 6], "expos": [3, 4, 27, 30, 31, 33, 40, 41, 45, 52, 53, 58, 64, 66, 79, 81], "callback": [3, 26, 40, 41, 46, 52, 56, 57, 58, 59, 61, 62, 67], "iv8inspectorlisten": 3, "rest": [3, 41], "refer": [3, 6, 11, 26, 27, 33, 38, 39, 41, 43, 46, 49, 52, 53, 61, 63, 64, 65, 68, 69, 70, 71, 73, 74, 75, 77, 81], "detail": [3, 4, 11, 17, 22, 23, 39, 49, 52, 53, 64, 65, 68, 69, 70, 71, 73, 74, 75, 76, 77, 81], "ye": [3, 4, 12, 18, 23, 26, 30, 31, 33, 38, 39, 41, 51, 52, 73, 77], "feel": [3, 41, 42, 52], "free": [3, 4, 13, 31, 39, 40, 41, 52, 56, 70, 81], "server": [3, 6, 30, 73], "your": [3, 9, 18, 33, 34, 38, 42, 43, 48, 78, 81], "environ": [3, 4, 5, 6, 18, 20, 27, 39, 41, 56, 58, 70], "creat": [3, 17, 22, 25, 28, 31, 33, 39, 40, 41, 46, 48, 49, 52, 53, 57, 62, 64, 65, 67, 68, 69, 70, 71, 74, 75, 78, 81], "showcas": 3, "further": [3, 6, 40], "some": [3, 4, 6, 9, 13, 15, 18, 21, 25, 26, 30, 38, 40, 42, 52, 53, 58, 62, 64, 65, 70, 77, 81], "tip": [3, 27, 35], "integr": [3, 9, 27, 48, 55, 72, 79], "embed": [3, 4, 6, 9, 22, 27, 42, 43], "jetti": 3, "Be": [3, 33, 40, 43, 53, 64], "care": [3, 32, 33, 39, 40, 41, 43, 53, 64], "host": [3, 4, 22, 38, 41, 64, 65, 67, 71, 74, 75], "togeth": [3, 42, 67], "otherwis": [3, 31, 32, 38, 39, 52], "refus": 3, "add": [3, 18, 25, 28, 29, 31, 33, 40, 41, 42, 51, 52, 53, 64, 69, 74, 77, 81], "intercept": [3, 5, 33, 40, 41, 55, 57, 72, 79], "event": [3, 43, 53, 67, 81], "In": [3, 4, 6, 13, 17, 26, 28, 30, 33, 38, 39, 40, 41, 43, 49, 52, 53, 65, 67, 81], "practic": [3, 4, 13, 44], "decent": [3, 6, 9, 51, 53], "jackson": [3, 65], "gson": [3, 65], "interpret": [3, 4], "why": [3, 13, 14, 20, 24, 25, 38, 40, 77], "breakpoint": 3, "befor": [3, 13, 25, 26, 30, 38, 40, 41, 64, 67], "right": [3, 38], "featur": [3, 4, 5, 8, 9, 13, 25, 31, 34, 38, 40, 41, 46, 51, 52, 53, 54, 68, 73, 76, 77, 81], "enforc": [3, 64], "authent": 3, "author": 3, "among": [3, 6, 39, 52, 62, 81], "well": [3, 9, 12, 26, 33, 34, 40, 81], "though": [3, 8, 46, 52, 70, 81], "other": [3, 4, 13, 30, 38, 39, 40, 42, 43, 48, 52, 53, 56, 67, 69, 73, 76, 81], "visit": [3, 17, 23, 27, 77], "more": [3, 4, 6, 9, 17, 18, 31, 38, 40, 41, 42, 45, 46, 49, 52, 53, 57, 58, 70, 71, 74, 75, 76, 77, 81], "javetshel": [3, 27, 64], "provid": [3, 4, 6, 18, 26, 28, 29, 30, 31, 33, 34, 41, 42, 51, 52, 64, 70, 74, 81], "either": [3, 4, 6, 7, 52], "There": [4, 9, 12, 13, 18, 28, 29, 30, 34, 38, 40, 41, 42, 46, 52, 64, 65, 76], "vagu": 4, "boundari": 4, "between": [4, 6, 9, 27, 30, 31, 40, 43, 52, 56, 65, 68], "definit": 4, "mixtur": 4, "both": [4, 6, 30, 38, 40, 42, 46, 53, 57, 64, 76, 81], "trade": 4, "No": [4, 9, 29, 30, 38, 41, 49, 51, 52, 67], "copi": [4, 33, 38, 40], "valu": [4, 27, 29, 30, 31, 32, 35, 38, 40, 41, 46, 51, 55, 56, 57, 58, 65, 74], "Not": [4, 42, 52, 73], "possibl": [4, 31, 39, 42, 43, 65], "weak": 4, "keep": [4, 30, 33, 39, 40, 43, 65], "footprint": 4, "jni": [4, 8, 38, 40, 52, 58, 59, 61], "recycl": [4, 6, 26, 30, 33, 40, 43, 71], "close": [4, 9, 13, 17, 20, 24, 33, 38, 40, 41, 43, 46, 49, 52, 56, 57, 61, 63, 64, 69, 70], "call": [4, 6, 9, 13, 17, 25, 26, 29, 30, 33, 38, 39, 40, 41, 43, 49, 53, 56, 64, 65, 67, 68, 74, 81], "old": [4, 9, 43, 53], "school": 4, "manag": [4, 9, 13, 16, 27, 35, 41, 56], "tri": [4, 9, 21], "hide": [4, 9], "kind": [4, 9, 29, 39, 52, 81], "tediou": [4, 13, 81], "try": [4, 9, 11, 25, 27, 29, 33, 39, 41, 42, 43, 49, 51, 52, 53, 64, 65, 67, 70, 71, 74, 75, 76, 77], "best": [4, 16, 44], "co": 4, "exist": [4, 11, 33, 34, 41, 42, 65, 77], "one": [4, 7, 9, 11, 13, 17, 22, 28, 33, 38, 40, 41, 52, 65, 68, 74, 75, 76, 81], "word": [4, 40, 67], "thei": [4, 9, 31, 34, 38, 40, 41, 43, 46, 53, 65, 76], "side": [4, 6, 17, 40], "don": [4, 9, 17, 27, 33, 41, 42, 48, 76, 78, 81], "interfer": 4, "each": [4, 40, 52, 76, 81], "diagram": [4, 52], "lazi": 4, "load": [4, 13, 21, 37, 42, 46, 77, 81], "dedic": [4, 40, 43, 67, 81], "classload": [4, 81], "comparison": [4, 5, 9, 27], "loadabl": 4, "high": [4, 30, 40], "ecosystem": [4, 76], "secur": [4, 6, 13, 41, 42, 77, 81], "low": 4, "unload": [4, 37, 41, 81], "One": [4, 30], "beauti": [4, 30, 52], "appli": [4, 25, 30, 33, 38, 41, 43, 49, 52, 59, 63, 67], "exampl": [4, 14, 20, 29, 68, 69], "e": [4, 6, 13, 15, 26, 28, 29, 30, 38, 40, 41, 49, 52, 53, 64, 65, 67, 74, 76, 77, 81], "g": [4, 6, 13, 15, 18, 26, 28, 30, 38, 40, 41, 52, 53, 64, 65, 67, 68, 74, 76, 77, 81], "net": [4, 33], "etc": [4, 11, 13, 15, 28, 30, 38, 40, 52, 64, 67, 77], "zero": [4, 40], "byte": [4, 31, 32, 33, 34, 40, 42, 52, 64], "buffer": [4, 40], "achiev": [4, 9, 33, 39, 40, 52], "thread": [4, 6, 9, 17, 25, 40, 46, 49, 53, 56, 57, 64, 70, 81], "multipl": [4, 17, 22, 25, 39, 41, 43, 57, 81], "instanc": [4, 6, 13, 17, 28, 40, 41, 43, 48, 52, 68, 74], "onli": [4, 13, 15, 17, 22, 25, 30, 32, 33, 38, 41, 42, 43, 48, 52, 54, 65, 73, 81], "visibl": [4, 52], "beyond": 4, "allow": [4, 6, 9, 22, 28, 29, 30, 31, 33, 34, 38, 41, 48, 52, 53, 56, 57, 58, 62, 64, 67, 68, 69, 70, 74, 81], "explicit": [4, 28, 81], "await": [4, 6, 43, 52, 53, 56, 60, 67], "control": [4, 26, 30, 34, 41, 49, 52], "over": [4, 26, 30, 34, 41, 52, 81], "async": [4, 6, 26, 53], "global": [4, 13, 25, 41, 52, 61, 64, 70, 81], "recommend": [4, 6, 8, 33, 34, 43, 52, 53, 65, 70], "project": [4, 9, 11, 13, 15, 16, 27, 33, 41, 53, 64, 73, 77, 81], "increas": [4, 30, 46, 81], "align": 4, "chrome": [4, 5, 17, 20, 24, 27, 42, 55], "doe": [4, 17, 25, 26, 38, 40, 49, 52, 81], "bring": [4, 30, 38], "system": [4, 8, 11, 25, 27, 33, 38, 41, 46, 48, 63, 64, 65, 67, 68, 69, 71, 73, 74, 75], "unfortun": [4, 9], "veri": [4, 25, 33, 41, 43, 52, 75, 76], "limit": [4, 13], "howev": [4, 6, 9, 11, 13, 26, 30, 31, 38, 40, 52, 65, 81], "bad": [4, 9], "leav": [4, 11, 31, 41, 64], "typic": [4, 34, 41, 49, 52], "challeng": [4, 9, 13, 30], "sync": 4, "locat": [4, 41, 81], "interceptor": [4, 26, 52, 53, 64, 70, 74], "partial": 4, "know": [4, 7, 9, 26, 37, 41, 52, 81], "want": [4, 8, 9, 13, 26, 30, 38, 39, 40, 42, 46, 52, 53, 54, 64], "defin": [4, 30, 33], "es6": [4, 9, 14, 20, 41], "repres": [4, 13, 30, 40, 52, 81], "string": [4, 25, 29, 31, 32, 33, 34, 41, 48, 53, 55, 65, 67, 69, 71, 74, 75, 77], "dure": [4, 25, 26, 30, 38, 40, 41, 42, 52, 56, 81], "url": 4, "whatev": [4, 26, 39, 40, 52, 53, 64], "store": [4, 25, 34, 40, 41, 42, 52, 61], "map": [4, 28, 30, 31, 34, 41, 51], "kei": [4, 25, 33, 41, 51, 65], "feed": [4, 41], "get": [4, 9, 13, 26, 28, 29, 31, 33, 38, 40, 41, 43, 48, 49, 51, 52, 53, 58, 59, 65, 67, 69, 70, 76, 77, 78, 81], "start": [4, 11, 17, 25, 30, 42, 49, 52, 58, 64, 67, 81], "excel": [4, 9], "articl": 4, "explain": 4, "concept": [4, 13, 53], "insight": 4, "summari": [4, 6], "vm": [4, 25, 43, 63], "heap": [4, 40, 42], "separ": [4, 6, 13, 33], "unrel": [4, 6], "javascript": [4, 6, 17, 26, 27, 30, 33, 39, 40, 41, 42, 53, 58, 64, 66, 69, 71, 74, 79, 81], "singl": [4, 6, 9, 39, 52, 67], "model": [4, 25, 39], "simplifi": [4, 52], "v8runtim": [4, 6, 25, 27, 28, 29, 31, 33, 34, 39, 41, 42, 43, 49, 51, 52, 53, 55, 56, 57, 58, 60, 63, 64, 65, 68, 69, 70, 71, 74, 75, 76, 77], "resetisol": [4, 39, 56], "resetcontext": [4, 39, 43, 56], "alwai": [4, 29, 43, 52], "brand": 4, "new": [4, 6, 7, 9, 11, 25, 28, 29, 31, 33, 38, 39, 40, 41, 42, 48, 49, 51, 52, 53, 54, 64, 65, 67, 68, 69, 70, 74, 75, 76, 77, 78], "much": [4, 6, 9, 33, 40, 43, 52, 65, 75, 77, 81], "cheaper": 4, "oper": [4, 30], "good": [4, 27, 40, 74], "enough": [4, 29, 33], "term": [4, 49, 52, 65], "almost": [4, 9, 33, 40, 52, 67], "db": 4, "safe": [4, 26, 30, 39, 52], "NOT": [4, 39, 52], "lock": [4, 37, 40, 46, 49, 56, 63, 81], "violat": 4, "core": [4, 38, 39, 41, 43, 57], "dump": [4, 39, 43, 57, 58], "immedi": [4, 17, 22, 39, 40, 43, 49], "valid": [4, 40, 52, 64], "minim": [4, 31, 43, 70], "overhead": [4, 6, 13, 30, 31, 39, 40, 49, 70], "behind": [4, 6, 11, 13, 26, 64, 69], "scene": [4, 13, 26, 64, 69], "sampl": [4, 29, 33, 38, 40, 41, 52, 64, 67], "function": [4, 15, 17, 31, 38, 40, 41, 42, 50, 55, 58, 59, 60, 64, 65, 67, 68, 74, 81], "packag": [4, 6, 8, 9, 64], "automat": [4, 7, 30, 33, 38, 39, 41, 46, 61, 71, 74, 81], "per": [4, 33, 38, 39, 40, 41], "calcul": [4, 52], "unpack": 4, "system_temporary_directori": 4, "pid": 4, "deploi": [4, 57, 64], "avoid": [4, 13, 22, 30, 33, 38, 43, 63, 64], "race": [4, 39], "condit": [4, 31, 39], "initi": [4, 6, 20, 24, 40, 41, 42, 59, 63, 67, 70, 74], "purg": [4, 67], "legaci": [4, 9, 19, 20, 59], "least": [4, 9], "begin": 4, "nativ": [4, 14, 20, 21, 27, 28, 31, 34, 39, 40, 43, 52, 55, 67, 81], "track": [4, 40, 62], "delet": [4, 28, 33, 34, 51, 52, 64, 68, 74], "javetnativemonitor": 4, "unit": [4, 16], "case": [4, 6, 7, 9, 16, 30, 32, 38, 39, 40, 41, 52, 53, 55, 81], "fetch": [4, 6, 53], "compar": [4, 7, 39], "count": [4, 46, 49, 51, 64, 67], "verifi": [4, 41, 52], "unmanag": [4, 40], "properli": [4, 25, 64], "alloc": [4, 39, 52, 58], "freed": 4, "intellij": [5, 9], "flag": [5, 25, 40, 57, 59], "design": [5, 7, 16, 17, 27, 31, 33, 38, 39, 41, 52, 67, 76, 81], "architectur": [5, 9], "modul": [5, 21, 26, 42, 43, 45, 46, 52, 60, 61, 63, 77], "engin": [5, 25, 27, 28, 40, 41, 42, 46, 58, 72, 78, 79], "pool": [5, 25, 27, 40, 48, 55, 58, 72, 78, 79], "cross": [5, 81], "memori": [5, 9, 11, 16, 25, 26, 30, 33, 37, 38, 42, 43, 46, 52, 56, 58, 63, 64, 65, 81], "leak": [5, 9, 11, 30, 33, 40, 43, 56, 58, 63, 64], "detect": [5, 29, 30, 46, 52, 57, 58], "wasm": 5, "benchmark": 5, "improv": [5, 9, 39, 40, 42, 58, 62, 63], "cdt": [5, 75], "shell": [5, 72, 79], "intern": [5, 33, 38, 39, 40, 52, 58, 59, 62, 73], "faq": [5, 27], "reset": [6, 43], "i7": [6, 9], "10700k": [6, 9], "window": [6, 11, 13, 21, 27, 55, 65, 81], "type": [6, 13, 28, 29, 30, 31, 33, 34, 38, 39, 40, 41, 46, 55, 56, 58, 59, 65], "tp": [6, 9], "751": 6, "032": 6, "ad": [6, 9, 33, 39, 55, 56, 57, 58, 59, 60, 61, 62, 63], "hoc": [6, 9, 39, 57], "65": 6, "410": 6, "143": 6, "363": 6, "isol": [6, 13, 39, 40, 41, 43, 81], "51": 6, "263": [6, 40], "647": 6, "458": 6, "846": 6, "968": 6, "253": 6, "508": 6, "748": 6, "660": 6, "slightli": 6, "mainli": 6, "older": 6, "than": [6, 11, 30, 42, 49, 52, 77, 81], "dramat": [6, 52], "outperform": 6, "huge": [6, 22, 73], "serious": [6, 9], "slow": [6, 31], "down": [6, 81], "creation": [6, 40, 42, 70], "unless": [6, 40, 43, 81], "particular": [6, 9, 34, 38, 41, 42], "linux": [6, 11, 19, 20, 25, 27, 55, 56, 57, 59, 61, 63, 81], "addit": [6, 12, 18, 31, 39, 52, 73, 81], "emb": 6, "bind": [6, 33, 41, 53, 56, 69, 74, 81], "webassembli": 6, "concern": 6, "program": 6, "languag": [6, 40, 52], "gener": [6, 29, 33, 40, 42, 46, 52, 57, 65], "jul": 6, "13": [6, 58, 60, 61], "2023": [6, 25, 60, 61, 62, 63], "binarytre": 6, "672": 6, "2048": 6, "305": 6, "edigit": 6, "814": 6, "484": 6, "59": 6, "fannkuch": 6, "redux": 6, "1660": 6, "4639": 6, "279": 6, "fasta": 6, "512": [6, 40], "367": 6, "72": 6, "helloworld": 6, "mandelbrot": 6, "1411": 6, "1095": 6, "78": 6, "merkletre": 6, "1134": 6, "221": 6, "nbodi": 6, "546": 6, "472": 6, "86": 6, "nsiev": 6, "694": 6, "586": 6, "84": 6, "pidigit": 6, "4975": 6, "2761": 6, "55": 6, "spectral": 6, "norm": 6, "4198": 6, "4128": 6, "98": 6, "coro": 6, "prime": 6, "siev": 6, "796": 6, "105": [6, 46], "jit": 6, "optim": 6, "warm": 6, "could": [6, 9], "higher": 6, "And": [6, 9, 27, 67], "measur": [6, 65], "choos": [6, 26, 52], "technologi": 6, "accord": 6, "differ": [6, 9, 13, 31, 41, 43, 52, 53, 65], "signific": [6, 40], "algorithm": [6, 58], "awar": [6, 40, 43], "drawback": [6, 41, 65], "consider": [6, 18, 30, 49, 73], "written": [6, 30, 42], "rust": 6, "21": [6, 39, 57, 63, 73], "kb": 6, "amount": [6, 22, 73, 81], "time": [6, 9, 17, 31, 33, 38, 41, 42, 65, 70], "eventu": [6, 40, 64], "whole": [6, 33, 66, 79], "asynchron": 6, "mean": [6, 38, 41, 48, 52], "busi": [6, 58, 81], "logic": [6, 9, 30, 52, 53, 67, 81], "deal": [6, 29, 31, 40, 52], "promis": [6, 26, 43, 50, 67], "synchron": [6, 39, 81], "flexibl": [6, 41], "black": 6, "box": [6, 41], "impli": [6, 11, 17, 18, 26, 73, 81], "vulner": [6, 42, 43], "major": [6, 41, 55, 81], "javetperf": [6, 62], "reus": [7, 13], "do": [7, 9, 13, 23, 26, 27, 39, 40, 41, 43, 52, 53, 69], "suit": 7, "timestamp": 7, "newer": 7, "instal": [8, 9, 12, 18, 38, 41, 67, 72, 77, 79], "drop": [8, 9, 41, 52], "heavili": [8, 29, 52, 81], "person": 8, "idea": [8, 9, 11, 40], "For": [8, 13, 33, 41, 52], "now": [8, 9, 29, 33, 41, 48, 52, 74], "v7": 8, "kotlin": [8, 33, 39], "dsl": [8, 33], "construct": [8, 52, 57], "14": [8, 9, 33, 58, 59, 60, 61, 62, 63, 73], "17": [8, 57, 59, 62, 63], "v3": [8, 25, 41, 54, 73], "bundl": 8, "hasn": [9, 26, 52], "activ": [9, 26, 38, 41, 73], "2017": 9, "last": 9, "wa": [9, 41, 81], "2016": 9, "v4": 9, "fulli": [9, 29], "were": [9, 25], "around": [9, 41], "android": [9, 27, 38, 59, 60, 61], "year": [9, 81], "nearli": 9, "seriou": [9, 11], "fix": [9, 11, 21, 28, 40, 41, 54, 56, 57, 58, 59, 60, 61, 62, 63], "under": [9, 40, 43, 52, 64], "Its": [9, 40, 42, 81], "evolv": 9, "expect": [9, 25, 40, 46, 52], "chanc": 9, "implement": [9, 27, 31, 33, 34, 38, 40, 41, 52, 53, 64, 65, 73], "obvious": [9, 41, 52, 65], "couldn": [9, 81], "easili": [9, 30, 34, 40, 49, 78], "would": [9, 11, 17], "contribut": 9, "me": [9, 27], "had": [9, 11], "admit": 9, "think": [9, 11, 14, 16, 17, 20, 42], "mere": 9, "meanwhil": [9, 67], "ecmascript": [9, 41], "move": [9, 56, 57], "forward": [9, 41], "rapidli": 9, "caus": [9, 21, 22, 25, 38, 49, 52, 58, 81], "unexpect": [9, 30, 52], "someon": [9, 41], "team": 9, "realiti": 9, "cruel": 9, "unoffici": 9, "v6": 9, "110": 9, "2020": [9, 11], "temporarili": 9, "ve": [9, 11, 42], "j2v8_win32_x86_64": 9, "machin": 9, "cpu": [9, 25, 27, 65], "session": 9, "003": 9, "009": 9, "338": 9, "688": 9, "35": 9, "299": 9, "274": 9, "019": 9, "571": 9, "428": 9, "With": [9, 13, 41, 65], "stick": 9, "devic": [9, 27], "precis": [9, 30, 52], "mini": 9, "macbook": 9, "air": 9, "too": [9, 17, 41], "plan": 9, "bui": 9, "futur": 9, "donat": [9, 27], "joke": 9, "intend": [9, 13], "tl": 9, "dr": 9, "rel": 9, "easi": [9, 13, 27, 29, 52, 55, 65, 70, 75], "master": [9, 53], "didn": 9, "213": 9, "solvabl": 9, "revisit": 9, "remov": [9, 56, 57, 58, 59, 63], "earli": [9, 43], "haven": 9, "got": [9, 11], "reviv": 9, "v2": [9, 54, 73], "far": 9, "lowest": [9, 73], "my": [9, 27], "eclips": 9, "plai": [9, 39, 41, 53, 65, 67], "hei": 9, "satisfi": 9, "luck": 9, "understand": 9, "suffer": 9, "nowadai": 9, "2019": [9, 61], "cmakelist": 9, "txt": 9, "still": [9, 42, 49, 52, 64, 81], "2015": [9, 41], "ag": 9, "surpris": 9, "deepli": 9, "gone": [9, 26], "step": [9, 12, 13, 26, 28, 31, 33, 38, 40, 41, 52, 64, 68, 71, 74, 75], "sit": 9, "watch": 9, "break": [9, 30, 41, 52, 53, 65, 75], "made": [9, 11, 42], "full": [9, 25, 43, 52], "thought": [9, 11], "month": [9, 11], "pai": [9, 81], "python2": 9, "form": [9, 52], "outer": 9, "layer": [9, 81], "who": [9, 41], "spend": 9, "preciou": 9, "wish": [9, 81], "hair": 9, "guido": 9, "van": 9, "rossum": 9, "am": [9, 33, 52], "problemat": 9, "At": [9, 11, 52], "hack": [9, 13, 26], "pom": [9, 59], "xml": [9, 59], "uncertainti": 9, "someth": [9, 52], "roi": 9, "suppos": [9, 32, 38, 53], "sai": [9, 29], "x": [9, 27, 28, 31, 33, 34, 41, 52, 54, 69], "later": [9, 11, 41], "255": [9, 40, 55, 68], "permiss": 9, "realli": [9, 53], "local": [9, 29, 40, 52], "histori": [10, 11, 20, 81], "j2v8": [10, 11, 13, 20, 79, 80], "motiv": [10, 20, 81], "find": [11, 52, 64], "compel": 11, "slowli": 11, "dy": 11, "sometim": [11, 25, 28, 29, 30, 33, 40, 42, 52, 53, 64], "lower": [11, 42], "cost": 11, "might": [11, 38, 42], "learn": [11, 16, 34], "lot": [11, 70], "manual": [11, 18, 33], "end": [11, 33, 40, 43, 52, 71], "abl": [11, 13, 22, 26, 30, 41, 42, 49, 52, 67, 81], "write": [11, 29, 30, 40, 81], "inde": [11, 43], "graalvm": 12, "download": [12, 18, 41], "site": 12, "folk": [13, 41], "migrat": [13, 27, 79], "experienc": 13, "perspect": [13, 40], "noth": 13, "globalthi": [13, 41, 81], "mix": 13, "longer": [13, 30, 33, 40, 43, 81], "getglobalobject": [13, 28, 29, 31, 33, 34, 41, 49, 52, 53, 64, 65, 67, 68, 69, 70, 74, 77, 81], "top": [13, 41, 52, 81], "level": [13, 30, 39, 52], "globalobject": [13, 52], "invok": [13, 29, 56], "involv": 13, "common": [13, 18], "where": [13, 14, 20, 38, 41, 42, 65, 81], "thing": [13, 30, 31, 40, 41], "offer": [13, 15, 40], "builder": 13, "check": [13, 39, 41, 52, 57, 81], "ast": [13, 27], "scope": [13, 17, 40, 60], "duplic": 13, "regist": [13, 26, 41, 43, 46, 52, 60, 62, 64, 70, 74, 81], "decor": [13, 52, 57, 74, 81], "v8function": [13, 52, 53, 57, 58, 64], "v8properti": [13, 52, 56, 57, 58, 81], "back": [13, 30, 33, 40, 41, 52, 54], "leakag": [13, 46], "lifecycl": [13, 40, 43, 52], "convers": [13, 28, 30, 34, 60, 63, 69], "handl": [13, 26, 29, 33, 39, 41, 53, 57, 59, 70], "everyth": [13, 64], "goe": [13, 52], "smoothli": [13, 30], "experi": [13, 26, 33, 38, 41, 69, 70, 75], "littl": [13, 31], "bit": [13, 31, 40, 41], "spring": [13, 27, 55, 72, 79], "framework": [13, 78], "most": [13, 39, 41, 43, 52], "cover": [13, 29, 31, 40, 81], "express": [13, 33, 67, 73], "effect": [13, 38, 40, 41, 67], "basic": [15, 27, 32, 34, 52, 70, 77, 79, 81], "absent": [15, 39, 52], "settimeout": [15, 67, 77, 81], "setinterv": [15, 67, 77], "javenod": [15, 16, 27, 53, 73, 77, 81], "extens": [15, 52, 70], "aim": [15, 41, 77, 81], "simul": [15, 34, 41, 52, 77, 81], "singleton": 17, "fine": [17, 27, 30, 34], "noderuntim": [17, 41, 56, 59, 67, 71, 76], "But": [17, 38, 39, 40, 41, 52, 53, 78], "crash": [17, 20, 22, 24, 38, 39, 52, 58, 61, 63], "serv": 17, "agent": 17, "check_eq": 17, "start_io_thread_async_initi": 17, "exchang": 17, "std": 17, "atomic_bool": 17, "flip": 17, "again": [17, 33, 38], "trigger": [17, 39, 40, 52], "workaround": [17, 41], "inevit": 17, "hacki": 17, "fundament": [17, 48, 78], "instead": [17, 30, 39, 40, 41, 42, 56, 61, 69, 81], "distribut": [18, 25, 59, 63, 73], "eg": 18, "18": [18, 58, 62, 73], "reli": [18, 40, 48, 64, 65, 78], "advanc": [18, 27, 53, 79], "chain": [18, 40], "drive": [18, 41], "prepar": [18, 38, 41, 42, 52, 70], "sudo": [18, 41], "apt": [18, 41], "y": [18, 28, 31, 33, 34, 69], "essenti": 18, "softwar": 18, "properti": [18, 30, 31, 33, 65, 73, 74, 78], "ppa": 18, "toolchain": 18, "altern": [18, 31], "90": 18, "slave": 18, "gcov": 18, "80": 18, "70": 18, "config": [18, 33, 48], "choic": [18, 27], "select": [18, 40, 52], "prioriti": [18, 58], "statu": [18, 49, 54], "effort": [18, 49, 73], "commit": [18, 25, 73], "background": [20, 27, 53], "troubleshoot": [20, 27, 35], "dynam": [20, 24, 27, 38, 42, 52, 56, 63], "routin": [20, 24, 41], "sigsegv": [20, 24], "createv8runtim": [20, 24, 27, 29, 41, 42, 49, 64, 65, 67, 71, 74, 75, 76], "aw": [20, 24, 40], "being": [20, 24, 33, 40, 41, 49, 52], "failur": [21, 58], "happen": [21, 26, 30, 33, 40, 53], "root": [21, 25, 29, 40, 41, 42], "napi": [21, 41], "symbol": [21, 28, 31, 33, 41, 46, 57, 59, 62], "cannot": [21, 30, 39, 40, 41, 42], "found": [21, 41, 46, 77], "modular": [21, 37, 43, 81], "By": [22, 38, 40, 74], "reduc": [22, 42], "relat": [22, 52], "attempt": 22, "meet": [25, 30, 41], "import": [25, 26, 48, 49, 53, 73, 81], "enum": 25, "jsruntimetyp": [25, 38, 41, 76, 78], "interop": [25, 27, 66, 79], "ijavetengin": [25, 41, 49, 70, 76, 77], "javetenginepool": [25, 41, 48, 56, 58, 70, 76, 78], "util": [25, 33], "arraylist": [25, 28, 31, 69], "public": [25, 29, 31, 33, 34, 38, 48, 52, 53, 59, 64, 65, 67, 74, 77, 78], "class": [25, 29, 31, 41, 48, 52, 64, 65, 67, 74, 78], "testcrash": 25, "void": [25, 29, 31, 33, 48, 52, 53, 64, 65, 67, 74, 77], "throw": [25, 29, 30, 33, 41, 49, 52, 53, 65, 67, 77], "except": [25, 29, 33, 39, 40, 41, 43, 48, 49, 52, 56, 58, 59, 65, 81], "int": [25, 29, 31, 32, 33, 34, 42, 49, 52, 65, 67, 74], "threadcount": 25, "length": [25, 28, 29, 31, 33, 34, 40, 42], "integ": [25, 31, 32, 33, 34, 40, 51, 52, 67], "parseint": 25, "println": [25, 27, 41, 64, 65, 67, 68, 69, 71, 74, 75], "els": [25, 29, 41, 52, 53, 65, 67, 73, 77, 81], "threadlist": 25, "enginepool": 25, "getconfig": [25, 33, 34, 41, 64, 76], "setjsruntimetyp": [25, 41, 76, 78], "getengin": [25, 41, 49, 70, 76], "reach": [25, 30, 46], "catch": [25, 29, 49, 52, 53, 67, 75], "throwabl": [25, 48, 75], "printstacktrac": [25, 29, 49, 67], "err": [25, 75], "join": [25, 33, 64], "peacefulli": 25, "seem": 25, "protect": [25, 29, 39, 48, 49, 78], "specif": [25, 40, 53], "26": [25, 58, 59, 63], "occur": [25, 26, 30, 33, 40], "small": 25, "forc": [25, 26, 33, 43, 70], "v8host": [25, 27, 29, 38, 40, 41, 42, 49, 56, 57, 58, 64, 65, 67, 71, 74, 75], "getv8inst": [25, 27, 40, 41, 49, 64, 65, 71, 74, 75, 76], "trick": [25, 67], "threadisol": 25, "fedora": 25, "kvm": 25, "cycl": [25, 40], "ensur": [25, 64], "patch": [25, 54, 63], "consum": [25, 51], "linx": 25, "kernel": 25, "user": [26, 30, 33, 41, 48, 70, 75, 78], "segfault": [26, 81], "82": 26, "loop": [26, 49, 53, 67, 75], "exit": [26, 75], "see": [26, 39, 41, 64, 65, 76], "hand": 26, "yet": 26, "resolv": [26, 33, 41, 42, 67, 81], "reject": [26, 43, 57], "land": 26, "lead": [26, 42, 43], "corrupt": 26, "peopl": [26, 81], "mostli": 26, "genuin": 26, "prevent": [26, 38, 40, 43], "fact": [26, 53], "won": [26, 30, 38], "standard": [26, 41, 61], "hit": [26, 49], "explicitli": [26, 33, 38, 40, 43, 70], "garbag": [26, 33, 38, 40, 64], "collect": [26, 28, 31, 38, 50, 55], "eight": 27, "awesom": [27, 76], "star": 27, "blogspot": 27, "channel": 27, "discord": [27, 81], "retir": 27, "mail": 27, "great": 27, "thank": 27, "arm64": [27, 61, 63, 73], "v20": [27, 54, 63], "281": [27, 63], "prefer": 27, "polyfil": [27, 72, 79, 81], "exposur": [27, 55], "bigint": [27, 32, 34, 40, 55], "date": [27, 32, 34, 41, 55], "live": [27, 39, 40, 52], "analysi": [27, 41], "javetsanit": 27, "groupid": [27, 33, 73], "artifactid": [27, 33, 73], "getnodeinst": [27, 29, 40, 67, 71, 76], "getexecutor": [27, 28, 29, 31, 33, 34, 41, 42, 49, 51, 52, 53, 64, 65, 67, 68, 69, 70, 71, 74, 75, 77], "executestr": [27, 28, 31, 33, 34, 41, 52, 64, 68, 69, 71, 77], "hivemq": 27, "apach": 27, "graalj": [27, 33], "nashorn": 27, "elegantli": [27, 64, 65], "jsonnod": [27, 66, 79], "compromis": 27, "typescript": 27, "intro": 27, "tutori": [27, 64], "convert": [27, 34, 35, 46, 52, 56, 58, 59, 63, 64, 65, 66, 68, 79, 81], "todo": [27, 35], "note": [27, 33, 40, 41, 52], "javetproxyconvert": [28, 30, 34, 40, 57, 58, 64, 65, 68, 81], "skip": [28, 30, 33, 57], "proxi": [28, 31, 58, 59, 63, 64, 65], "primit": [28, 29, 30, 31, 33, 34, 43, 52, 55, 58, 59], "annoi": 28, "variabl": [28, 39, 41, 52, 58, 68, 69, 74], "accid": 28, "javetbridgeconvert": [28, 34, 40, 58, 63], "ident": [28, 41, 52, 74], "setconvert": [28, 29, 33, 64, 65, 68], "btrue": 28, "bfals": 28, "asserttru": [28, 33, 34, 41, 42, 49, 51, 52, 53], "executeobject": [28, 33, 64, 68, 69], "assertfals": [28, 33, 34, 41, 49, 51, 52], "assertequ": [28, 31, 33, 34, 41, 42, 49, 51, 52], "tov8valu": [28, 29, 65], "executeinteg": [28, 31, 33, 34, 41, 42, 49, 52, 64, 71], "toprimit": 28, "12345": 28, "12346": 28, "intarrai": [28, 34], "assertarrayequ": [28, 33], "iter": [28, 33, 62], "integerlist": 28, "executevoid": [28, 29, 33, 41, 42, 49, 52, 64, 65, 67, 68, 69, 70, 74, 77], "longlist": 28, "unmodifiablelist": 28, "aslist": [28, 52], "1l": 28, "2l": 28, "stringifi": [28, 33, 34, 69], "implicit": [28, 81], "given": [28, 40], "give": [28, 30, 40, 49, 52, 64], "ab": 28, "implicitli": [28, 58], "besid": [28, 52], "power": [29, 42], "simpl": [29, 33, 38, 40, 41, 42, 48, 52, 65, 67, 76], "about": [29, 39], "reflect": [29, 31, 33, 43, 52, 62], "tweak": 29, "pair": [29, 52], "null": [29, 31, 33, 41, 52, 53, 67, 74, 75], "getnam": [29, 31, 74, 78], "return": [29, 30, 31, 33, 38, 40, 41, 43, 49, 52, 53, 56, 65, 67, 68, 69, 74, 78], "setnam": [29, 31, 74], "getvalu": [29, 31, 51, 52, 65, 74], "setvalu": [29, 31, 52, 74], "Then": 29, "recurs": [29, 30, 57], "parent": [29, 43], "overrid": [29, 33, 38, 48, 52, 53, 65], "depth": [29, 30, 46, 57], "argument": [29, 31, 42, 81], "circular": [29, 46, 57], "structur": [29, 46, 57, 65], "increment": [29, 65], "suppresswarn": 29, "uncheck": 29, "extend": [29, 33, 34, 41, 52], "javetobjectconvert": [29, 30, 31, 57, 63, 81], "method_prefix_get": 29, "method_prefix_i": 29, "excluded_method": 29, "hashset": [29, 31, 52], "getmethod": [29, 52], "getparametercount": 29, "methodnam": [29, 46, 52], "startswith": 29, "v8valu": [29, 30, 53, 56, 57, 59, 65, 69, 75, 81], "javetexcept": [29, 52, 53, 65, 67, 77], "super": [29, 65], "isundefin": 29, "objectclass": 29, "getclass": 29, "v8valueobject": [29, 33, 40, 41, 52, 57, 59, 74, 77, 81], "createv8valueobject": [29, 40, 41, 52, 74], "canaccess": 29, "propertynam": 29, "contain": [29, 33, 34, 41, 43, 52], "substr": 29, "tolowercas": 29, "v8valuetemp": 29, "line": [29, 39, 52, 75], "testpojo": 29, "pojoarrai": 29, "tom": 29, "ceo": 29, "jerri": 29, "cfo": 29, "log": [29, 40, 43, 47, 52, 53, 67, 70, 74], "transpar": [29, 33, 52, 81], "autom": [29, 40], "bridg": [30, 58], "plugin": [30, 63], "arrai": [30, 31, 33, 34, 40, 51, 52, 55], "famou": 30, "topic": [30, 53], "lang": [30, 38, 64], "nullpointerexcept": 30, "luckili": [30, 41], "inject": [30, 33, 38, 40, 42, 46, 52, 53, 57, 64, 65, 81], "javetconverterconfig": [30, 34, 57, 63], "overridden": [30, 38], "differenti": 30, "introduc": [30, 40, 41, 58, 81], "ijavetentityfunct": [30, 31], "ijavetentitymap": [30, 31], "setskipfunctioninobject": 30, "boolean": [30, 31, 32, 34, 38, 42], "setextractfunctionsourcecod": 30, "opportun": 30, "extract": 30, "ineffici": 30, "inconveni": [30, 38], "substanti": 30, "javetconverterexcept": 30, "maximum": 30, "cheap": 30, "unrealist": 30, "number": [30, 32, 34, 40, 41], "stackoverflowerror": 30, "wors": 30, "block": [30, 39, 40, 46, 52, 71], "stack": [30, 52], "overflow": 30, "attack": [30, 49], "drain": [30, 40], "tini": 30, "behavior": [30, 33, 40, 43, 52], "fanci": 30, "read": [30, 40, 42, 46, 53], "setproxymapen": [30, 33], "wherea": [30, 40], "conveni": 30, "bi": [30, 69], "direction": [30, 69], "grain": [30, 34], "worri": [30, 38, 41, 49, 67], "vice": 30, "versa": 30, "open": [31, 33, 43, 64], "subclass": [31, 33, 34, 43, 53], "int8arrai": [31, 40], "char": [31, 32, 34, 52], "doubl": [31, 32, 34, 40, 52], "float64arrai": [31, 40], "float": [31, 32, 34, 40, 52], "float32arrai": [31, 40], "int32arrai": [31, 40], "int64arrai": 31, "short": [31, 32, 34, 40, 52], "int16arrai": [31, 40], "stream": [31, 52, 57, 59], "javetentitysymbol": 31, "ijavetmapp": [31, 57], "hashmap": [31, 69], "uint8arrai": [31, 40], "uint8clampedarrai": [31, 40], "uint16arrai": [31, 40], "uint32arrai": [31, 40], "bigint32arrai": 31, "bigint64arrai": [31, 40], "pojo": 31, "registercustomobject": [31, 57], "alien": 31, "match": [31, 33, 41, 68], "constructor": [31, 33, 34, 58, 64, 77], "signatur": [31, 46, 52], "frommap": 31, "tomap": 31, "touchabl": 31, "easier": 31, "customobject": 31, "put": [31, 33, 43, 65, 69], "getter": [31, 33, 52, 57, 58, 74, 81], "setter": [31, 33, 52, 57, 74, 81], "snippet": [31, 40, 41, 64], "below": [31, 52], "getconvert": 31, "ones": 31, "upon": 31, "registr": [31, 46, 81], "customfrommap": 31, "customtomap": 31, "regular": [31, 39], "v8customobject": 31, "getobject": [31, 33, 34], "assertnotnul": [31, 33, 42, 51], "pro": 31, "con": 31, "intrus": [31, 65], "carri": [31, 81], "inform": 31, "memor": 31, "complic": [31, 41], "relationship": 31, "javetprimitiveconvert": [32, 57, 59], "charact": [32, 34], "biginteg": [32, 34], "zoneddatetim": [32, 34, 59, 60], "optionalint": 32, "optionaldoubl": 32, "optionallong": 32, "fall": 32, "rang": [32, 40], "danger": 33, "touch": [33, 39], "tmp": 33, "executeboolean": [33, 34, 64], "isfil": 33, "isdirectori": 33, "canread": [33, 77], "canwrit": 33, "canexecut": 33, "lowmemorynotif": [33, 52, 53, 56, 64, 65, 70, 74, 81], "setproxylisten": [33, 63], "simplelist": [33, 34], "assertsam": [33, 34], "z": [33, 34], "pop": [33, 34], "tojson": [33, 63], "unshift": [33, 63], "shift": [33, 63], "simplemap": [33, 34], "getownpropertynam": [33, 34, 51], "containskei": [33, 34], "topath": 33, "tostr": [33, 41, 51, 52, 64, 65, 68, 75, 77], "newpath": 33, "toobject": 33, "abc": [33, 38, 52, 64, 68], "setproxyseten": 33, "simpleset": [33, 34], "const": [33, 41, 42, 51, 52, 65, 67, 68, 69, 77], "def": [33, 52, 67], "n": [33, 41, 52, 68], "d": [33, 41, 68], "instanceof": [33, 34, 52, 53, 65], "matcher": [33, 68], "123": [33, 52, 64, 68, 74, 77], "a123": 33, "smart": [33, 40], "javeterrortyp": 33, "assertthrow": 33, "javetexecutionexcept": [33, 41, 58], "field": [33, 34], "should": [33, 49], "writabl": 33, "annot": [33, 52, 57, 64], "autoclos": 33, "ijavetclos": [33, 57], "isassignablefrom": 33, "special": [33, 41, 52], "known": [33, 40], "lambda": [33, 52], "istringjoin": 33, "two": [33, 34, 40], "stringjoin": 33, "hold": [33, 40, 53], "joiner": 33, "getjoin": 33, "setjoin": 33, "v8valuefunct": [33, 41, 52, 56, 57, 67, 77], "orphan": 33, "callabl": 33, "outofmemoryerror": 33, "similar": [33, 43, 70], "enhanc": [33, 52, 56, 57, 58, 59, 62], "istringutil": 33, "hello": [33, 67, 68, 70, 72, 79], "split": 33, "stringutil": 33, "getutil": 33, "setutil": 33, "str": [33, 52], "toarrai": [33, 69], "aussi": 33, "non": [33, 43, 52, 64], "bytebuddi": [33, 60], "alreadi": [33, 46, 53], "referenc": [33, 40, 41], "buddi": [33, 64], "groovi": 33, "javetreflectionobjectfactori": [33, 64], "stai": [33, 38, 67, 81], "dynamicclass": [33, 64], "ijavetanonym": [33, 52, 57, 64], "setreflectionobjectfactori": [33, 64], "getinst": [33, 34, 38, 64], "codestr": [33, 41, 55], "gc": [33, 38, 64, 65, 70, 74], "runfin": [33, 64], "collector": [33, 40, 64], "less": [33, 38], "go": [33, 41, 54], "period": [33, 45], "smartli": 33, "overload": 33, "vararg": [33, 52, 56, 59], "identifi": 33, "alter": 33, "v8allow": [33, 58], "v8block": [33, 58], "ignor": [33, 40, 52, 56], "v8getter": [33, 58], "v8setter": [33, 58], "treat": [33, 38, 40], "allowonli": 33, "blockonli": 33, "alia": 33, "virtual": [33, 41, 59], "deriv": 34, "capabl": [34, 41, 52, 64, 65], "2n": 34, "65n": 34, "36893488147419103232": 34, "l": [34, 76], "1n": 34, "executebiginteg": 34, "isarrai": 34, "entri": 34, "sort": 34, "getproxyplugin": [34, 63], "removeif": 34, "iclassproxyplugin": [34, 63], "review": [34, 52, 53], "document": [38, 52, 57], "assum": [38, 41, 52], "reload": 38, "setlibraryreload": 38, "unloadlibrari": [38, 57], "restor": [38, 52, 63], "prior": 38, "loadlibrari": [38, 57], "unstabl": 38, "risk": [38, 43], "temp": 38, "javetlibload": 38, "setlibloadinglisten": 38, "ijavetlibloadinglisten": [38, 58], "getlibpath": 38, "anywher": 38, "bypass": [38, 52], "isdeploi": 38, "must": [38, 40, 52, 77], "islibinsystempath": 38, "mavin": 38, "plug": 38, "osgi": 38, "repeatedli": 38, "regardless": [38, 39, 43], "unsatisfiedlinkerror": 38, "issuppressingerror": [38, 58], "javetlibloadinglisten": [38, 58], "mechan": [38, 39, 81], "djavet": 38, "unlock": [39, 65], "surround": 39, "v8locker": [39, 43, 55], "locker": 39, "getv8lock": 39, "nest": 39, "thrown": [39, 40, 43, 49, 52], "report": 39, "conflict": [39, 46], "slight": [39, 63], "sensit": [39, 40, 43, 55, 81], "extrem": [39, 52], "50": 39, "granular": [39, 41], "concurr": 39, "scenario": [39, 40, 43, 55, 81], "maxim": [39, 43], "incompat": 39, "chao": 39, "sequenc": 39, "newglobalref": 40, "javaobject": [40, 81], "until": 40, "deleteglobalref": 40, "across": 40, "raw": 40, "categor": 40, "within": 40, "persist": 40, "borrow": [40, 52], "rule": [40, 52], "wrap": 40, "outsid": 40, "setweak": [40, 43], "determin": [40, 52, 57], "javetstandardconsoleinterceptor": [40, 70, 74], "v8scope": [40, 43, 57], "setescap": 40, "getv8scop": 40, "binari": [40, 46, 61], "often": 40, "manipul": [40, 51], "content": [40, 53, 63], "dataview": 40, "format": [40, 41, 46, 52], "nio": 40, "bytebuff": [40, 59], "consid": [40, 52, 65], "idl": 40, "equival": [40, 42, 52], "128": 40, "complement": 40, "sign": 40, "int8_t": 40, "unsign": 40, "octet": 40, "uint8_t": 40, "clamp": 40, "32768": 40, "32767": 40, "int16_t": 40, "65535": 40, "uint16_t": 40, "2147483648": 40, "2147483647": 40, "int32_t": 40, "4294967295": 40, "uint32_t": 40, "38": 40, "1038": 40, "ieee": 40, "point": [40, 41], "digit": 40, "234567": 40, "unrestrict": 40, "324": 40, "10308": 40, "64": [40, 57], "23456789012345": 40, "int64_t": 40, "biguint64arrai": 40, "264": 40, "uint64_t": 40, "testv8valuetypedarrai": 40, "testv8valuedataview": 40, "frequenc": 40, "area": 40, "pace": 40, "zombi": 40, "notifi": [40, 65, 74], "space": 40, "v8notifi": 40, "setmemoryusagethresholdratio": [40, 56], "threshold": 40, "ratio": 40, "enablegcnotif": [40, 56], "ration": 40, "xms64m": 40, "xmx64m": 40, "pressur": [40, 81], "destroi": 40, "curv": 40, "smoother": 40, "exce": 40, "broadcast": 40, "schedul": [40, 58], "affect": 40, "worker": 40, "javetengineconfig": [40, 48, 56, 59, 78], "setautosendgcnotif": [40, 78], "light": 40, "weight": 40, "hint": [40, 52], "task": [40, 53, 56], "queue": [40, 53], "decis": 40, "millisecond": [40, 42, 49, 67], "disregard": 40, "aforement": 40, "noderuntimeopt": [40, 58], "v8_flag": 40, "setallownativessyntax": 40, "setexposegc": 40, "setexposeinspectorscript": 40, "setmaxheaps": 40, "768": 40, "setmaxoldspaces": 40, "setusestrict": 40, "settrackretainingpath": 40, "setcustomflag": 40, "max": [40, 46], "semi": [40, 52], "384": 40, "min": 40, "256": 40, "seal": 40, "modif": 40, "analyz": [40, 41], "getv8heapspacestatist": [40, 58], "getv8heapstatist": [40, 58], "getv8sharedmemorystatist": [40, 58], "esm": 41, "earlier": 41, "commonj": 41, "amd": [41, 65], "getv8runtim": [41, 49, 65, 70, 77], "workingdirectori": 41, "javetosutil": [41, 67, 77], "working_directori": [41, 67, 77], "node_modul": [41, 43, 67, 77], "getnodemodul": 41, "nodemodulemodul": 41, "setrequirerootdirectori": 41, "getlogg": [41, 48, 77], "loginfo": [41, 77], "23": [41, 56, 59, 60, 62, 73, 77], "34": [41, 73, 77], "decim": 41, "__dirnam": 41, "__filenam": 41, "scriptfil": 41, "scriptpath": 41, "scriptstr": 41, "iv8executor": [41, 60], "setresourcenam": 41, "resourcenam": 41, "setmodul": 41, "excit": 41, "potenti": [41, 57, 58], "piec": 41, "sqlite3": 41, "bother": 41, "electron": 41, "approach": [41, 52], "simpler": 41, "node_sqlite3": 41, "napi_create_error": 41, "patchelf": 41, "npm": [41, 67, 77], "node_module_fil": 41, "loadlibraryexw": 41, "unzip": 41, "somewher": 41, "replac": [41, 64, 65], "voluntarili": 41, "compat": [41, 58, 63], "through": [41, 52], "pretti": 41, "backup": 41, "rebuilt": [41, 56], "dumpbin": 41, "win32": 41, "delai": 41, "ex": [41, 42], "00000001": 41, "characterist": 41, "0000000180154a40": 41, "hmodul": 41, "0000000180154818": 41, "tabl": [41, 61], "000000018014f248": 41, "000000018014fa68": 41, "bound": 41, "0000000000000000": 41, "stamp": 41, "0000000180108724": 41, "424b": 41, "napi_create_funct": 41, "0000000180108ab5": 41, "4243": 41, "napi_create_buffer_copi": 41, "1801363d8": 41, "180166610": 41, "index": 41, "6096": 41, "napi_open_escapable_handle_scop": 41, "6072": 41, "napi_get_undefin": 41, "apart": 41, "swc": 41, "gyp": 41, "ppee": 41, "puppi": 41, "profession": 41, "pe": 41, "explor": 41, "cli": 41, "drag": 41, "directory_entry_delay_import": 41, "save": [41, 67], "resolut": [41, 62], "embedd": 41, "relai": [41, 58], "reachabl": 41, "javetbuiltinmoduleresolv": [41, 63], "setv8moduleresolv": 41, "existssync": 41, "getboolean": 41, "gain": 41, "order": [41, 51], "launch": [41, 42, 43], "testfrommodul": 41, "assign": [41, 52, 57, 68], "v8modul": [41, 56, 60, 63], "compilemodul": 41, "containsmodul": 41, "getinteg": [41, 49], "heavi": 41, "v8modulereferr": 41, "equal": [41, 52, 55, 69, 75, 77], "compilev8modul": [41, 81], "cach": [41, 55, 59, 60], "propos": 41, "advantag": 41, "tradit": 41, "record": 41, "createv8valuefunct": [41, 52], "createv8modul": [41, 63], "issourcetextmodul": [41, 63], "issyntheticmodul": [41, 63], "invokeinteg": 41, "speed": 42, "popular": 42, "pre": 42, "cook": 42, "meal": 42, "re": [42, 56, 64, 67], "hungri": 42, "deploy": 42, "captur": [42, 75], "primari": 42, "usag": [42, 81], "smaller": 42, "mitig": 42, "harder": 42, "malici": [42, 43, 49], "subset": 42, "suitabl": [42, 74], "v8runtimeopt": [42, 58], "setcreatesnapshoten": [42, 63], "setsnapshotblob": [42, 63], "blob": 42, "snapshotblob1": 42, "snapshotblob2": 42, "createsnapshot": [42, 63], "usabl": 42, "subtract": 42, "technic": [42, 52, 76], "difficulti": 42, "toolkit": 42, "variant": 42, "label": 42, "extra": [42, 81], "1m": 42, "assembli": 42, "direct": 42, "298k": 42, "745k": 42, "28": [42, 57, 60, 63], "previou": [42, 52], "obtain": 43, "pass": [43, 57], "dangl": [43, 61], "ey": 43, "stage": 43, "prohibit": 43, "uncertain": 43, "acquir": [43, 46, 81], "eval": [43, 52], "impact": [43, 52], "unhandl": 43, "whose": 43, "style": 45, "statist": [45, 58], "101": 46, "osnotsupport": 46, "102": 46, "librarynotfound": 46, "103": 46, "librarynotload": 46, "104": 46, "notsupport": 46, "failedtoreadpath": 46, "201": 46, "compilationfailur": 46, "301": 46, "executionfailur": 46, "302": 46, "executiontermin": 46, "termin": [46, 47], "continu": 46, "401": 46, "callbacksignatureparametersizemismatch": 46, "mismatch": 46, "paramet": [46, 52], "expectedparameters": 46, "actualparameters": 46, "402": 46, "callbacksignatureparametertypemismatch": 46, "expectedparametertyp": 46, "actualparametertyp": 46, "403": 46, "callbackinjectionfailur": 46, "404": 46, "callbackregistrationfailur": 46, "405": 46, "callbackmethodfailur": 46, "406": 46, "callbackunknownfailur": 46, "unknown": 46, "407": [46, 57], "callbackunregistrationfailur": 46, "unregistr": 46, "408": [46, 62], "callbacktypenotsupport": [46, 62], "callbacktyp": 46, "501": 46, "converterfailur": 46, "502": 46, "convertercircularstructur": 46, "503": [46, 57], "convertersymbolnotbuiltin": 46, "601": 46, "modulenameempti": 46, "empti": 46, "602": [46, 57], "modulenotfound": 46, "modulenam": 46, "603": [46, 57], "modulepermissiondeni": 46, "deni": 46, "701": 46, "lockacquisitionfailur": 46, "702": 46, "lockreleasefailur": 46, "703": 46, "lockconflictthreadidmismatch": 46, "lockedthreadid": 46, "currentthreadid": 46, "801": 46, "runtimealreadyclos": 46, "802": 46, "runtimealreadyregist": 46, "803": 46, "runtimenotregist": 46, "804": 46, "runtimeleakagedetect": 46, "805": [46, 57], "runtimeclosefailur": 46, "806": [46, 58], "runtimeoutofmemori": 46, "heapstatist": 46, "807": 46, "runtimecreatesnapshotdis": [46, 63], "808": 46, "runtimecreatesnapshotblock": [46, 63], "callbackcontextcount": 46, "referencecount": 46, "v8modulecount": 46, "901": [46, 59], "enginenotavail": [46, 59], "hell": [48, 78], "3rd": [48, 52], "parti": [48, 52], "interfac": [48, 53, 81], "slf4j": 48, "org": [48, 73], "loggerfactori": 48, "myjavetlogg": [48, 78], "isdebugen": 48, "info": [48, 60], "isinfoen": 48, "iswarnen": 48, "javetlogg": 48, "testlogg": 48, "setjavetlogg": [48, 78], "ijavetengineguard": [49, 55], "ijavetenginepool": [49, 70, 78], "guard": 49, "getguard": 49, "10000": 49, "infinit": [49, 75], "javetterminatedexcept": 49, "mark": 49, "iscontinu": 49, "dead": 49, "afterward": [49, 53], "hang": 49, "till": 49, "timeout": [49, 53], "cancel": 49, "monitor": 49, "daemonthread": 49, "isinus": [49, 55], "timeunit": [49, 67], "sleep": [49, 67], "interruptedexcept": [49, 67], "terminateexecut": [49, 55, 81], "var": [49, 52, 67], "greater": 49, "javetengineguard": [49, 56], "interrupt": 49, "disableindebugmod": [49, 56], "enableindebugmod": [49, 56], "getlength": 51, "getsiz": 51, "getkei": 51, "getentri": 51, "foreach": [51, 55, 62], "biconsum": 51, "weakmap": 51, "weakset": 51, "atomicinteg": 51, "v8valueinteg": [51, 52, 65], "getandincr": 51, "popinteg": 51, "preserv": 51, "v8valuestr": [51, 65], "getjsfunctiontyp": [52, 56], "invis": 52, "stori": 52, "closur": 52, "goal": 52, "iv8valueobject": [52, 55, 56, 57, 60, 62], "caller": [52, 53], "scan": 52, "input": [52, 65, 69, 75], "receiv": [52, 53, 57, 65], "functioncallbackreceiv": 52, "tricki": 52, "charm": 52, "generatearraywithconvert": 52, "intrud": 52, "untouch": 52, "situat": 52, "v8runtimesett": 52, "generatearraywithoutconvert": 52, "declar": [52, 78, 81], "annotationbasedcallbackreceiv": 52, "stringvalu": 52, "getstringvalu": 52, "setstringvalu": 52, "echo": 52, "mathadd": 52, "recogn": [52, 65], "v8valuearrai": 52, "createv8valuearrai": 52, "staticecho": 52, "setv8runtim": 52, "tojsonstr": 52, "testopt": 52, "optionalstr": 52, "teststream": 52, "filter": 52, "thisobjectrequir": [52, 57], "specifi": [52, 81], "thisobject": 52, "bodi": [52, 65, 67], "especi": [52, 70, 81], "simpli": [52, 65], "symboltyp": 52, "v8valuesymboltyp": 52, "v8bindingenabl": [52, 57], "disabledfunct": 52, "disabledproperti": 52, "isv8bindingen": 52, "arbitrarymethod": 52, "whether": [52, 57], "refactor": [52, 56, 57, 58, 59], "friendli": [52, 81], "javetreflectionutil": [52, 57], "getmethodnamefromlambda": [52, 57], "getmethodnamesetfromlambda": [52, 57], "firstli": 52, "disabledfunctionset": 52, "supplier": 52, "serializ": 52, "secondli": 52, "est": 52, "tr\u00e8": 52, "bien": 52, "unbind": [52, 57, 81], "unbindproperti": [52, 57, 62], "unbindfunct": [52, 57, 62], "ijavetanonymous1": 52, "testfunct": 52, "testproperti": 52, "ijavetanonymous2": 52, "javetentityfunct": [52, 57], "jsfunctiontyp": 52, "userdefin": 52, "mockcallbackreceiv": 52, "blank": 52, "iscal": 52, "happi": 52, "mirror": 52, "anonym": [52, 64], "getsourcecod": [52, 56], "setsourcecod": [52, 56], "sourcecod": 52, "existingsourcecod": 52, "startposit": 52, "endposit": 52, "getposit": 52, "newsourcecod": 52, "setposit": 52, "len": 52, "radic": 52, "rough": 52, "layout": 52, "remain": 52, "accordingli": 52, "invoc": 52, "pseudo": [52, 53, 67], "originalsourcecod": 52, "getjsscopetyp": 52, "isclass": 52, "indic": 52, "callvoid": [52, 67], "isfunct": 52, "incorrect": 52, "malform": 52, "keyword": 52, "discard": 52, "createv8valuestr": [52, 56], "toclon": [52, 60], "abov": 52, "intvalu": 52, "valueof": 52, "createv8valueinteg": [52, 65], "safeti": 52, "sentenc": [52, 81], "belong": 52, "prototyp": 52, "combin": 52, "func": 52, "callobject": 52, "callprimit": 52, "callasconstructor": [52, 55, 77], "itself": 52, "invokevoid": [52, 65], "invokeobject": [52, 68], "invokeprimit": 52, "despit": 52, "deficit": 52, "quot": 52, "getcontext": [52, 58], "setcontext": 52, "copyscopeinfofrom": [52, 60], "anoth": [52, 64, 77], "setscriptsourc": [52, 60], "lexic": 52, "jsfunction": 52, "ecma": 52, "262": 52, "speak": 52, "parallel": 52, "slot": 52, "scope_info": 52, "describ": 52, "lookup": 52, "presenc": 52, "scopeinfo": [52, 60], "hascontextextensionslot": 52, "search": 52, "purpos": 52, "henc": 52, "sloppi": 52, "inner": [52, 58], "fast": 52, "harmoni": 52, "scriptcontext": 52, "rather": 52, "functioncontext": 52, "gather": 52, "scriptcontextt": 52, "toler": 52, "natur": [52, 53], "strongli": [52, 65], "conform": 52, "throughout": 52, "samplewithoutthi": 52, "samplewiththi": 52, "excess": 52, "behav": 52, "redund": 52, "fill": 52, "due": 53, "multi": [53, 70, 81], "friend": 53, "iv8valuepromis": [53, 60], "ownership": 53, "chart": 53, "v8valuepromis": [53, 56, 57], "icallback": 53, "oncatch": 53, "v8valueerror": [53, 63], "onfulfil": 53, "fulfil": 53, "onreject": 53, "manner": [53, 81], "filecont": 53, "filepath": 53, "v8valuepromiseresolv": 53, "createv8valuepromis": 53, "getpromis": 53, "getfilecont": 53, "getfilepath": 53, "createv8valueundefin": 53, "print": [53, 69, 75], "rais": 53, "setpromiserejectcallback": 53, "ijavetpromiserejectcallback": 53, "unhandledreject": 53, "handi": 53, "mainstream": 54, "v11": [54, 73], "mainten": [54, 57], "v18": [54, 61, 62], "v10": [54, 63], "v16": [54, 59], "v9": [54, 73], "v0": [54, 55, 56, 57, 73, 81], "v14": [54, 56, 57], "critic": 54, "bug": [54, 56, 58, 59, 60, 61, 62, 81], "deprec": [55, 56], "v8valueweakmap": 55, "v8valueweakset": 55, "setfunct": [55, 56], "functionnam": 55, "strictequ": 55, "samevalu": 55, "iv8valu": [55, 56, 60, 63], "getidentityhash": 55, "iv8valuerefer": 55, "isdead": 55, "view": 55, "2021": [55, 56, 57, 58, 81], "02": [55, 56, 59, 60, 63], "renam": [56, 57, 60, 62], "ijavetconsum": 56, "ijavetuniconsum": 56, "ijavetuniindexedconsum": 56, "ijavetbiindexedconsum": 56, "v8functioncallback": [56, 62], "bindfunct": [56, 62], "bindproperti": [56, 62], "checkreturnvalu": 56, "organ": 56, "iv8valuefunct": [56, 57, 60], "emit": 56, "univers": 56, "createv8valuedoubl": 56, "createv8valuezoneddatetim": 56, "javeterror": [56, 59, 63], "gcbeforeengineclos": 56, "javetcallbackexcept": 56, "isnullorundefin": 56, "06": [56, 57, 59, 62], "257": 56, "idlenotificationdeadlin": 56, "disablegcnotif": 56, "autosendgcnotif": 56, "javetcallbackcontext": [56, 62], "javetpromiserejectcallback": 56, "allowev": 56, "v8script": [56, 60], "v8bindenabl": 57, "v8virtualescapablevalu": 57, "146": [57, 58], "09": [57, 58, 60, 62, 63], "hasinternaltyp": 57, "isgeneratorobject": 57, "isgeneratorfunct": 57, "isasyncfunct": 57, "v8flag": 57, "v8valuesharedarraybuff": 57, "unregistercustomobject": 57, "javadoc": 57, "08": [57, 59, 62], "31": 57, "345": 57, "v8valuebuiltinsymbol": 57, "getownpropertysymbol": 57, "v8valuebuiltinobject": [57, 63], "createv8valuesymbol": 57, "javetvirtualobject": 57, "javetuniversalproxyhandl": 57, "isclos": 57, "07": [57, 59, 61, 62], "29": [57, 73], "staticclassen": 57, "ownkei": 57, "iv8valueproxi": 57, "v8valueproxi": 57, "gettarget": 57, "gethandl": 57, "isrevok": 57, "revok": 57, "createv8valueproxi": 57, "230": 57, "19": [57, 58], "getprototyp": 57, "setprototyp": 57, "01": [57, 58, 59, 60, 63], "iv8moduleresolv": 57, "nodemoduleprocess": 57, "getvers": 57, "15": [57, 59, 60, 61, 63], "05": [57, 59, 62], "269": 57, "12": [58, 60, 61, 62], "106": 58, "javetcompilationexcept": 58, "convent": 58, "agnost": 58, "getdetailedmessag": [58, 63], "getstack": 58, "javetscriptingerror": [58, 63], "adjust": 58, "capac": 58, "observ": 58, "v8runtimeobserveraveragecallbackcontextcount": 58, "v8runtimeobserveraveragereferencecount": 58, "v8runtimeobserveraveragev8modulecount": 58, "v8convert": 58, "180": 58, "javetoutofmemoryexcept": 58, "awai": 58, "haspendingexcept": 58, "haspendingmessag": 58, "hasscheduledexcept": 58, "promotescheduledexcept": 58, "reportpendingmessag": 58, "addgcepiloguecallback": 58, "addgcprologuecallback": 58, "removegcepiloguecallback": 58, "removegcprologuecallback": 58, "172": [58, 63], "22": [58, 63, 73], "v8intern": 58, "clean": [58, 64], "methodhandl": 58, "cast": 58, "mistakenli": 58, "218": 59, "handler": [59, 67], "132": 59, "improp": [59, 63], "waitforenginemaxretrycount": 59, "174": 59, "pend": [59, 67], "andoird": 59, "v8valuebiginteg": 59, "154": 59, "ispurgeeventloopbeforeclos": 59, "setpurgeeventloopbeforeclos": [59, 67], "124": [59, 74], "03": [59, 60, 61], "139": 59, "115": 59, "createv8valuearraybuff": 59, "177": 59, "r23b": 59, "abi": [59, 61, 73], "libgcc": 59, "libstdc": 59, "cento": 59, "226": 60, "verifynostrongbaseobject": 60, "ilisten": 60, "v8awaitmod": 60, "194": 60, "compilev8valuefunct": 60, "getcacheddata": 60, "iswrap": 60, "getargu": 60, "cacheddata": 60, "v8stringexecutor": 60, "168": 60, "revis": 60, "getscopeinfo": 60, "getownpropertynamestr": 60, "referencecopi": 60, "193": 60, "javetuniversalproxi": 60, "javetdynamicproxi": [60, 62], "javetdynamicobjectfactori": 60, "copycontextfrom": 60, "getscriptsourc": 60, "setsourcecodeopt": 60, "iscompil": 60, "candiscardcompil": 60, "discardcompil": 60, "244": 61, "214": 61, "277": 61, "439": 62, "189": 62, "executor": 62, "nativecontext": 62, "150": 62, "ijavetdirectproxyhandl": [62, 63, 65], "v8virtualiter": 62, "javetproxysymboliterableconvert": [62, 63], "183": 62, "receivecallback": 62, "iv8valuemap": 62, "iv8valuearrai": [62, 63], "batchget": 62, "javetcallbacktyp": 62, "ijavetdirectcal": 62, "redesign": 62, "javetreflectionproxi": 62, "2024": 63, "createtargetobject": 63, "proxydeleteproperti": 63, "asboolean": 63, "asdoubl": 63, "asint": [63, 65], "aslong": 63, "asstr": 63, "javetproxypluginarrai": 63, "javetproxypluginclass": 63, "javetproxyplugindefault": 63, "javetproxypluginlist": 63, "javetproxypluginmap": 63, "javetproxypluginset": 63, "v8valuebuiltinreflect": 63, "javetentityobject": 63, "javetentitypropertydescriptor": 63, "bindingcontextstor": 63, "classdescriptorstor": 63, "createv8valuestringobject": 63, "createv8valueerror": 63, "throwerror": 63, "v8valuebooleanobject": 63, "v8valuedoubleobject": 63, "v8valueintegerobject": 63, "v8valuelongobject": 63, "v8valuestringobject": 63, "v8valueerrortyp": 63, "v8errortempl": 63, "javetentityerror": 63, "geterrortyp": 63, "isproxyarrayen": 63, "setproxyarrayen": 63, "proxygetownpropertydescriptor": 63, "getownpropertydescriptor": 63, "basejavetreflectionproxyhandl": 63, "flat": 63, "asarrai": 63, "clear": 63, "v8valuemap": 63, "v8valueset": 63, "swap": 63, "getmessag": [63, 75], "javetproxysymboltoprimitiveconvert": 63, "executeprimit": 63, "iv8execut": 63, "285": 63, "downgrad": 63, "temporari": 63, "knostdioiniti": 63, "knodefaultsignalhandl": 63, "basejavetconsoleinterceptor": 63, "javetjvminterceptor": [63, 64], "iscreatesnapshoten": 63, "getsnapshotblob": 63, "runtimeopt": 63, "isproxylisten": 63, "arrayutil": 63, "collectionutil": 63, "cdtshell": 63, "267": 63, "169": 63, "freez": 63, "sb": 64, "abc123": 64, "instanti": 64, "meta": 64, "javax": 64, "runnabl": 64, "coupl": 64, "necessari": [64, 70], "dispos": 64, "unregist": [64, 70, 74], "door": [64, 67], "hotfix": [64, 81], "leaf": 65, "elaps": 65, "leverag": 65, "verbos": [65, 81], "testjavaflavor": 65, "round": 65, "isobject": 65, "isint": 65, "wrapper": 65, "neat": 65, "pure": 65, "testjsflavor": 65, "redirect": [65, 70], "proxyget": 65, "proxyset": 65, "jsonnodewrapp": 65, "requirenonnul": 65, "getjsonnod": 65, "childjsonnod": 65, "v8valueboolean": 65, "propertykei": 65, "propertyvalu": 65, "objectnod": 65, "createv8valueboolean": 65, "testnam": 65, "starttim": 65, "currenttimemilli": 65, "stoptim": 65, "100_000": 65, "interoper": 65, "testscriptjavaflavor": 65, "testscriptjsflavor": 65, "objectmapp": 65, "readtre": 65, "jsonstr": 65, "5950x": 65, "128gb": 65, "22h2": 65, "corretto": 65, "0_282": 65, "19464m": 65, "100000": 65, "5214m": 65, "370": 65, "underli": 65, "spent": 65, "hijack": 67, "seamlessli": 67, "parser": 67, "cooki": 67, "multer": 67, "app": 67, "req": 67, "8991": 67, "testexpress": 67, "codefil": 67, "tofil": 67, "atomicboolean": 67, "serverup": 67, "500": 67, "max_valu": 67, "1000": 67, "awaitmod": 67, "drain_the_task_queu": 67, "pause_the_event_loop": 67, "there_are_more_tasks_in_task_queu": 67, "sleep_a_whil": 67, "resume_the_event_loop": 67, "runonc": 67, "there_are_no_more_task": 67, "timer": 67, "gracefulli": 67, "color": 68, "pink": 68, "awt": 68, "175": 68, "stringarrai": 69, "represent": 69, "stringlist": 69, "assert": 69, "mapx": 69, "mapi": 69, "spawn": 70, "databas": 70, "javetengin": [70, 76], "javetconsoleinterceptor": 70, "famili": 73, "unix": 73, "activebydefault": 73, "operatingsystem": 73, "val": 73, "cpuarch": 73, "getproperti": 73, "ismacosx": 73, "islinux": 73, "aarch64": 73, "cent": 73, "glibc": 73, "mission": 73, "imposs": 73, "guess": 74, "increaseandget": 74, "testintercept": 74, "delta": 74, "testinterceptor": 74, "76": 74, "200": 74, "scanner": 75, "nextlin": 75, "highlight": 76, "javetenginepoo": 76, "loadj": 77, "decimaljsfil": 77, "getabsolutepath": 77, "logerror": 77, "v8valuefunctiondecim": 77, "v8valueobjectdecim": 77, "45": 77, "hasownproperti": 77, "getstr": 77, "bigdecim": 77, "lack": [77, 81], "bean": 78, "propertysourc": 78, "classpath": 78, "configurationproperti": 78, "prefix": 78, "myjavetengineconfig": 78, "javetenginepoolnod": 78, "getjavetenginepoolnod": 78, "javetengineconfignod": 78, "setallowev": 78, "setdefaultengineguardtimeoutmilli": 78, "setengineguardcheckintervalmilli": 78, "setpooldaemoncheckintervalmilli": 78, "setpoolidletimeoutsecond": 78, "setpoolmins": 78, "setpoolmaxs": 78, "setpoolshutdowntimeoutsecond": 78, "setresetenginetimeoutsecond": 78, "javetenginepoolv8": 78, "getjavetenginepoolv8": 78, "javetengineconfigv8": 78, "frequent": 81, "ask": 81, "question": 81, "jan": 81, "publish": 81, "smooth": 81, "took": 81, "week": 81, "abandon": 81, "hierarchi": 81, "inconsist": 81, "repeat": 81, "attent": 81, "mental": 81, "role": 81, "inherit": 81, "liter": 81, "richer": 81, "v8valueprimit": 81, "v8data": 81, "consist": 81, "rich": 81, "pain": 81, "imper": 81, "never": 81, "deliv": 81, "elimin": 81, "rid": 81, "everywher": 81, "shut": 81, "success": 81}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"build": [0, 1, 2, 9], "javet": [0, 1, 2, 4, 6, 7, 13, 18, 23, 27, 38, 39, 41, 42, 58, 70, 71, 75, 81], "environ": [0, 2, 19, 25, 38], "linux": [0, 1, 2, 9, 18, 41, 73], "maco": 0, "window": [0, 1, 2, 9, 41, 73], "android": [0, 1, 2, 58, 73], "variabl": [0, 25, 38], "v8": [0, 1, 4, 6, 15, 25, 40, 41, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 71, 76, 77, 81], "featur": [0, 27, 33], "flag": 0, "from": [1, 13, 31, 32, 38, 40, 81], "scratch": 1, "prepar": [1, 28, 33, 68], "arm64": [1, 2, 58], "x86_64": [1, 57], "mac": [1, 57, 58, 73], "o": [1, 57, 58, 73], "why": [1, 9, 17, 26, 46, 52, 81], "patch": [1, 41], "node": [1, 3, 4, 6, 8, 17, 26, 41, 43, 56, 58, 60, 67, 71, 76, 77, 81], "j": [1, 3, 4, 6, 8, 17, 26, 41, 43, 56, 58, 60, 65, 67, 71, 76, 77, 81], "jni": 1, "librari": [1, 21, 38, 58], "docker": 2, "hub": 2, "github": 2, "express": 2, "full": 2, "multi": [2, 4, 57], "stage": 2, "all": 2, "one": 2, "file": [2, 33, 38], "deprec": 2, "debug": [3, 23, 49, 55], "chrome": [3, 23], "develop": [3, 5, 8, 14], "tool": [3, 8], "cdt": 3, "shell": [3, 75], "1": [3, 25, 39, 40, 48, 55, 56, 57, 58, 59, 60, 61, 62, 63, 67, 71], "run": 3, "2": [3, 25, 39, 40, 48, 52, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67], "script": 3, "3": [3, 8, 40, 55, 56, 57, 58, 59, 60, 61, 62, 63, 67], "open": 3, "4": [3, 55, 56, 57, 58, 59, 60, 62, 63], "usual": 3, "intern": [3, 41], "handshak": 3, "custom": [3, 29, 31, 33, 38, 58], "faq": [3, 20], "doe": [3, 30, 31, 33, 39], "support": [3, 12, 18, 22], "mode": [3, 4, 6, 15, 17, 25, 33, 39, 41, 49, 71, 76, 77], "i": [3, 11, 17, 23, 52, 67], "There": 3, "live": [3, 55], "demo": 3, "design": [4, 29], "architectur": 4, "primit": [4, 32, 56, 81], "refer": [4, 35, 36, 40], "type": [4, 52, 81], "v": [4, 6, 52], "modul": [4, 41, 56, 57, 81], "requir": 4, "import": [4, 41, 52], "virtual": [4, 39], "engin": [4, 43, 49, 55, 70], "pool": [4, 43, 49, 70, 76], "isol": 4, "context": [4, 52], "intercept": [4, 13, 52, 56, 74], "cross": 4, "platform": 4, "process": [4, 57], "safeti": [4, 30, 39], "memori": [4, 40], "leak": 4, "detect": 4, "perform": [6, 39], "comparison": [6, 30, 39, 52], "highlight": [6, 31], "java": [6, 28, 31, 32, 52, 57, 65, 68], "wasm": 6, "benchmark": 6, "improv": 6, "test": [7, 13, 65, 74], "jdk": 8, "intellij": 8, "gradl": [8, 27, 73], "maven": [8, 9, 27, 73], "option": [8, 40], "visual": 8, "studio": 8, "commun": 8, "2022": 8, "python": 8, "8": [8, 56, 57, 59, 60, 63], "histori": 9, "j2v8": [9, 81], "issu": 9, "latest": 9, "version": 9, "onli": 9, "autom": 9, "system": [9, 40], "deploi": [9, 38], "repositori": 9, "background": [10, 26], "what": [11, 39, 52, 67], "motiv": [11, 70], "can": [12, 18, 22, 23, 30, 38, 52], "nativ": [12, 30, 38, 41, 56], "imag": 12, "how": [13, 28, 31, 33, 40, 42, 49, 52, 67], "think": 13, "v8runtim": [13, 40, 81], "v8valueglobalobject": 13, "executor": 13, "execut": 13, "declar": [13, 56], "function": [13, 30, 33, 52, 56, 57], "properti": [13, 52, 56, 57], "learn": 13, "unit": 13, "where": [15, 16], "ar": [15, 16], "es6": [15, 81], "api": [15, 36], "exampl": [16, 41, 53], "inspector": 17, "disabl": [17, 52], "legaci": 18, "A": 21, "dynam": [21, 33, 41, 64], "link": 21, "dll": 21, "initi": [21, 25], "routin": 21, "fail": 21, "i18n": 22, "devtool": 23, "troubleshoot": [24, 47], "sigsegv": 25, "createv8runtim": 25, "aw": 25, "symptom": 25, "analysi": 25, "solut": [25, 26], "enforc": 25, "set": [25, 33, 52], "javet_disable_pku": 25, "crash": 26, "when": [26, 30], "being": 26, "close": [26, 67], "root": 26, "caus": 26, "event": [26, 56], "unhandledreject": 26, "noderuntim": 26, "await": [26, 40], "lowmemorynotif": [26, 40], "major": 27, "quick": 27, "start": 27, "depend": [27, 73], "kotlin": [27, 73], "dsl": [27, 73], "groovi": [27, 73], "hello": [27, 71], "sponsor": 27, "licens": 27, "blog": 27, "document": 27, "bridg": 28, "convert": [28, 29, 30, 31, 32, 33, 57, 69], "usag": [28, 31, 33, 40, 51, 70, 76], "boolean": [28, 52], "int": 28, "arrai": [28, 69], "integ": 28, "list": [28, 33, 45, 69], "long": [28, 40], "unmodifi": 28, "string": [28, 52], "cast": 28, "object": [28, 29, 30, 31, 33, 52, 64, 69], "javascript": [28, 31, 32, 52, 67, 68], "pojo": 29, "defin": [29, 52], "creat": [29, 34, 42], "pojoconvert": 29, "readi": 29, "go": 29, "insid": 30, "bind": [30, 52], "via": [30, 42], "proxi": [30, 33, 34, 57], "null": 30, "circular": 30, "structur": 30, "config": 30, "take": [30, 38], "effect": 30, "built": [30, 34, 41], "ignor": 30, "regist": [31, 53], "enhanc": 31, "It": 31, "work": [31, 33, 42], "instanc": 33, "map": [33, 52, 69], "path": 33, "static": [33, 68], "stringbuild": [33, 64, 68], "pattern": [33, 68], "enum": [33, 68], "interfac": [33, 57, 64], "anonym": [33, 57], "class": [33, 68], "v8convert": 33, "v8properti": [33, 74], "name": 33, "v8function": [33, 74, 81], "javetproxyconvert": 33, "plugin": 34, "javetproxyplugindefault": 34, "javetproxypluginarrai": 34, "javetproxypluginlist": 34, "javetproxypluginmap": 34, "javetproxypluginset": 34, "add": 34, "remov": [34, 38], "new": 34, "resourc": [37, 40, 43, 52], "manag": [37, 40, 43, 52], "load": [38, 41, 58], "unload": 38, "On": [38, 41], "demand": [38, 41], "locat": 38, "deploy": 38, "skip": 38, "alreadi": 38, "anoth": 38, "classload": [38, 57], "suppress": 38, "lib": 38, "listen": 38, "jar": 38, "know": 39, "lock": 39, "mean": 39, "implicit": 39, "explicit": 39, "thread": [39, 43, 67], "coroutin": 39, "challeng": 40, "jvm": [40, 64], "gc": [40, 56], "c": 40, "runtim": 40, "recommend": 40, "automat": [40, 49, 52], "try": 40, "weak": 40, "escap": 40, "without": 40, "altern": 40, "arraybuff": 40, "passiv": 40, "aggress": 40, "manual": [40, 41, 49, 52], "idlenotificationdeadlin": 40, "deadlineinmilli": 40, "runfin": 40, "v8flag": 40, "statist": 40, "modular": 41, "gap": 41, "between": 41, "deal": 41, "elf": 41, "rebuild": 41, "pre": 41, "synthet": 41, "snapshot": 42, "benefit": 42, "limit": 42, "mksnapshot": 42, "best": 43, "practic": 43, "secur": 43, "tip": [44, 52], "todo": 45, "error": [46, 56], "code": [46, 52, 56], "backward": 46, "compat": [46, 73], "log": 48, "step": [48, 67], "implement": 48, "ijavetlogg": 48, "inject": [48, 68, 78], "logger": 48, "termin": 49, "about": [49, 52], "valu": [50, 52], "collect": 51, "v8valuearrai": 51, "v8valueset": 51, "v8valuemap": 51, "registr": 52, "convers": [52, 56, 81], "thi": 52, "pass": 52, "symbol": 52, "unregist": 52, "both": 52, "One": 52, "bindfunct": 52, "functionnam": 52, "javetcallbackcontext": 52, "kei": 52, "v8valu": 52, "codestr": 52, "mismatch": 52, "summari": [52, 64], "chang": 52, "user": 52, "fly": 52, "sourc": [52, 56], "call": 52, "invok": 52, "scope": [52, 57], "info": 52, "avoid": 52, "argument": 52, "handl": 52, "count": 52, "promis": [53, 57], "resolv": [53, 57], "lifecycl": 53, "callback": 53, "f": 53, "readfileasync": 53, "unhandl": 53, "reject": 53, "releas": [54, 55, 56, 57, 58, 59, 60, 61, 62, 63], "note": [54, 55, 56, 57, 58, 59, 60, 61, 62, 63], "0": [55, 56, 57, 58, 59, 60, 61, 62, 63], "7": [55, 56, 57, 58, 59, 60, 62], "x": [55, 56, 57, 58, 59, 60, 61, 62, 63], "locker": 55, "guard": 55, "bug": 55, "fix": 55, "birth": 55, "9": [55, 56, 57, 58, 59, 60, 63], "10": [56, 57, 60], "index": 56, "foreach": 56, "hotfix": 56, "6": [56, 57, 58, 59, 62], "loop": 56, "5": [56, 57, 58, 59, 62], "v9": [56, 57, 58, 59], "first": [56, 58], "time": [56, 58], "14": 57, "13": 57, "12": 57, "privat": 57, "11": 57, "polyfil": [57, 77], "empow": 57, "v2": 57, "v1": 57, "safe": 57, "core": 58, "abi": 58, "21": 58, "v16": 58, "v10": [59, 60], "v11": [60, 61, 62, 63], "v18": 60, "v12": 63, "access": 64, "whole": 64, "plai": 64, "cleanup": 64, "expos": 65, "jsonnod": 65, "approach": 65, "flavor": 65, "direct": 65, "exposur": 65, "wrap": 65, "conclus": 65, "advanc": 66, "interact": 67, "That": 67, "possibl": 67, "server": 67, "worker": 67, "main": 67, "If": 67, "hang": 67, "dure": 67, "interop": 68, "an": 68, "goal": 70, "print": 71, "basic": 72, "instal": 73, "sampl": 74, "co": 76, "exist": 76, "v8host": 76, "decim": 77, "spring": 78, "integr": 78, "configur": 78, "tutori": 79, "migrat": [80, 81], "guid": [80, 81], "registerjavamethod": 81, "v8locker": 81, "bless": 81}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"Build Javet": [[0, "build-javet"], [1, "build-javet"], [1, "id1"]], "Build Environment": [[0, "build-environment"], [2, "build-environment"]], "Linux Environment": [[0, "linux-environment"], [2, "linux-environment"]], "MacOS Environment": [[0, "macos-environment"]], "Windows Environment": [[0, "windows-environment"], [2, "windows-environment"]], "Android Environment": [[0, "android-environment"]], "Environment Variables": [[0, "environment-variables"]], "V8 Feature Flags": [[0, "v8-feature-flags"]], "Build Javet from Scratch": [[1, "build-javet-from-scratch"]], "Build V8": [[1, "build-v8"]], "Prepare V8": [[1, "prepare-v8"]], "Build V8 for Linux arm64": [[1, "build-v8-for-linux-arm64"]], "Build V8 for Linux x86_64": [[1, "build-v8-for-linux-x86-64"]], "Build V8 for Mac OS arm64": [[1, "build-v8-for-mac-os-arm64"]], "Build V8 for Mac OS x86_64": [[1, "build-v8-for-mac-os-x86-64"]], "Build V8 for Windows": [[1, "build-v8-for-windows"]], "Build V8 for Android": [[1, "build-v8-for-android"]], "Why Patching V8?": [[1, "why-patching-v8"]], "Build Node.js": [[1, "build-node-js"]], "Prepare Node.js": [[1, "prepare-node-js"]], "Build Node.js on Linux": [[1, "build-node-js-on-linux"]], "Why Patching Node.js?": [[1, "why-patching-node-js"]], "Build Node.js on Mac OS": [[1, "build-node-js-on-mac-os"]], "Build Node.js on Windows": [[1, "build-node-js-on-windows"]], "Build Javet JNI Library for Android": [[1, "build-javet-jni-library-for-android"]], "Build Javet for Linux, Mac OS and Windows": [[1, "build-javet-for-linux-mac-os-and-windows"]], "Build Javet for Android": [[1, "build-javet-for-android"]], "Build Javet with Docker": [[2, "build-javet-with-docker"]], "Docker Hub and Github": [[2, "docker-hub-and-github"]], "Build Javet for Linux on Linux or Windows": [[2, "build-javet-for-linux-on-linux-or-windows"]], "Express Build": [[2, "express-build"]], "Full Build - Multi-staged": [[2, "full-build-multi-staged"]], "Full Build - All-in-one": [[2, "full-build-all-in-one"]], "Build Javet for Windows on Windows": [[2, "build-javet-for-windows-on-windows"]], "Build Javet for Android on Linux or Windows": [[2, "build-javet-for-android-on-linux-or-windows"]], "Linux arm64 Docker Files Deprecated": [[2, "linux-arm64-docker-files-deprecated"]], "Debug with Chrome Developer Tools": [[3, "debug-with-chrome-developer-tools"]], "CDT Shell": [[3, "cdt-shell"]], "1. Run CDT Shell": [[3, "run-cdt-shell"]], "2. Run Script in CDT Shell": [[3, "run-script-in-cdt-shell"]], "3. Open CDT": [[3, "open-cdt"]], "4. Debug as Usual": [[3, "debug-as-usual"]], "Chrome Developer Tools Internals": [[3, "chrome-developer-tools-internals"]], "Handshake": [[3, "handshake"]], "Customization": [[3, "customization"]], "FAQs": [[3, "faqs"]], "Does it Support Node.js Mode?": [[3, "does-it-support-node-js-mode"]], "Is There a Live Demo?": [[3, "is-there-a-live-demo"]], "Javet Design": [[4, "javet-design"]], "Architecture": [[4, "architecture"]], "Primitive and Reference Types in Javet": [[4, "primitive-and-reference-types-in-javet"]], "Node.js Mode vs. V8 Mode": [[4, "node-js-mode-vs-v8-mode"]], "Module": [[4, "module"]], "require() vs. import()": [[4, "require-vs-import"]], "Module Virtualization": [[4, "module-virtualization"]], "Engine Pool": [[4, "engine-pool"]], "V8 Isolate and Context in Javet": [[4, "v8-isolate-and-context-in-javet"]], "Javet Engine Pool": [[4, "javet-engine-pool"], [70, "javet-engine-pool"]], "Interception": [[4, "interception"], [74, "interception"]], "Cross-platform": [[4, "cross-platform"]], "Multi-process Safety": [[4, "multi-process-safety"]], "Memory Leak Detection": [[4, "memory-leak-detection"]], "Development": [[5, "development"], [14, "development"]], "Javet Performance": [[6, "javet-performance"]], "Performance Comparisons of Node.js Mode and V8 Mode": [[6, "performance-comparisons-of-node-js-mode-and-v8-mode"]], "Highlights": [[6, "highlights"], [31, "highlights"]], "Java VS Wasm Benchmarks": [[6, "java-vs-wasm-benchmarks"]], "Javet Performance Improvements": [[6, "javet-performance-improvements"]], "Test Javet": [[7, "test-javet"]], "Development Tools": [[8, "development-tools"]], "JDK": [[8, "jdk"]], "IntelliJ": [[8, "intellij"]], "Gradle": [[8, "gradle"]], "Node.js": [[8, "node-js"], [43, "node-js"]], "Maven (Optional)": [[8, "maven-optional"]], "Visual Studio Community 2022 (Optional)": [[8, "visual-studio-community-2022-optional"]], "Python 3.8+ (Optional)": [[8, "python-3-8-optional"]], "History with J2V8": [[9, "history-with-j2v8"]], "J2V8 Issues": [[9, "j2v8-issues"]], "J2V8 Latest Version": [[9, "j2v8-latest-version"]], "Why Windows and Linux only?": [[9, "why-windows-and-linux-only"]], "Why not Automate the J2V8 Build System?": [[9, "why-not-automate-the-j2v8-build-system"]], "Why not Deploy J2V8 to Maven Repository?": [[9, "why-not-deploy-j2v8-to-maven-repository"]], "Background": [[10, "background"], [26, "background"]], "What is the Motivation?": [[11, "what-is-the-motivation"]], "Can Native Image be Supported?": [[12, "can-native-image-be-supported"]], "How to Think in Javet?": [[13, "how-to-think-in-javet"]], "V8Runtime and V8ValueGlobalObject": [[13, "v8runtime-and-v8valueglobalobject"]], "V8Runtime": [[13, "v8runtime"]], "V8ValueGlobalObject": [[13, "v8valueglobalobject"]], "Executor and Execute": [[13, "executor-and-execute"]], "Declarative Function and Property Interception": [[13, "declarative-function-and-property-interception"]], "Learn from Unit Test": [[13, "learn-from-unit-test"]], "Where are ES6 API in V8 Mode?": [[15, "where-are-es6-api-in-v8-mode"]], "Where are the Examples?": [[16, "where-are-the-examples"]], "Why is the Inspector Disabled in Node.js Mode?": [[17, "why-is-the-inspector-disabled-in-node-js-mode"]], "Can Javet Support Legacy Linux?": [[18, "can-javet-support-legacy-linux"]], "Environment": [[19, "environment"]], "FAQ": [[20, "faq"]], "A dynamic link library (DLL) initialization routine failed": [[21, "a-dynamic-link-library-dll-initialization-routine-failed"]], "Can i18n be Supported?": [[22, "can-i18n-be-supported"]], "Can I Debug Javet in Chrome DevTools?": [[23, "can-i-debug-javet-in-chrome-devtools"]], "Troubleshooting": [[24, "troubleshooting"], [47, "troubleshooting"]], "SIGSEGV at createV8Runtime() in V8 Mode on AWS": [[25, "sigsegv-at-createv8runtime-in-v8-mode-on-aws"]], "Symptoms": [[25, "symptoms"]], "Analysis": [[25, "analysis"]], "Solutions": [[25, "solutions"]], "Solution 1: Enforce the Initialization": [[25, "solution-1-enforce-the-initialization"]], "Solution 2: Set Environment Variable JAVET_DISABLE_PKU": [[25, "solution-2-set-environment-variable-javet-disable-pku"]], "Why Node.js Crashes When being Closed?": [[26, "why-node-js-crashes-when-being-closed"]], "Root Cause": [[26, "root-cause"]], "Solution": [[26, "solution"]], "Event unhandledRejection": [[26, "event-unhandledrejection"]], "NodeRuntime.await()": [[26, "noderuntime-await"]], "NodeRuntime.lowMemoryNotification()": [[26, "noderuntime-lowmemorynotification"]], "Javet": [[27, "javet"]], "Major Features": [[27, "major-features"]], "Quick Start": [[27, "quick-start"]], "Dependency": [[27, "dependency"], [73, "dependency"]], "Maven": [[27, "maven"], [73, "maven"]], "Gradle Kotlin DSL": [[27, "gradle-kotlin-dsl"], [73, "gradle-kotlin-dsl"]], "Gradle Groovy DSL": [[27, "gradle-groovy-dsl"], [73, "gradle-groovy-dsl"]], "Hello Javet": [[27, "hello-javet"], [71, "hello-javet"]], "Sponsors": [[27, "sponsors"]], "License": [[27, "license"]], "Blog": [[27, "blog"]], "Documents": [[27, "documents"]], "Bridge Converter": [[28, "bridge-converter"]], "Usage": [[28, "usage"], [31, "usage"], [33, "usage"], [51, "usage"], [70, "usage"], [76, "usage"]], "Preparation": [[28, "preparation"], [33, "preparation"], [68, "preparation"]], "Boolean": [[28, "boolean"]], "int": [[28, "int"]], "int Array": [[28, "int-array"]], "Integer List": [[28, "integer-list"]], "Long Unmodifiable List": [[28, "long-unmodifiable-list"]], "String Array": [[28, "string-array"]], "How to Cast Java Objects to JavaScript Objects?": [[28, "how-to-cast-java-objects-to-javascript-objects"]], "Custom Converter": [[29, "custom-converter"]], "Design a POJO Converter": [[29, "design-a-pojo-converter"]], "Define POJO Object": [[29, "define-pojo-object"]], "Create PojoConverter": [[29, "create-pojoconverter"]], "Ready! Go!": [[29, "ready-go"]], "Converters": [[30, "converters"]], "Comparisons": [[30, "comparisons"], [39, "comparisons"], [52, "comparisons"]], "Inside Converters": [[30, "inside-converters"]], "Binding via Native": [[30, "binding-via-native"]], "Binding via Proxy": [[30, "binding-via-proxy"]], "Null Safety": [[30, "null-safety"]], "Functions and Objects": [[30, "functions-and-objects"]], "Circular Structure": [[30, "circular-structure"]], "When does the Config Take Effect?": [[30, "when-does-the-config-take-effect"]], "Can Built-in Converter be Ignored?": [[30, "can-built-in-converter-be-ignored"]], "Object Converter": [[31, "object-converter"], [69, "object-converter"]], "From Java to JavaScript": [[31, "from-java-to-javascript"], [32, "from-java-to-javascript"]], "From JavaScript to Java": [[31, "from-javascript-to-java"], [32, "from-javascript-to-java"]], "Register Custom Objects": [[31, "register-custom-objects"]], "Enhance the Custom Object": [[31, "enhance-the-custom-object"]], "Register the Custom Object": [[31, "register-the-custom-object"]], "How does It Work?": [[31, "how-does-it-work"]], "Primitive Converter": [[32, "primitive-converter"]], "Proxy Converter": [[33, "proxy-converter"]], "Instance: File": [[33, "instance-file"]], "Instance: List": [[33, "instance-list"]], "Instance: Map": [[33, "instance-map"]], "Instance: Path": [[33, "instance-path"]], "Instance: Set": [[33, "instance-set"]], "Static: StringBuilder": [[33, "static-stringbuilder"]], "Static: Pattern": [[33, "static-pattern"]], "Static: Enum": [[33, "static-enum"]], "Static: Interface": [[33, "static-interface"]], "Dynamic: Anonymous Function": [[33, "dynamic-anonymous-function"]], "Dynamic: Anonymous Object for Interface": [[33, "dynamic-anonymous-object-for-interface"]], "Dynamic: Anonymous Object for Class": [[33, "dynamic-anonymous-object-for-class"]], "Features": [[33, "features"]], "@V8Convert::mode": [[33, "v8convert-mode"]], "@V8Property::name": [[33, "v8property-name"]], "@V8Function::name": [[33, "v8function-name"]], "How does JavetProxyConverter Work?": [[33, "how-does-javetproxyconverter-work"]], "How to Customize JavetProxyConverter?": [[33, "how-to-customize-javetproxyconverter"]], "Proxy Plugins": [[34, "proxy-plugins"]], "Built-in Proxy Plugins": [[34, "built-in-proxy-plugins"]], "JavetProxyPluginDefault": [[34, "javetproxyplugindefault"]], "JavetProxyPluginArray": [[34, "javetproxypluginarray"]], "JavetProxyPluginList": [[34, "javetproxypluginlist"]], "JavetProxyPluginMap": [[34, "javetproxypluginmap"]], "JavetProxyPluginSet": [[34, "javetproxypluginset"]], "Add or Remove Proxy Plugins": [[34, "add-or-remove-proxy-plugins"]], "Create a New Proxy Plugin": [[34, "create-a-new-proxy-plugin"]], "Reference": [[35, "reference"]], "API Reference": [[36, "api-reference"]], "Resource Management": [[37, "resource-management"], [43, "resource-management"], [52, "resource-management"]], "Load and Unload": [[38, "load-and-unload"]], "Can Javet Native Library be Loaded or Unloaded On-demand?": [[38, "can-javet-native-library-be-loaded-or-unloaded-on-demand"]], "Unload": [[38, "unload"]], "Load": [[38, "load"]], "Can Javet Native Library be Deployed to a Custom Location?": [[38, "can-javet-native-library-be-deployed-to-a-custom-location"]], "Can Javet Native Library Deployment be Skipped?": [[38, "can-javet-native-library-deployment-be-skipped"]], "Can already loaded in another classloader be Suppressed?": [[38, "can-already-loaded-in-another-classloader-be-suppressed"]], "Can Javet Lib Loading Listener Take Environment Variables?": [[38, "can-javet-lib-loading-listener-take-environment-variables"]], "Can Javet Libraries be Removed from the Jar File?": [[38, "can-javet-libraries-be-removed-from-the-jar-file"]], "Know the Lock": [[39, "know-the-lock"]], "What does Lock Mean in Javet?": [[39, "what-does-lock-mean-in-javet"]], "1. Implicit Mode": [[39, "implicit-mode"]], "2. Explicit Mode": [[39, "explicit-mode"]], "Performance": [[39, "performance"]], "Thread-safety": [[39, "thread-safety"]], "Coroutines or Virtual Threads": [[39, "coroutines-or-virtual-threads"]], "Memory Management": [[40, "memory-management"]], "3 Challenges in Memory Management": [[40, "challenges-in-memory-management"]], "JVM GC": [[40, "jvm-gc"]], "C++ Runtime": [[40, "c-runtime"]], "V8 GC": [[40, "v8-gc"]], "Recommended Options": [[40, "recommended-options"]], "Automatic Management with try-with-resource": [[40, "automatic-management-with-try-with-resource"]], "Automatically Manage with Weak Reference": [[40, "automatically-manage-with-weak-reference"]], "How to Escape from try-with-resource?": [[40, "how-to-escape-from-try-with-resource"]], "Usage 1 without V8 Runtime": [[40, "usage-1-without-v8-runtime"]], "Usage 2 with V8 Runtime": [[40, "usage-2-with-v8-runtime"]], "Alternative Option: ArrayBuffer": [[40, "alternative-option-arraybuffer"]], "GC": [[40, "gc"]], "Automatic GC": [[40, "automatic-gc"]], "Passive GC": [[40, "passive-gc"]], "Aggressive GC": [[40, "aggressive-gc"]], "Manual GC": [[40, "manual-gc"]], "V8Runtime.await()": [[40, "v8runtime-await"]], "V8Runtime.idleNotificationDeadline(long deadlineInMillis)": [[40, "v8runtime-idlenotificationdeadline-long-deadlineinmillis"]], "V8Runtime.lowMemoryNotification()": [[40, "v8runtime-lowmemorynotification"]], "System.gc() and System.runFinalization()": [[40, "system-gc-and-system-runfinalization"]], "V8 Options and V8Flags": [[40, "v8-options-and-v8flags"]], "Statistics": [[40, "statistics"]], "Modularization": [[41, "modularization"]], "Node.js Mode": [[41, "node-js-mode"], [77, "node-js-mode"]], "Example": [[41, "example"]], "Gaps between Javet Node.js Mode and Native Node.js": [[41, "gaps-between-javet-node-js-mode-and-native-node-js"]], "Deal with Native Modules": [[41, "deal-with-native-modules"]], "Patch ELF Native Modules on Linux": [[41, "patch-elf-native-modules-on-linux"]], "Rebuild Native Modules on Windows": [[41, "rebuild-native-modules-on-windows"]], "Manual Patch Native Modules on Windows": [[41, "manual-patch-native-modules-on-windows"]], "Dynamically Import Built-in Modules": [[41, "dynamically-import-built-in-modules"]], "V8 Mode": [[41, "v8-mode"], [77, "v8-mode"]], "Pre-load": [[41, "pre-load"]], "On-demand": [[41, "on-demand"]], "Synthetic Module": [[41, "synthetic-module"]], "Internals": [[41, "internals"]], "Snapshot": [[42, "snapshot"]], "How Snapshot Works": [[42, "how-snapshot-works"]], "Benefits": [[42, "benefits"]], "Limitations": [[42, "limitations"]], "How to Create a Snapshot": [[42, "how-to-create-a-snapshot"]], "Create a Snapshot in Javet": [[42, "create-a-snapshot-in-javet"]], "Create a Snapshot via mksnapshot": [[42, "create-a-snapshot-via-mksnapshot"]], "Best Practices": [[43, "best-practices"]], "Thread, Engine and Pool": [[43, "thread-engine-and-pool"]], "Security": [[43, "security"]], "Tips": [[44, "tips"], [52, "tips"]], "TODO List": [[45, "todo-list"]], "Error Codes": [[46, "error-codes"]], "Why Error Codes?": [[46, "why-error-codes"]], "Backward Compatibility": [[46, "backward-compatibility"]], "Logging": [[48, "logging"]], "Step 1: Implement IJavetLogger": [[48, "step-1-implement-ijavetlogger"]], "Step 2: Inject the Logger": [[48, "step-2-inject-the-logger"]], "Termination": [[49, "termination"]], "Automatic Termination with Pool and Engine": [[49, "automatic-termination-with-pool-and-engine"]], "Manual Termination": [[49, "manual-termination"]], "How about Debug Mode?": [[49, "how-about-debug-mode"]], "V8 Values": [[50, "v8-values"]], "V8 Collection": [[51, "v8-collection"]], "Collection in V8": [[51, "collection-in-v8"]], "V8ValueArray": [[51, "v8valuearray"]], "V8ValueSet": [[51, "v8valueset"]], "V8ValueMap": [[51, "v8valuemap"]], "V8 Function": [[52, "v8-function"]], "Function Types": [[52, "function-types"]], "Function Interception": [[52, "function-interception"]], "Automatic Registration": [[52, "automatic-registration"]], "bind()": [[52, "bind"]], "How about Object Type Conversion?": [[52, "how-about-object-type-conversion"]], "Can this be Passed in?": [[52, "can-this-be-passed-in"]], "Can Symbol Properties be Intercepted?": [[52, "can-symbol-properties-be-intercepted"]], "How to Disable Properties or Functions?": [[52, "how-to-disable-properties-or-functions"]], "How to Unregister Properties or Functions?": [[52, "how-to-unregister-properties-or-functions"]], "Can Both JavaScript Function and Property Map to One Java Function?": [[52, "can-both-javascript-function-and-property-map-to-one-java-function"]], "Can 2 Java Functions Map to One JavaScript Function and Property?": [[52, "can-2-java-functions-map-to-one-javascript-function-and-property"]], "Manual Registration": [[52, "manual-registration"]], "boolean bindFunction(String functionName, JavetCallbackContext javetCallbackContext)": [[52, "boolean-bindfunction-string-functionname-javetcallbackcontext-javetcallbackcontext"]], "boolean set(String key, V8Value value)": [[52, "boolean-set-string-key-v8value-value"]], "boolean bindFunction(String functionName, String codeString)": [[52, "boolean-bindfunction-string-functionname-string-codestring"]], "Type Mismatch": [[52, "type-mismatch"]], "Summary": [[52, "summary"], [64, "summary"]], "Change a User Defined JavaScript Function on the Fly": [[52, "change-a-user-defined-javascript-function-on-the-fly"]], "Why is Changing a User Defined JavaScript Function Important?": [[52, "why-is-changing-a-user-defined-javascript-function-important"]], "How to Change a User Defined JavaScript Function on the Fly?": [[52, "how-to-change-a-user-defined-javascript-function-on-the-fly"]], "What is the Source Code of a Function in V8?": [[52, "what-is-the-source-code-of-a-function-in-v8"]], "Automatic Type Conversion": [[52, "automatic-type-conversion"]], "Call vs. Invoke": [[52, "call-vs-invoke"]], "Call": [[52, "call"]], "Invoke": [[52, "invoke"]], "How about Bind?": [[52, "how-about-bind"]], "Context and Scope Info": [[52, "context-and-scope-info"]], "How to Avoid Argument Type Mismatches?": [[52, "how-to-avoid-argument-type-mismatches"]], "How to Handle Argument Count Mismatches?": [[52, "how-to-handle-argument-count-mismatches"]], "V8 Promise": [[53, "v8-promise"]], "Promise and Resolver": [[53, "promise-and-resolver"]], "Lifecycle": [[53, "lifecycle"]], "Register a Callback": [[53, "register-a-callback"]], "Example fs.readFileAsync()": [[53, "example-fs-readfileasync"]], "Unhandled Rejection": [[53, "unhandled-rejection"]], "Release Notes": [[54, "release-notes"]], "Release Notes 0.7.x": [[55, "release-notes-0-7-x"]], "0.7.4 Live Debug": [[55, "live-debug"]], "0.7.3 Locker": [[55, "locker"]], "0.7.2 Engine Guard": [[55, "engine-guard"]], "0.7.1 Bug Fixes": [[55, "bug-fixes"]], "0.7.0 Birth with V8 v8.9": [[55, "birth-with-v8-v8-9"]], "Release Notes 0.8.x": [[56, "release-notes-0-8-x"]], "0.8.10 Index in forEach": [[56, "index-in-foreach"]], "0.8.9 Declarative Property Interception": [[56, "declarative-property-interception"]], "0.8.8 Hotfix the Source Code": [[56, "hotfix-the-source-code"]], "0.8.7 Native Modules for Node.js": [[56, "native-modules-for-node-js"]], "0.8.6 Event Loop for Node.js": [[56, "event-loop-for-node-js"]], "0.8.5 Error Codes": [[56, "error-codes"]], "0.8.4 V8 v9.0": [[56, "v8-v9-0"]], "0.8.3 GC": [[56, "gc"]], "0.8.2 Conversion for Primitive": [[56, "conversion-for-primitive"]], "0.8.1 Declarative Function Interception": [[56, "declarative-function-interception"]], "0.8.0 First Time with Node.js": [[56, "first-time-with-node-js"]], "Release Notes 0.9.x": [[57, "release-notes-0-9-x"]], "0.9.14 V8 Scope": [[57, "v8-scope"]], "0.9.13 V8 v9.4": [[57, "v8-v9-4"]], "0.9.12 Private Properties": [[57, "private-properties"]], "0.9.11 V8 v9.3": [[57, "v8-v9-3"]], "0.9.10 Polyfill Java Interfaces": [[57, "polyfill-java-interfaces"]], "0.9.9 Mac OS x86_64": [[57, "mac-os-x86-64"]], "0.9.8 Empower the Promise": [[57, "empower-the-promise"]], "0.9.7 Proxy Converter v2": [[57, "proxy-converter-v2"]], "0.9.6 Proxy Converter v1": [[57, "proxy-converter-v1"]], "0.9.5 V8 v9.2": [[57, "v8-v9-2"]], "0.9.4 Multi-process Safe": [[57, "multi-process-safe"]], "0.9.3 Module Resolver": [[57, "module-resolver"]], "0.9.2 Anonymous Functions in Converter": [[57, "anonymous-functions-in-converter"]], "0.9.1 V8 in Classloader": [[57, "v8-in-classloader"]], "0.9.0 V8 v9.1": [[57, "v8-v9-1"]], "Release Notes 1.0.x": [[58, "release-notes-1-0-x"]], "1.0.7 V8 v9.7": [[58, "v8-v9-7"]], "1.0.6 Mac OS (arm64)": [[58, "mac-os-arm64"]], "1.0.5 Javet Core": [[58, "javet-core"]], "1.0.4 V8 9.6": [[58, "v8-9-6"]], "1.0.3 Android ABI 21": [[58, "android-abi-21"]], "1.0.2 First Time with Android": [[58, "first-time-with-android"]], "1.0.1 Custom Library Loading": [[58, "custom-library-loading"]], "1.0.0 First Time with Node.js v16": [[58, "first-time-with-node-js-v16"]], "Release Notes 1.1.x": [[59, "release-notes-1-1-x"]], "1.1.7 V8 v10.5": [[59, "v8-v10-5"]], "1.1.6 V8 v10.4": [[59, "v8-v10-4"]], "1.1.5 V8 v10.3": [[59, "v8-v10-3"]], "1.1.4 V8 v10.2": [[59, "v8-v10-2"]], "1.1.3 V8 v10.1": [[59, "v8-v10-1"]], "1.1.2 V8 v10.0": [[59, "v8-v10-0"]], "1.1.1 V8 v9.9": [[59, "v8-v9-9"]], "1.1.0 V8 v9.8": [[59, "v8-v9-8"]], "Release Notes 2.0.x": [[60, "release-notes-2-0-x"]], "2.0.4 V8 v11.0": [[60, "v8-v11-0"]], "2.0.3 V8 v10.9": [[60, "v8-v10-9"]], "2.0.2 V8 v10.8": [[60, "v8-v10-8"]], "2.0.1 V8 v10.7": [[60, "v8-v10-7"]], "2.0.0 Node.js v18.10": [[60, "node-js-v18-10"]], "Release Notes 2.1.x": [[61, "release-notes-2-1-x"]], "2.1.2 V8 v11.3": [[61, "v8-v11-3"]], "2.1.1 V8 v11.2": [[61, "v8-v11-2"]], "2.1.0 V8 v11.1": [[61, "v8-v11-1"]], "Release Notes 2.2.x": [[62, "release-notes-2-2-x"]], "2.2.3 V8 v11.7": [[62, "v8-v11-7"]], "2.2.2 V8 v11.6": [[62, "v8-v11-6"]], "2.2.1 V8 v11.5": [[62, "v8-v11-5"]], "2.2.0 V8 v11.4": [[62, "v8-v11-4"]], "Release Notes 3.0.x": [[63, "release-notes-3-0-x"]], "3.0.4 V8 v12.2": [[63, "v8-v12-2"]], "3.0.3 V8 v12.1": [[63, "v8-v12-1"]], "3.0.2 V8 v12.0": [[63, "v8-v12-0"]], "3.0.1 V8 v11.9": [[63, "v8-v11-9"]], "3.0.0 V8 v11.8": [[63, "v8-v11-8"]], "Access the Whole JVM": [[64, "access-the-whole-jvm"]], "Play with StringBuilder": [[64, "play-with-stringbuilder"]], "Play with Dynamic Interface": [[64, "play-with-dynamic-interface"]], "Play with Dynamic Object": [[64, "play-with-dynamic-object"]], "Cleanup": [[64, "cleanup"]], "Expose JsonNode in V8": [[65, "expose-jsonnode-in-v8"]], "2 Approaches": [[65, "approaches"]], "Java Flavor (Direct Exposure)": [[65, "java-flavor-direct-exposure"]], "JS Flavor (Wrapped Exposure)": [[65, "js-flavor-wrapped-exposure"]], "Test": [[65, "test"], [74, "test"]], "Conclusion": [[65, "conclusion"]], "Advanced": [[66, "advanced"]], "Interact with Node.js": [[67, "interact-with-node-js"]], "Is That Possible?": [[67, "is-that-possible"]], "How?": [[67, "how"]], "Step 1: JavaScript Server": [[67, "step-1-javascript-server"]], "Step 2: Worker Thread for the JavaScript Server": [[67, "step-2-worker-thread-for-the-javascript-server"]], "Step 3: Main Thread for the Interaction": [[67, "step-3-main-thread-for-the-interaction"]], "What If Node.js Hangs during Close()?": [[67, "what-if-node-js-hangs-during-close"]], "Java and JavaScript Interop": [[68, "java-and-javascript-interop"]], "Inject a Static Class": [[68, "inject-a-static-class"]], "Inject an Enum": [[68, "inject-an-enum"]], "Inject a Pattern": [[68, "inject-a-pattern"]], "Inject a StringBuilder": [[68, "inject-a-stringbuilder"]], "Array": [[69, "array"]], "List": [[69, "list"]], "Map": [[69, "map"]], "Motivation": [[70, "motivation"]], "Goals": [[70, "goals"]], "Print Hello Javet in V8 Mode": [[71, "print-hello-javet-in-v8-mode"]], "Print 1 + 1 in Node.js Mode": [[71, "print-1-1-in-node-js-mode"]], "Basic": [[72, "basic"]], "Installation": [[73, "installation"]], "OS Compatibility": [[73, "os-compatibility"]], "Windows": [[73, "windows"]], "Linux": [[73, "linux"]], "Mac OS": [[73, "mac-os"]], "Android": [[73, "android"]], "Sample": [[74, "sample"]], "@V8Property and @V8Function": [[74, "v8property-and-v8function"]], "Javet Shell": [[75, "javet-shell"]], "Node.js Mode and V8 Mode": [[76, "node-js-mode-and-v8-mode"]], "Co-existence": [[76, "co-existence"]], "V8Host": [[76, "v8host"]], "Pool": [[76, "pool"]], "Polyfill": [[77, "polyfill"]], "decimal.js": [[77, "decimal-js"]], "Spring Integration": [[78, "spring-integration"]], "Configuration": [[78, "configuration"]], "Injection": [[78, "injection"]], "Tutorial": [[79, "tutorial"]], "Migration Guides": [[80, "migration-guides"], [81, "migration-guides"]], "Migrate from J2V8": [[81, "migrate-from-j2v8"]], "Why Migrate from J2V8 to Javet?": [[81, "why-migrate-from-j2v8-to-javet"]], "V8 \u27f6 V8Runtime": [[81, "v8-v8runtime"]], "Primitive Types": [[81, "primitive-types"]], "registerJavaMethod() \u27f6 @V8Function": [[81, "registerjavamethod-v8function"]], "V8Locker": [[81, "v8locker"]], "Type Conversion": [[81, "type-conversion"]], "Node.js and V8": [[81, "node-js-and-v8"]], "ES6 Module": [[81, "es6-module"]], "Blessing": [[81, "blessing"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/docs/tutorial/advanced/access_the_whole_jvm.html b/docs/tutorial/advanced/access_the_whole_jvm.html index 0b765ef2b..aaafb6dc5 100644 --- a/docs/tutorial/advanced/access_the_whole_jvm.html +++ b/docs/tutorial/advanced/access_the_whole_jvm.html @@ -6,7 +6,7 @@ - Access the Whole JVM - Javet 3.0.3 documentation + Access the Whole JVM - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
              @@ -151,7 +151,7 @@
              - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
            • Proxy Converter
            • Bridge Converter
            • Custom Converter
            • +
            • Proxy Plugins
          • Resource Management
          • Resource Management
          • Resource Management
          • Resource Management
          • Resource Management
          • Resource Management
              @@ -436,7 +437,7 @@

              Map#

              - + diff --git a/docs/tutorial/basic/engine_pool.html b/docs/tutorial/basic/engine_pool.html index 97d09a1ea..e74c8b4ba 100644 --- a/docs/tutorial/basic/engine_pool.html +++ b/docs/tutorial/basic/engine_pool.html @@ -6,7 +6,7 @@ - Javet Engine Pool - Javet 3.0.3 documentation + Javet Engine Pool - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
              @@ -151,7 +151,7 @@
              - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
            • Proxy Converter
            • Bridge Converter
            • Custom Converter
            • +
            • Proxy Plugins
          • Resource Management
              @@ -418,7 +419,7 @@

              Usage#< - + diff --git a/docs/tutorial/basic/hello_javet.html b/docs/tutorial/basic/hello_javet.html index 7259c44c8..f83359200 100644 --- a/docs/tutorial/basic/hello_javet.html +++ b/docs/tutorial/basic/hello_javet.html @@ -6,7 +6,7 @@ - Hello Javet - Javet 3.0.3 documentation + Hello Javet - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
              @@ -151,7 +151,7 @@
              - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
            • Proxy Converter
            • Bridge Converter
            • Custom Converter
            • +
            • Proxy Plugins
          • Resource Management
          • Resource Management
              @@ -366,7 +367,7 @@

              Basic#< - + diff --git a/docs/tutorial/basic/installation.html b/docs/tutorial/basic/installation.html index 6a193ea6b..ec565eba9 100644 --- a/docs/tutorial/basic/installation.html +++ b/docs/tutorial/basic/installation.html @@ -6,7 +6,7 @@ - Installation - Javet 3.0.3 documentation + Installation - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
              @@ -151,7 +151,7 @@
              - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
            • Proxy Converter
            • Bridge Converter
            • Custom Converter
            • +
            • Proxy Plugins
          • Resource Management

        @@ -682,7 +683,7 @@

        Android#< - + diff --git a/docs/tutorial/basic/installation.rst b/docs/tutorial/basic/installation.rst index 7b56a3f2e..f512501ff 100644 --- a/docs/tutorial/basic/installation.rst +++ b/docs/tutorial/basic/installation.rst @@ -16,21 +16,21 @@ Maven com.caoccao.javet javet - 3.0.3 + 3.0.4 com.caoccao.javet javet-linux-arm64 - 3.0.3 + 3.0.4 com.caoccao.javet javet-macos - 3.0.3 + 3.0.4 .. tab:: Complete @@ -38,7 +38,7 @@ Maven .. code-block:: xml - 3.0.3 + 3.0.4 @@ -115,10 +115,10 @@ Gradle Kotlin DSL .. code-block:: kotlin - implementation("com.caoccao.javet:javet:3.0.3") // Linux and Windows (x86_64) - implementation("com.caoccao.javet:javet-linux-arm64:3.0.3") // Linux (arm64) - implementation("com.caoccao.javet:javet-macos:3.0.3") // Mac OS (x86_64 and arm64) - implementation("com.caoccao.javet:javet-android:3.0.3") // Android (arm, arm64, x86 and x86_64) + implementation("com.caoccao.javet:javet:3.0.4") // Linux and Windows (x86_64) + implementation("com.caoccao.javet:javet-linux-arm64:3.0.4") // Linux (arm64) + implementation("com.caoccao.javet:javet-macos:3.0.4") // Mac OS (x86_64 and arm64) + implementation("com.caoccao.javet:javet-android:3.0.4") // Android (arm, arm64, x86 and x86_64) .. tab:: Complete @@ -129,11 +129,11 @@ Gradle Kotlin DSL val os = OperatingSystem.current() val cpuArch = System.getProperty("os.arch") if (os.isMacOsX) { - implementation("com.caoccao.javet:javet:3.0.3") + implementation("com.caoccao.javet:javet:3.0.4") } else if (os.isLinux && (cpuArch == "aarch64" || cpuArch == "arm64")) { - implementation("com.caoccao.javet:javet-linux-arm64:3.0.3") + implementation("com.caoccao.javet:javet-linux-arm64:3.0.4") } else { - implementation("com.caoccao.javet:javet-macos:3.0.3") + implementation("com.caoccao.javet:javet-macos:3.0.4") } Gradle Groovy DSL @@ -141,10 +141,10 @@ Gradle Groovy DSL .. code-block:: groovy - implementation 'com.caoccao.javet:javet:3.0.3' // Linux and Windows (x86_64) - implementation 'com.caoccao.javet:javet-linux-arm64:3.0.3' // Linux (arm64) - implementation 'com.caoccao.javet:javet-macos:3.0.3' // Mac OS (x86_64 and arm64) - implementation 'com.caoccao.javet:javet-android:3.0.3' // Android (arm, arm64, x86 and x86_64) + implementation 'com.caoccao.javet:javet:3.0.4' // Linux and Windows (x86_64) + implementation 'com.caoccao.javet:javet-linux-arm64:3.0.4' // Linux (arm64) + implementation 'com.caoccao.javet:javet-macos:3.0.4' // Mac OS (x86_64 and arm64) + implementation 'com.caoccao.javet:javet-android:3.0.4' // Android (arm, arm64, x86 and x86_64) OS Compatibility ================ diff --git a/docs/tutorial/basic/interception.html b/docs/tutorial/basic/interception.html index b3c12079c..ffc6fc3a9 100644 --- a/docs/tutorial/basic/interception.html +++ b/docs/tutorial/basic/interception.html @@ -6,7 +6,7 @@ - Interception - Javet 3.0.3 documentation + Interception - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
        @@ -151,7 +151,7 @@
        - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
      • Proxy Converter
      • Bridge Converter
      • Custom Converter
      • +
      • Proxy Plugins
    • Resource Management
        @@ -478,7 +479,7 @@

        Test# - + diff --git a/docs/tutorial/basic/javet_shell.html b/docs/tutorial/basic/javet_shell.html index faa093721..496345300 100644 --- a/docs/tutorial/basic/javet_shell.html +++ b/docs/tutorial/basic/javet_shell.html @@ -6,7 +6,7 @@ - Javet Shell - Javet 3.0.3 documentation + Javet Shell - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
        @@ -151,7 +151,7 @@
        - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
      • Proxy Converter
      • Bridge Converter
      • Custom Converter
      • +
      • Proxy Plugins
    • Resource Management
    • Resource Management
        @@ -429,7 +430,7 @@

        Pool# - + diff --git a/docs/tutorial/basic/polyfill.html b/docs/tutorial/basic/polyfill.html index 8feb68e34..3ddf9f270 100644 --- a/docs/tutorial/basic/polyfill.html +++ b/docs/tutorial/basic/polyfill.html @@ -6,7 +6,7 @@ - Polyfill - Javet 3.0.3 documentation + Polyfill - Javet 3.0.4 documentation @@ -125,7 +125,7 @@
        @@ -151,7 +151,7 @@
        - Javet 3.0.3 documentation + Javet 3.0.4 documentation @@ -200,6 +200,7 @@
      • Proxy Converter
      • Bridge Converter
      • Custom Converter
      • +
      • Proxy Plugins
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management
    • Resource Management