diff --git a/.classpath b/.classpath
index 13e21d2..751b426 100644
--- a/.classpath
+++ b/.classpath
@@ -14,7 +14,14 @@
-
+
+
+
+
+
+
+
+
diff --git a/.github/workflows/build11.yml b/.github/workflows/build11.yml
new file mode 100644
index 0000000..f7e2fe7
--- /dev/null
+++ b/.github/workflows/build11.yml
@@ -0,0 +1,17 @@
+name: Build with Java 11
+
+on: [push, pull_request]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up JDK 11
+ uses: actions/setup-java@v3
+ with:
+ java-version: '11'
+ distribution: 'temurin'
+ - name: Build with Gradle
+ run: gradle build --stacktrace
diff --git a/.github/workflows/build.yml b/.github/workflows/build8.yml
similarity index 83%
rename from .github/workflows/build.yml
rename to .github/workflows/build8.yml
index b5dfb5e..e12c0a4 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build8.yml
@@ -1,4 +1,4 @@
-name: build
+name: Build with Java 8
on: [push, pull_request]
@@ -12,6 +12,6 @@ jobs:
uses: actions/setup-java@v3
with:
java-version: '8'
- distribution: 'adopt'
+ distribution: 'temurin'
- name: Build with Gradle
run: gradle build --stacktrace
diff --git a/build.gradle b/build.gradle
index b23bf78..0fa58a3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,12 @@ plugins {
id 'com.github.kt3k.coveralls' version '2.11.0' // Coverage
}
+def majorJavaVersion = JavaVersion.current().getMajorVersion() as int
+if( majorJavaVersion < 11 ) {
sourceCompatibility = 1.8
+} else {
+ sourceCompatibility = 11
+}
group 'de.inetsoftware'
archivesBaseName = 'jwebassembly-compiler'
@@ -43,6 +48,9 @@ sourceSets {
test {
java {
srcDir 'test'
+ if( majorJavaVersion >= 11 ) {
+ srcDir 'test11'
+ }
}
resources {
srcDir 'test'
diff --git a/test11/de/inetsoftware/jwebassembly/runtime/VarHandleTest.java b/test11/de/inetsoftware/jwebassembly/runtime/VarHandleTest.java
new file mode 100644
index 0000000..2fcd501
--- /dev/null
+++ b/test11/de/inetsoftware/jwebassembly/runtime/VarHandleTest.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2023 Volker Berlin (i-net software)
+ *
+ * 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.
+ */
+package de.inetsoftware.jwebassembly.runtime;
+
+
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.VarHandle;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.logging.Level;
+
+import org.junit.ClassRule;
+import org.junit.runners.Parameterized.Parameters;
+
+import de.inetsoftware.jwebassembly.JWebAssembly;
+import de.inetsoftware.jwebassembly.ScriptEngine;
+import de.inetsoftware.jwebassembly.WasmRule;
+import de.inetsoftware.jwebassembly.api.annotation.Export;
+import de.inetsoftware.jwebassembly.web.DOMString;
+import de.inetsoftware.jwebassembly.web.JSObject;
+
+/**
+ * @author Volker Berlin
+ */
+public class VarHandleTest extends AbstractBaseTest {
+
+ @ClassRule
+ public static WasmRule rule = new WasmRule( TestClass.class );
+
+ public VarHandleTest( ScriptEngine script, String method, Object[] params ) {
+ super( rule, script, method, params );
+ }
+
+ @Parameters( name = "{0}-{1}" )
+ public static Collection