public class com.oracle.truffle.js.test.builtins.DeleteTest extends com.oracle.truffle.js.test.JSTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.test.builtins.DeleteTest
super_class: com.oracle.truffle.js.test.JSTest
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.js.test.JSTest.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/builtins/DeleteTest;
public void testDeleteGlobalVariable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var a = 'foo'; delete a;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(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/test/builtins/DeleteTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDeleteSymbol();
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
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var s = Symbol('foo'); delete s.nonExistentProperty;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var s = Symbol('foo'); s.bar='bar'; delete s.bar"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(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/test/builtins/DeleteTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDeleteBigInt();
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
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var bi = BigInt(1234567890); delete bi.nonExistentProperty;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var bi = BigInt(1234567890); bi.bar='yes'; delete bi.bar;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(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/test/builtins/DeleteTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDeleteSafeInteger();
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
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var li = 2147483647; li+=li; delete li.nonExistentProperty;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var li = 2147483647; li+=li; li.bar='yes'; delete li.bar;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(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/test/builtins/DeleteTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDeleteString();
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
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var str='str'; delete str.nonExistentProperty;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var str='str'; str.bar='yes'; delete str.bar;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
2: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var str='str'; delete str[1];"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
3: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var str='str'; delete str[-1];"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "var str='str'; delete str[10];"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/js/test/builtins/DeleteTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDeleteForeign();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new com.oracle.truffle.js.test.polyglot.ForeignTestMap
dup
invokespecial com.oracle.truffle.js.test.polyglot.ForeignTestMap.<init>:()V
astore 1
start local 1 1: aload 1
invokevirtual com.oracle.truffle.js.test.polyglot.ForeignTestMap.getContainer:()Ljava/util/HashMap;
ldc "foo"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 1
invokevirtual com.oracle.truffle.js.test.polyglot.ForeignTestMap.getContainer:()Ljava/util/HashMap;
ldc "bar"
ldc "test"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
invokevirtual com.oracle.truffle.js.test.polyglot.ForeignTestMap.getContainer:()Ljava/util/HashMap;
ldc "1"
ldc "test"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 1
invokevirtual com.oracle.truffle.js.test.polyglot.ForeignTestMap.getContainer:()Ljava/util/HashMap;
ldc "1.5"
ldc "test"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "foreign"
aload 1
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
6: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "delete foreign.nonExistentProperty;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "delete foreign.foo;"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
8: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "delete foreign[1];"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "delete foreign[1.5];"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "delete foreign[foreign];"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "delete foreign[new String('test')];"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.js.test.builtins.DeleteTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
ldc "delete foreign[new Number(123)];"
invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/js/test/builtins/DeleteTest;
1 14 1 map Lcom/oracle/truffle/js/test/polyglot/ForeignTestMap;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDeleteSuperReference();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "js"
aastore
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
new java.lang.StringBuilder
dup
ldc "let success = false;class C extends class {} { constructor() { super(); delete super.x; }}try { new C();} catch (e) { if (e instanceof ReferenceError) { success = e.message.includes("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: ldc "Unsupported reference"
invokestatic com.oracle.truffle.js.runtime.JSRuntime.quote:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc " }"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc "success;"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
8: invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
9: invokestatic org.junit.Assert.assertTrue:(Z)V
10: aload 3
ifnull 16
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 16
StackMap locals: com.oracle.truffle.js.test.builtins.DeleteTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
11: astore 1
aload 3
ifnull 12
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
12: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
aload 1
ifnonnull 14
aload 2
astore 1
goto 15
StackMap locals:
StackMap stack:
14: aload 1
aload 2
if_acmpeq 15
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 1
athrow
16: StackMap locals:
StackMap stack:
aconst_null
astore 1
aconst_null
astore 2
17: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "js"
aastore
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 18: aload 3
ldc "js"
new java.lang.StringBuilder
dup
ldc "let success = false, sideEffect = false;class C extends class {} { constructor() { super(); delete super[sideEffect = true, 'x']; }}try { new C();} catch (e) { if (e instanceof ReferenceError) { success = !sideEffect && e.message.includes("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
19: ldc "Unsupported reference"
invokestatic com.oracle.truffle.js.runtime.JSRuntime.quote:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: ldc " }"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: ldc "success;"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
24: invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
25: invokestatic org.junit.Assert.assertTrue:(Z)V
26: aload 3
ifnull 32
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 32
StackMap locals: com.oracle.truffle.js.test.builtins.DeleteTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
27: astore 1
aload 3
ifnull 28
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
28: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 2
aload 1
ifnonnull 30
aload 2
astore 1
goto 31
StackMap locals:
StackMap stack:
30: aload 1
aload 2
if_acmpeq 31
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
31: aload 1
athrow
32: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lcom/oracle/truffle/js/test/builtins/DeleteTest;
2 12 3 c Lorg/graalvm/polyglot/Context;
18 28 3 c Lorg/graalvm/polyglot/Context;
Exception table:
from to target type
2 10 11 any
1 13 13 any
18 26 27 any
17 29 29 any
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "DeleteTest.java"
InnerClasses:
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context