class com.oracle.truffle.js.parser.env.Environment$3 implements com.oracle.truffle.js.parser.env.Environment$WrapClosure
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.js.parser.env.Environment$3
super_class: java.lang.Object
{
final com.oracle.truffle.js.parser.env.Environment this$0;
descriptor: Lcom/oracle/truffle/js/parser/env/Environment;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final java.lang.String val$name;
descriptor: Ljava/lang/String;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.js.parser.env.Environment, java.lang.String);
descriptor: (Lcom/oracle/truffle/js/parser/env/Environment;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // com.oracle.truffle.js.parser.env.Environment$3 this
0: .line 368
aload 0 /* this */
aload 1
putfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
aload 0 /* this */
aload 2
putfield com.oracle.truffle.js.parser.env.Environment$3.val$name:Ljava/lang/String;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.js.parser.env.Environment$3 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/parser/env/Environment$3;
MethodParameters:
Name Flags
this$0 final
val$name final
public com.oracle.truffle.js.nodes.JavaScriptNode apply(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.parser.env.Environment$WrapAccess);
descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/Environment$WrapAccess;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=3
start local 0 // com.oracle.truffle.js.parser.env.Environment$3 this
start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode delegateNode
start local 2 // com.oracle.truffle.js.parser.env.Environment$WrapAccess access
0: .line 372
aload 2 /* access */
getstatic com.oracle.truffle.js.parser.env.Environment$WrapAccess.Delete:Lcom/oracle/truffle/js/parser/env/Environment$WrapAccess;
if_acmpne 3
1: .line 373
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
aconst_null
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.val$name:Ljava/lang/String;
invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantString:(Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDeleteProperty:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZLcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
astore 3 /* scopeAccessNode */
start local 3 // com.oracle.truffle.js.nodes.access.JSTargetableNode scopeAccessNode
2: .line 374
goto 12
end local 3 // com.oracle.truffle.js.nodes.access.JSTargetableNode scopeAccessNode
StackMap locals:
StackMap stack:
3: aload 2 /* access */
getstatic com.oracle.truffle.js.parser.env.Environment$WrapAccess.Write:Lcom/oracle/truffle/js/parser/env/Environment$WrapAccess;
if_acmpne 7
4: .line 375
getstatic com.oracle.truffle.js.parser.env.Environment.$assertionsDisabled:Z
ifne 5
aload 1 /* delegateNode */
instanceof com.oracle.truffle.js.nodes.access.WriteNode
ifne 5
new java.lang.AssertionError
dup
aload 1 /* delegateNode */
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: .line 376
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
aconst_null
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.val$name:Ljava/lang/String;
aconst_null
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.context:Lcom/oracle/truffle/js/runtime/JSContext;
iconst_1
invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createWriteProperty:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/access/WritePropertyNode;
astore 3 /* scopeAccessNode */
start local 3 // com.oracle.truffle.js.nodes.access.JSTargetableNode scopeAccessNode
6: .line 377
goto 12
end local 3 // com.oracle.truffle.js.nodes.access.JSTargetableNode scopeAccessNode
StackMap locals:
StackMap stack:
7: aload 2 /* access */
getstatic com.oracle.truffle.js.parser.env.Environment$WrapAccess.Read:Lcom/oracle/truffle/js/parser/env/Environment$WrapAccess;
if_acmpne 11
8: .line 378
getstatic com.oracle.truffle.js.parser.env.Environment.$assertionsDisabled:Z
ifne 9
aload 1 /* delegateNode */
instanceof com.oracle.truffle.js.nodes.ReadNode
ifne 9
aload 1 /* delegateNode */
instanceof com.oracle.truffle.js.nodes.RepeatableNode
ifne 9
new java.lang.AssertionError
dup
aload 1 /* delegateNode */
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
9: .line 379
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.context:Lcom/oracle/truffle/js/runtime/JSContext;
aconst_null
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.val$name:Ljava/lang/String;
invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createReadProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
astore 3 /* scopeAccessNode */
start local 3 // com.oracle.truffle.js.nodes.access.JSTargetableNode scopeAccessNode
10: .line 380
goto 12
end local 3 // com.oracle.truffle.js.nodes.access.JSTargetableNode scopeAccessNode
11: .line 381
StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
start local 3 // com.oracle.truffle.js.nodes.access.JSTargetableNode scopeAccessNode
12: .line 383
StackMap locals: com.oracle.truffle.js.nodes.access.JSTargetableNode
StackMap stack:
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGlobalScope:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
astore 4 /* globalScope */
start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode globalScope
13: .line 384
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
getfield com.oracle.truffle.js.parser.env.Environment.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
aload 0 /* this */
getfield com.oracle.truffle.js.parser.env.Environment$3.val$name:Ljava/lang/String;
aload 1 /* delegateNode */
aload 4 /* globalScope */
aload 3 /* scopeAccessNode */
invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGlobalVarWrapper:(Ljava/lang/String;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
areturn
end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode globalScope
end local 3 // com.oracle.truffle.js.nodes.access.JSTargetableNode scopeAccessNode
end local 2 // com.oracle.truffle.js.parser.env.Environment$WrapAccess access
end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode delegateNode
end local 0 // com.oracle.truffle.js.parser.env.Environment$3 this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/js/parser/env/Environment$3;
0 14 1 delegateNode Lcom/oracle/truffle/js/nodes/JavaScriptNode;
0 14 2 access Lcom/oracle/truffle/js/parser/env/Environment$WrapAccess;
2 3 3 scopeAccessNode Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
6 7 3 scopeAccessNode Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
10 11 3 scopeAccessNode Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
12 14 3 scopeAccessNode Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
13 14 4 globalScope Lcom/oracle/truffle/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
delegateNode
access
}
SourceFile: "Environment.java"
EnclosingMethod: com.oracle.truffle.js.parser.env.Environment.makeGlobalWrapClosure:(Lcom/oracle/truffle/js/parser/env/Environment$WrapClosure;Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$WrapClosure;
NestHost: com.oracle.truffle.js.parser.env.Environment
InnerClasses:
com.oracle.truffle.js.parser.env.Environment$3
final WrapAccess = com.oracle.truffle.js.parser.env.Environment$WrapAccess of com.oracle.truffle.js.parser.env.Environment
abstract WrapClosure = com.oracle.truffle.js.parser.env.Environment$WrapClosure of com.oracle.truffle.js.parser.env.Environment