From ccbe1cad9c27303043f43bce16dda948e3285fff Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Thu, 16 Feb 2017 15:04:57 +1000 Subject: [PATCH] Support Java 9 bytecode format AFAIK the bytecode format was bumped to indicate that code compiled with `-target 9` requires boostrap methods that only exist in the Java 9 standard library for the new String concatenation based on invokedynamic. So we probably don't need changes to the bytecode parser/writers. --- src/main/java/scala/tools/asm/ClassReader.java | 2 +- src/main/java/scala/tools/asm/Opcodes.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/scala/tools/asm/ClassReader.java b/src/main/java/scala/tools/asm/ClassReader.java index e3acb31..563eafa 100644 --- a/src/main/java/scala/tools/asm/ClassReader.java +++ b/src/main/java/scala/tools/asm/ClassReader.java @@ -166,7 +166,7 @@ public ClassReader(final byte[] b) { public ClassReader(final byte[] b, final int off, final int len) { this.b = b; // checks the class version - if (readShort(off + 6) > Opcodes.V1_8) { + if (readShort(off + 6) > Opcodes.V1_9) { throw new IllegalArgumentException(); } // parses the constant pool diff --git a/src/main/java/scala/tools/asm/Opcodes.java b/src/main/java/scala/tools/asm/Opcodes.java index 24eaffa..f72d1cd 100644 --- a/src/main/java/scala/tools/asm/Opcodes.java +++ b/src/main/java/scala/tools/asm/Opcodes.java @@ -58,6 +58,7 @@ public interface Opcodes { int V1_6 = 0 << 16 | 50; int V1_7 = 0 << 16 | 51; int V1_8 = 0 << 16 | 52; + int V1_9 = 0 << 16 | 53; // access flags