public class com.oracle.truffle.js.test.TestHelper implements java.lang.AutoCloseable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.test.TestHelper
super_class: java.lang.Object
{
private static final double DELTA;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1.0E-15
private final org.graalvm.polyglot.Context$Builder contextBuilder;
descriptor: Lorg/graalvm/polyglot/Context$Builder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.graalvm.polyglot.Context ctx;
descriptor: Lorg/graalvm/polyglot/Context;
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/js/test/TestHelper;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.js.test.TestHelper.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "js.debug-builtin"
ldc "true"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokespecial com.oracle.truffle.js.test.TestHelper.<init>:(Lorg/graalvm/polyglot/Context$Builder;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/TestHelper;
public void <init>(org.graalvm.polyglot.Context$Builder);
descriptor: (Lorg/graalvm/polyglot/Context$Builder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.js.test.TestHelper.contextBuilder:Lorg/graalvm/polyglot/Context$Builder;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 3 1 contextBuilder Lorg/graalvm/polyglot/Context$Builder;
MethodParameters:
Name Flags
contextBuilder
public void close();
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.test.TestHelper.ctx:Lorg/graalvm/polyglot/Context;
ifnull 3
1: aload 0
getfield com.oracle.truffle.js.test.TestHelper.ctx:Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.close:()V
2: aload 0
aconst_null
putfield com.oracle.truffle.js.test.TestHelper.ctx:Lorg/graalvm/polyglot/Context;
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/test/TestHelper;
public org.graalvm.polyglot.Context getPolyglotContext();
descriptor: ()Lorg/graalvm/polyglot/Context;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.test.TestHelper.ctx:Lorg/graalvm/polyglot/Context;
ifnonnull 2
1: aload 0
aload 0
getfield com.oracle.truffle.js.test.TestHelper.contextBuilder:Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
putfield com.oracle.truffle.js.test.TestHelper.ctx:Lorg/graalvm/polyglot/Context;
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.test.TestHelper.ctx:Lorg/graalvm/polyglot/Context;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/TestHelper;
public com.oracle.truffle.js.runtime.JSContext getJSContext();
descriptor: ()Lcom/oracle/truffle/js/runtime/JSContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
public com.oracle.truffle.js.runtime.JSRealm getRealm();
descriptor: ()Lcom/oracle/truffle/js/runtime/JSRealm;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.getJSRealm:(Lorg/graalvm/polyglot/Context;)Lcom/oracle/truffle/js/runtime/JSRealm;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
public com.oracle.truffle.api.object.DynamicObject getGlobalObject();
descriptor: ()Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getGlobalObject:()Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
public java.lang.Object getBinding(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getGlobalObject:()Lcom/oracle/truffle/api/object/DynamicObject;
aload 1
aconst_null
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 1 1 key Ljava/lang/String;
MethodParameters:
Name Flags
key
public void putBinding(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getGlobalObject:()Lcom/oracle/truffle/api/object/DynamicObject;
aload 1
aload 2
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putIfPresent:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 2 1 key Ljava/lang/String;
0 2 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
key
value
public java.lang.Object run(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.test.TestHelper.runValue:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokestatic com.oracle.truffle.js.test.TestHelper.toHostValue:(Lorg/graalvm/polyglot/Value;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 1 1 sourceCode Ljava/lang/String;
MethodParameters:
Name Flags
sourceCode
public double runDouble(java.lang.String);
descriptor: (Ljava/lang/String;)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.test.TestHelper.runValue:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asDouble:()D
dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 1 1 sourceCode Ljava/lang/String;
MethodParameters:
Name Flags
sourceCode
public boolean runBoolean(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.test.TestHelper.runValue:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 1 1 sourceCode Ljava/lang/String;
MethodParameters:
Name Flags
sourceCode
public org.graalvm.polyglot.Value runValue(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: ldc "js"
aload 1
invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
astore 2
start local 2 1: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 2 1 sourceCode Ljava/lang/String;
1 2 2 source Lorg/graalvm/polyglot/Source;
MethodParameters:
Name Flags
sourceCode
public void runVoid(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.test.TestHelper.runValue:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 2 1 sourceCode Ljava/lang/String;
MethodParameters:
Name Flags
sourceCode
public boolean runExpectUndefined(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.test.TestHelper.runValue:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 1: ldc "js"
ldc "(function(arg) { return arg === undefined; });"
invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
astore 3
start local 3 2: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
aload 3
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: aload 4
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;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 4 1 sourceCode Ljava/lang/String;
1 4 2 result Lorg/graalvm/polyglot/Value;
2 4 3 checkUndefined Lorg/graalvm/polyglot/Source;
3 4 4 fnCheckUndefined Lorg/graalvm/polyglot/Value;
MethodParameters:
Name Flags
sourceCode
public void runExpectSyntaxError(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.enterContext:()V
1: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getParser:()Lcom/oracle/truffle/js/parser/JSParser;
aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
aload 1
invokeinterface com.oracle.truffle.js.parser.JSParser.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
pop
2: ldc "expected syntax error to be thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
3: goto 10
StackMap locals:
StackMap stack: com.oracle.truffle.js.runtime.JSException
4: astore 2
start local 2 5: aload 2
invokevirtual com.oracle.truffle.js.runtime.JSException.isSyntaxError:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 2 6: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.leaveContext:()V
goto 11
7: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
8: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.leaveContext:()V
9: aload 3
athrow
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.leaveContext:()V
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 12 1 sourceCode Ljava/lang/String;
5 6 2 e Lcom/oracle/truffle/js/runtime/JSException;
Exception table:
from to target type
1 3 4 Class com.oracle.truffle.js.runtime.JSException
1 6 7 any
MethodParameters:
Name Flags
sourceCode
public java.lang.Object runNoPolyglot(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.enterContext:()V
1: aconst_null
astore 2
start local 2 2: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getParser:()Lcom/oracle/truffle/js/parser/JSParser;
aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
aload 1
invokeinterface com.oracle.truffle.js.parser.JSParser.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
astore 3
start local 3 3: aload 0
aload 3
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Lcom/oracle/truffle/js/nodes/ScriptNode;)Ljava/lang/Object;
astore 2
end local 3 4: goto 8
StackMap locals: com.oracle.truffle.js.test.TestHelper java.lang.String java.lang.Object
StackMap stack: java.lang.Throwable
5: astore 4
6: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.leaveContext:()V
7: aload 4
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.leaveContext:()V
9: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 10 1 source Ljava/lang/String;
2 10 2 result Ljava/lang/Object;
3 4 3 program Lcom/oracle/truffle/js/nodes/ScriptNode;
Exception table:
from to target type
2 5 5 any
MethodParameters:
Name Flags
source
public java.lang.Object runNoPolyglot(com.oracle.truffle.js.nodes.ScriptNode);
descriptor: (Lcom/oracle/truffle/js/nodes/ScriptNode;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
invokevirtual com.oracle.truffle.js.nodes.ScriptNode.run:(Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
invokestatic com.oracle.truffle.js.test.TestHelper.transformResult:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 1 1 scriptNode Lcom/oracle/truffle/js/nodes/ScriptNode;
MethodParameters:
Name Flags
scriptNode
private static java.lang.Object transformResult(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof com.oracle.truffle.js.runtime.objects.JSLazyString
ifeq 2
1: aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 value Ljava/lang/Object;
MethodParameters:
Name Flags
value
public org.graalvm.polyglot.Value runRedirectOutput(java.lang.String, java.io.PrintStream, java.io.PrintStream, boolean, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Ljava/lang/String;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLjava/util/Map;)Lorg/graalvm/polyglot/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 2
invokevirtual org.graalvm.polyglot.Context$Builder.out:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Context$Builder;
aload 3
invokevirtual org.graalvm.polyglot.Context$Builder.err:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 6
start local 6 1: aload 6
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 7
start local 7 2: aload 5
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 5
StackMap locals: com.oracle.truffle.js.test.TestHelper java.lang.String java.io.PrintStream java.io.PrintStream int java.util.Map org.graalvm.polyglot.Context org.graalvm.polyglot.Value top java.util.Iterator
StackMap stack:
3: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 4: aload 7
aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
end local 8 5: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: ldc "js"
aload 1
ldc "TestCase"
invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
iload 4
invokevirtual org.graalvm.polyglot.Source$Builder.interactive:(Z)Lorg/graalvm/polyglot/Source$Builder;
invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
astore 8
start local 8 7: aload 6
aload 8
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
areturn
end local 8 end local 7 end local 6 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 8 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 8 1 sourceCode Ljava/lang/String;
0 8 2 writer Ljava/io/PrintStream;
0 8 3 errorWriter Ljava/io/PrintStream;
0 8 4 isInteractive Z
0 8 5 bindings Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
1 8 6 specialCtx Lorg/graalvm/polyglot/Context;
2 8 7 jsBindings Lorg/graalvm/polyglot/Value;
4 5 8 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
7 8 8 source Lorg/graalvm/polyglot/Source;
Signature: (Ljava/lang/String;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLjava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lorg/graalvm/polyglot/Value;
MethodParameters:
Name Flags
sourceCode
writer
errorWriter
isInteractive
bindings
public java.lang.String runToString(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual com.oracle.truffle.js.test.TestHelper.runToString:(Ljava/lang/String;Z)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 1 1 source Ljava/lang/String;
MethodParameters:
Name Flags
source
public java.lang.String runToString(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
invokevirtual com.oracle.truffle.js.test.TestHelper.runToString:(Ljava/lang/String;ZLjava/util/Map;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 1 1 source Ljava/lang/String;
0 1 2 isInteractive Z
MethodParameters:
Name Flags
source
isInteractive
public java.lang.String runToString(java.lang.String, boolean, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Ljava/lang/String;ZLjava/util/Map;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 4
start local 4 1: aconst_null
astore 5
aconst_null
astore 6
2: new java.io.PrintStream
dup
aload 4
iconst_0
ldc "UTF-8"
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;ZLjava/lang/String;)V
astore 7
start local 7 3: aload 0
aload 1
aload 7
aload 7
iload 2
aload 3
invokevirtual com.oracle.truffle.js.test.TestHelper.runRedirectOutput:(Ljava/lang/String;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLjava/util/Map;)Lorg/graalvm/polyglot/Value;
pop
4: aload 7
ifnull 10
aload 7
invokevirtual java.io.PrintStream.close:()V
goto 10
StackMap locals: com.oracle.truffle.js.test.TestHelper java.lang.String int java.util.Map java.io.ByteArrayOutputStream java.lang.Throwable java.lang.Throwable java.io.PrintStream
StackMap stack: java.lang.Throwable
5: astore 5
aload 7
ifnull 6
aload 7
invokevirtual java.io.PrintStream.close:()V
end local 7 StackMap locals:
StackMap stack:
6: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 6
aload 5
ifnonnull 8
aload 6
astore 5
goto 9
StackMap locals:
StackMap stack:
8: aload 5
aload 6
if_acmpeq 9
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
9: aload 5
athrow
10: StackMap locals:
StackMap stack:
aload 4
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.displayName:()Ljava/lang/String;
invokevirtual java.io.ByteArrayOutputStream.toString:(Ljava/lang/String;)Ljava/lang/String;
ldc "\r\n"
ldc "\n"
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
11: areturn
end local 4 12: StackMap locals: com.oracle.truffle.js.test.TestHelper java.lang.String int java.util.Map
StackMap stack: java.io.UnsupportedEncodingException
astore 4
start local 4 13: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 14 1 source Ljava/lang/String;
0 14 2 isInteractive Z
0 14 3 bindings Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
1 12 4 baos Ljava/io/ByteArrayOutputStream;
3 6 7 stream Ljava/io/PrintStream;
13 14 4 e Ljava/io/UnsupportedEncodingException;
Exception table:
from to target type
3 4 5 any
2 7 7 any
0 11 12 Class java.io.UnsupportedEncodingException
Signature: (Ljava/lang/String;ZLjava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljava/lang/String;
MethodParameters:
Name Flags
source
isInteractive
bindings
public java.lang.Object runSilent(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.js.test.TestHelper$1
dup
aload 0
invokespecial com.oracle.truffle.js.test.TestHelper$1.<init>:(Lcom/oracle/truffle/js/test/TestHelper;)V
astore 2
start local 2 1: new java.io.PrintStream
dup
aload 2
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
astore 3
start local 3 2: aload 0
aload 1
aload 3
aload 3
iconst_0
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
invokevirtual com.oracle.truffle.js.test.TestHelper.runRedirectOutput:(Ljava/lang/String;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLjava/util/Map;)Lorg/graalvm/polyglot/Value;
invokestatic com.oracle.truffle.js.test.TestHelper.toHostValue:(Lorg/graalvm/polyglot/Value;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 3 1 sourceCode Ljava/lang/String;
1 3 2 out Ljava/io/OutputStream;
2 3 3 stream Ljava/io/PrintStream;
MethodParameters:
Name Flags
sourceCode
public com.oracle.truffle.api.object.DynamicObject runJSArray(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
astore 2
start local 2 1: getstatic com.oracle.truffle.js.test.TestHelper.$assertionsDisabled:Z
ifne 2
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.isJSArray:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.lang.Object
StackMap stack:
aload 2
checkcast com.oracle.truffle.api.object.DynamicObject
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 3 1 source Ljava/lang/String;
1 3 2 obj Ljava/lang/Object;
MethodParameters:
Name Flags
source
public com.oracle.truffle.js.test.TestHelper$ParsedFunction parseFirstFunction(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/js/test/TestHelper$ParsedFunction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.js.test.TestHelper$ParsedFunction
dup
aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.test.TestHelper.parse:(Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
invokevirtual com.oracle.truffle.js.nodes.ScriptNode.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
ldc Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
invokestatic com.oracle.truffle.js.test.TestHelper.findFirstNodeInstance:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode
invokevirtual com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.getFunctionData:()Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
invokespecial com.oracle.truffle.js.test.TestHelper$ParsedFunction.<init>:(Lcom/oracle/truffle/js/test/TestHelper;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 1 1 source Ljava/lang/String;
MethodParameters:
Name Flags
source
private static <T> T findFirstNodeInstance(com.oracle.truffle.api.nodes.Node, java.lang.Class<T>);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 2
1: aload 1
aload 0
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Class top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.Node
astore 2
start local 2 4: aload 2
aload 1
invokestatic com.oracle.truffle.js.test.TestHelper.findFirstNodeInstance:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
astore 4
start local 4 5: aload 4
ifnull 7
6: aload 4
areturn
end local 4 end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 root Lcom/oracle/truffle/api/nodes/Node;
0 9 1 clazz Ljava/lang/Class<TT;>;
4 7 2 child Lcom/oracle/truffle/api/nodes/Node;
5 7 4 node TT;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
root
clazz
public static void assertNumberEquals(java.lang.Number, java.lang.Object);
descriptor: (Ljava/lang/Number;Ljava/lang/Object;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Ljava/lang/Number;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
1: aload 0
invokevirtual java.lang.Number.doubleValue:()D
aload 1
checkcast java.lang.Number
invokevirtual java.lang.Number.doubleValue:()D
ldc 1.0E-15
invokestatic org.junit.Assert.assertEquals:(DDD)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 expected Ljava/lang/Number;
0 3 1 actual Ljava/lang/Object;
MethodParameters:
Name Flags
expected
actual
private com.oracle.truffle.js.parser.JSParser getParser();
descriptor: ()Lcom/oracle/truffle/js/parser/JSParser;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
checkcast com.oracle.truffle.js.parser.JSParser
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
public com.oracle.truffle.js.nodes.ScriptNode parse(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getParser:()Lcom/oracle/truffle/js/parser/JSParser;
aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
aload 1
invokeinterface com.oracle.truffle.js.parser.JSParser.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/TestHelper;
0 1 1 script Ljava/lang/String;
MethodParameters:
Name Flags
script
public static java.lang.Object toHostValue(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.polyglot.Value.isBoolean:()Z
ifeq 2
1: aload 0
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.polyglot.Value.isHostObject:()Z
ifeq 4
3: aload 0
invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
areturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.polyglot.Value.isNull:()Z
ifeq 6
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
ifeq 12
7: aload 0
invokevirtual org.graalvm.polyglot.Value.fitsInInt:()Z
ifeq 9
8: aload 0
invokevirtual org.graalvm.polyglot.Value.asInt:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.polyglot.Value.fitsInDouble:()Z
ifeq 11
10: aload 0
invokevirtual org.graalvm.polyglot.Value.asDouble:()D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
11: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unknown number value: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
areturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.polyglot.Value.isString:()Z
ifeq 14
13: aload 0
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
areturn
14: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unknown value: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 value Lorg/graalvm/polyglot/Value;
MethodParameters:
Name Flags
value final
public void enterContext();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.enter:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/TestHelper;
public void leaveContext();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.leave:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/TestHelper;
public void assumeES6OrLater();
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.test.TestHelper.enterContext:()V
1: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
bipush 6
if_icmplt 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: invokestatic org.junit.Assume.assumeTrue:(Z)V
4: aload 0
invokevirtual com.oracle.truffle.js.test.TestHelper.leaveContext:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/js/test/TestHelper;
}
SourceFile: "TestHelper.java"
NestMembers:
com.oracle.truffle.js.test.TestHelper$1 com.oracle.truffle.js.test.TestHelper$ParsedFunction
InnerClasses:
com.oracle.truffle.js.test.TestHelper$1
public ParsedFunction = com.oracle.truffle.js.test.TestHelper$ParsedFunction of com.oracle.truffle.js.test.TestHelper
public abstract Entry = java.util.Map$Entry of java.util.Map
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source