public class com.oracle.truffle.js.scriptengine.test.TestEngine
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.scriptengine.test.TestEngine
super_class: java.lang.Object
{
static final java.lang.String TESTED_ENGINE_NAME;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "JavaScript"
private final javax.script.ScriptEngineManager manager;
descriptor: Ljavax/script/ScriptEngineManager;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public org.junit.rules.ExpectedException expectedException;
descriptor: Lorg/junit/rules/ExpectedException;
flags: (0x0001) ACC_PUBLIC
RuntimeVisibleAnnotations:
org.junit.Rule()
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new javax.script.ScriptEngineManager
dup
invokespecial javax.script.ScriptEngineManager.<init>:()V
putfield com.oracle.truffle.js.scriptengine.test.TestEngine.manager:Ljavax/script/ScriptEngineManager;
2: aload 0
invokestatic org.junit.rules.ExpectedException.none:()Lorg/junit/rules/ExpectedException;
putfield com.oracle.truffle.js.scriptengine.test.TestEngine.expectedException:Lorg/junit/rules/ExpectedException;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
private javax.script.ScriptEngine getEngine();
descriptor: ()Ljavax/script/ScriptEngine;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.scriptengine.test.TestEngine.manager:Ljavax/script/ScriptEngineManager;
ldc "JavaScript"
invokevirtual javax.script.ScriptEngineManager.getEngineByName:(Ljava/lang/String;)Ljavax/script/ScriptEngine;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
public void checkName();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
ldc Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
RuntimeVisibleAnnotations:
org.junit.Test()
public void compileAndEval1();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
ldc "true"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void compileAndEval2();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
checkcast javax.script.Compilable
ldc "true"
invokeinterface javax.script.Compilable.compile:(Ljava/lang/String;)Ljavax/script/CompiledScript;
invokevirtual javax.script.CompiledScript.eval:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void compileSyntaxError();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.scriptengine.test.TestEngine.expectedException:Lorg/junit/rules/ExpectedException;
ldc Ljavax/script/ScriptException;
invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
1: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
checkcast javax.script.Compilable
ldc ":-("
invokeinterface javax.script.Compilable.compile:(Ljava/lang/String;)Ljavax/script/CompiledScript;
pop
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void declareVar();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
astore 1
start local 1 1: aload 1
bipush 100
invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
ldc "polyglot.js.allowHostAccess"
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 1
bipush 100
invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
ldc "polyglot.js.allowHostClassLookup"
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 1
4: ldc "var m = new javax.script.ScriptEngineManager();var engine = m.getEngineByName('Graal.js');var x;engine.eval('var x = \"ENGINE\"');typeof x == 'undefined'"
5: invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 7 1 engine Ljavax/script/ScriptEngine;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void getProperty();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
1: ldc "var m = new javax.script.ScriptEngineManager();var engine = m.getEngineByName('Graal.js');var obj = {prop: 'value'};engine.class.static.getProperty(obj, 'prop') == 'value';"
2: invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
org.junit.Ignore(value = "We do not support `engine.class.static.getProperty`")
public void evalWithGlobal();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
astore 1
start local 1 1: aload 1
sipush 200
invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 2
start local 2 2: aload 2
ldc "x"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
ldc "x === 42;"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
istore 3
start local 3 4: iload 3
invokestatic org.junit.Assert.assertTrue:(Z)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 6 1 engine Ljavax/script/ScriptEngine;
2 6 2 bindings Ljavax/script/Bindings;
4 6 3 result Z
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void getPolyglotContextEvalWithGlobal();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
astore 1
start local 1 1: aload 1
sipush 200
invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 2
start local 2 2: aload 2
ldc "x"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
ldc "true"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
pop
4: aload 1
checkcast com.oracle.truffle.js.scriptengine.GraalJSScriptEngine
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
ldc "js"
ldc "x === 42;"
ldc "src"
invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
istore 3
start local 3 5: iload 3
invokestatic org.junit.Assert.assertTrue:(Z)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 7 1 engine Ljavax/script/ScriptEngine;
2 7 2 bindings Ljavax/script/Bindings;
5 7 3 result Z
Exceptions:
throws java.io.IOException, javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void getPolyglotContextEvalWithGlobalFail();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
astore 1
start local 1 1: aload 1
sipush 200
invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 2
start local 2 2: aload 2
ldc "x"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
checkcast com.oracle.truffle.js.scriptengine.GraalJSScriptEngine
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
ldc "js"
ldc "typeof x === \"undefined\";"
ldc "src"
invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
istore 3
start local 3 4: iload 3
invokestatic org.junit.Assert.assertTrue:(Z)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 6 1 engine Ljavax/script/ScriptEngine;
2 6 2 bindings Ljavax/script/Bindings;
4 6 3 result Z
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
org.junit.Test()
public void getPolyglotContextEvalWithGlobalManualCall();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
astore 1
start local 1 1: aload 1
sipush 200
invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 2
start local 2 2: aload 2
ldc "x"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
checkcast com.oracle.truffle.js.scriptengine.GraalJSScriptEngine
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "importScriptEngineGlobalBindings"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
pop
4: aload 1
checkcast com.oracle.truffle.js.scriptengine.GraalJSScriptEngine
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
ldc "js"
ldc "x === 42;"
ldc "src"
invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
istore 3
start local 3 5: iload 3
invokestatic org.junit.Assert.assertTrue:(Z)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 7 1 engine Ljavax/script/ScriptEngine;
2 7 2 bindings Ljavax/script/Bindings;
5 7 3 result Z
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
org.junit.Test()
public void invokeFunctionWithGlobal();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
astore 1
start local 1 1: aload 1
sipush 200
invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 2
start local 2 2: aload 2
ldc "x"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
ldc "function foo() { return x === 42; }"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
pop
4: aload 1
checkcast javax.script.Invocable
ldc "foo"
iconst_0
anewarray java.lang.Object
invokeinterface javax.script.Invocable.invokeFunction:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
istore 3
start local 3 5: iload 3
invokestatic org.junit.Assert.assertTrue:(Z)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 7 1 engine Ljavax/script/ScriptEngine;
2 7 2 bindings Ljavax/script/Bindings;
5 7 3 result Z
Exceptions:
throws javax.script.ScriptException, java.lang.NoSuchMethodException
RuntimeVisibleAnnotations:
org.junit.Test()
public void invokeMethodWithGlobal();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
astore 1
start local 1 1: aload 1
sipush 200
invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 2
start local 2 2: aload 2
ldc "x"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
ldc "var obj = {f: () => { return x === 42; }};"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
pop
4: aload 1
checkcast javax.script.Invocable
aload 1
ldc "obj"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
ldc "f"
iconst_0
anewarray java.lang.Object
invokeinterface javax.script.Invocable.invokeMethod:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
istore 3
start local 3 5: iload 3
invokestatic org.junit.Assert.assertTrue:(Z)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 7 1 engine Ljavax/script/ScriptEngine;
2 7 2 bindings Ljavax/script/Bindings;
5 7 3 result Z
Exceptions:
throws javax.script.ScriptException, java.lang.NoSuchMethodException
RuntimeVisibleAnnotations:
org.junit.Test()
public void factoryGetParameterTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
invokeinterface javax.script.ScriptEngine.getFactory:()Ljavax/script/ScriptEngineFactory;
astore 1
start local 1 1: aload 1
invokeinterface javax.script.ScriptEngineFactory.getEngineName:()Ljava/lang/String;
aload 1
ldc "javax.script.engine"
invokeinterface javax.script.ScriptEngineFactory.getParameter:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 1
invokeinterface javax.script.ScriptEngineFactory.getEngineVersion:()Ljava/lang/String;
aload 1
ldc "javax.script.engine_version"
invokeinterface javax.script.ScriptEngineFactory.getParameter:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
3: aload 1
invokeinterface javax.script.ScriptEngineFactory.getLanguageName:()Ljava/lang/String;
aload 1
ldc "javax.script.language"
invokeinterface javax.script.ScriptEngineFactory.getParameter:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: aload 1
invokeinterface javax.script.ScriptEngineFactory.getLanguageVersion:()Ljava/lang/String;
aload 1
ldc "javax.script.language_version"
invokeinterface javax.script.ScriptEngineFactory.getParameter:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
5: aload 1
invokeinterface javax.script.ScriptEngineFactory.getNames:()Ljava/util/List;
aload 1
ldc "javax.script.name"
invokeinterface javax.script.ScriptEngineFactory.getParameter:(Ljava/lang/String;)Ljava/lang/Object;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
6: aconst_null
aload 1
ldc "THREADING"
invokeinterface javax.script.ScriptEngineFactory.getParameter:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: aconst_null
aload 1
ldc "noValueIsAssignedToThisKey"
invokeinterface javax.script.ScriptEngineFactory.getParameter:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 9 1 factory Ljavax/script/ScriptEngineFactory;
RuntimeVisibleAnnotations:
org.junit.Test()
public void twoNashornEngines();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: ldc "foo"
aload 0
getfield com.oracle.truffle.js.scriptengine.test.TestEngine.manager:Ljavax/script/ScriptEngineManager;
invokestatic com.oracle.truffle.js.scriptengine.test.TestUtil.getEngineNashornCompat:(Ljavax/script/ScriptEngineManager;)Ljavax/script/ScriptEngine;
ldc "'foo'"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: ldc "bar"
aload 0
getfield com.oracle.truffle.js.scriptengine.test.TestEngine.manager:Ljavax/script/ScriptEngineManager;
invokestatic com.oracle.truffle.js.scriptengine.test.TestUtil.getEngineNashornCompat:(Ljavax/script/ScriptEngineManager;)Ljavax/script/ScriptEngine;
ldc "'bar'"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void moduleWithDependency();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
astore 1
start local 1 1: aload 1
bipush 100
invokeinterface javax.script.ScriptEngine.getBindings:(I)Ljavax/script/Bindings;
ldc "polyglot.js.allowIO"
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: ldc "dependency"
ldc ".mjs"
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 2
start local 2 3: aload 2
invokevirtual java.io.File.deleteOnExit:()V
4: aconst_null
astore 3
aconst_null
astore 4
5: new java.io.FileWriter
dup
aload 2
invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
astore 5
start local 5 6: aload 5
ldc "export let answer = 42;"
invokevirtual java.io.FileWriter.append:(Ljava/lang/CharSequence;)Ljava/io/Writer;
pop
7: aload 5
ifnull 13
aload 5
invokevirtual java.io.FileWriter.close:()V
goto 13
StackMap locals: com.oracle.truffle.js.scriptengine.test.TestEngine javax.script.ScriptEngine java.io.File java.lang.Throwable java.lang.Throwable java.io.FileWriter
StackMap stack: java.lang.Throwable
8: astore 3
aload 5
ifnull 9
aload 5
invokevirtual java.io.FileWriter.close:()V
end local 5 StackMap locals:
StackMap stack:
9: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 4
aload 3
ifnonnull 11
aload 4
astore 3
goto 12
StackMap locals:
StackMap stack:
11: aload 3
aload 4
if_acmpeq 12
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 3
athrow
13: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 2
invokevirtual java.io.File.getParent:()Ljava/lang/String;
ldc "main.mjs"
invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
astore 3
start local 3 14: new java.lang.StringBuilder
dup
ldc "import { answer } from '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.io.File.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'; answer;"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 15: aload 1
invokeinterface javax.script.ScriptEngine.getContext:()Ljavax/script/ScriptContext;
ldc "javax.script.filename"
aload 3
bipush 100
invokeinterface javax.script.ScriptContext.setAttribute:(Ljava/lang/String;Ljava/lang/Object;I)V
16: aload 1
aload 4
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
astore 5
start local 5 17: bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 5
checkcast java.lang.Number
invokevirtual java.lang.Number.intValue:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
18: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 19 1 engine Ljavax/script/ScriptEngine;
3 19 2 dependency Ljava/io/File;
6 9 5 writer Ljava/io/FileWriter;
14 19 3 mainModuleName Ljava/lang/String;
15 19 4 mainModule Ljava/lang/String;
17 19 5 result Ljava/lang/Object;
Exception table:
from to target type
6 7 8 any
5 10 10 any
Exceptions:
throws java.io.IOException, javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void unicodeOutput();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: ldc "Tu\u010D\u0148\u00E1\u010D\u010D\u00ED \uD83D\uDCA9!"
astore 1
start local 1 1: aload 0
invokevirtual com.oracle.truffle.js.scriptengine.test.TestEngine.getEngine:()Ljavax/script/ScriptEngine;
astore 2
start local 2 2: new java.io.StringWriter
dup
invokespecial java.io.StringWriter.<init>:()V
astore 3
start local 3 3: aload 2
invokeinterface javax.script.ScriptEngine.getContext:()Ljavax/script/ScriptContext;
aload 3
invokeinterface javax.script.ScriptContext.setWriter:(Ljava/io/Writer;)V
4: aload 2
new java.lang.StringBuilder
dup
ldc "print('"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "');"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
pop
5: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 7 1 text Ljava/lang/String;
2 7 2 engine Ljavax/script/ScriptEngine;
3 7 3 output Ljava/io/StringWriter;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void unicodeInput();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: ldc "Tu\u010D\u0148\u00E1\u010D\u010D\u00ED \uD83D\uDCA9!"
astore 1
start local 1 1: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
2: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "js"
aastore
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
iconst_1
invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
ldc "js.shell"
ldc "true"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
3: invokestatic com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.create:(Lorg/graalvm/polyglot/Engine;Lorg/graalvm/polyglot/Context$Builder;)Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
astore 2
start local 2 4: new java.io.StringReader
dup
aload 1
invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
astore 3
start local 3 5: aload 2
invokeinterface javax.script.ScriptEngine.getContext:()Ljavax/script/ScriptContext;
aload 3
invokeinterface javax.script.ScriptContext.setReader:(Ljava/io/Reader;)V
6: aload 2
ldc "readline()"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
astore 4
start local 4 7: aload 1
aload 4
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 9 1 text Ljava/lang/String;
4 9 2 engine Ljavax/script/ScriptEngine;
5 9 3 input Ljava/io/StringReader;
7 9 4 result Ljava/lang/Object;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void exceptionInCauseChain();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.scriptengine.test.TestEngine.manager:Ljavax/script/ScriptEngineManager;
invokestatic com.oracle.truffle.js.scriptengine.test.TestUtil.getEngineNashornCompat:(Ljavax/script/ScriptEngineManager;)Ljavax/script/ScriptEngine;
ldc "new java.util.ArrayList().iterator().next()"
invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
pop
1: ldc "ScriptException/NoSuchElementException expected"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
2: goto 13
StackMap locals:
StackMap stack: javax.script.ScriptException
3: astore 1
start local 1 4: iconst_0
istore 2
start local 2 5: aload 1
invokevirtual javax.script.ScriptException.getCause:()Ljava/lang/Throwable;
astore 3
start local 3 6: goto 11
7: StackMap locals: javax.script.ScriptException int java.lang.Throwable
StackMap stack:
aload 3
instanceof java.util.NoSuchElementException
ifeq 10
8: iconst_1
istore 2
9: goto 12
10: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
astore 3
11: StackMap locals:
StackMap stack:
aload 3
ifnonnull 7
12: StackMap locals:
StackMap stack:
iload 2
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 3 end local 2 end local 1 13: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
4 13 1 ex Ljavax/script/ScriptException;
5 13 2 foundNoSuchElementException Z
6 13 3 cause Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void noNullInNashornEngine();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.scriptengine.test.TestEngine.manager:Ljavax/script/ScriptEngineManager;
ldc "nashorn"
invokevirtual javax.script.ScriptEngineManager.getEngineByName:(Ljava/lang/String;)Ljavax/script/ScriptEngine;
astore 1
start local 1 1: aload 1
ifnull 6
2: aload 1
invokeinterface javax.script.ScriptEngine.getFactory:()Ljavax/script/ScriptEngineFactory;
astore 2
start local 2 3: ldc -1
aload 2
invokeinterface javax.script.ScriptEngineFactory.getNames:()Ljava/util/List;
aconst_null
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: ldc -1
aload 2
invokeinterface javax.script.ScriptEngineFactory.getMimeTypes:()Ljava/util/List;
aconst_null
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: ldc -1
aload 2
invokeinterface javax.script.ScriptEngineFactory.getExtensions:()Ljava/util/List;
aconst_null
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
end local 2 6: StackMap locals: javax.script.ScriptEngine
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/scriptengine/test/TestEngine;
1 7 1 engine Ljavax/script/ScriptEngine;
3 6 2 factory Ljavax/script/ScriptEngineFactory;
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "TestEngine.java"
InnerClasses:
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
public final Builder = org.graalvm.polyglot.Engine$Builder of org.graalvm.polyglot.Engine
public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source