public final class com.oracle.truffle.js.runtime.builtins.JSString extends com.oracle.truffle.js.runtime.builtins.JSPrimitive implements com.oracle.truffle.js.runtime.builtins.JSConstructorFactory$WithFunctions
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.runtime.builtins.JSString
super_class: com.oracle.truffle.js.runtime.builtins.JSPrimitive
{
public static final com.oracle.truffle.js.runtime.builtins.JSString INSTANCE;
descriptor: Lcom/oracle/truffle/js/runtime/builtins/JSString;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String TYPE_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "string"
public static final java.lang.String CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "String"
public static final java.lang.String PROTOTYPE_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "String.prototype"
public static final java.lang.String CLASS_NAME_EXTENSIONS;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "StringExtensions"
public static final java.lang.String LENGTH;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "length"
public static final java.lang.String ITERATOR_CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "String Iterator"
public static final java.lang.String ITERATOR_PROTOTYPE_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "String Iterator.prototype"
public static final com.oracle.truffle.api.object.HiddenKey ITERATED_STRING_ID;
descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final com.oracle.truffle.api.object.HiddenKey STRING_ITERATOR_NEXT_INDEX_ID;
descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String REGEXP_ITERATOR_CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "RegExp String Iterator"
public static final java.lang.String REGEXP_ITERATOR_PROTOTYPE_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "RegExp String Iterator.prototype"
public static final com.oracle.truffle.api.object.HiddenKey REGEXP_ITERATOR_ITERATING_REGEXP_ID;
descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final com.oracle.truffle.api.object.HiddenKey REGEXP_ITERATOR_ITERATED_STRING_ID;
descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final com.oracle.truffle.api.object.HiddenKey REGEXP_ITERATOR_GLOBAL_ID;
descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final com.oracle.truffle.api.object.HiddenKey REGEXP_ITERATOR_UNICODE_ID;
descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final com.oracle.truffle.api.object.HiddenKey REGEXP_ITERATOR_DONE_ID;
descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.js.runtime.objects.PropertyProxy LENGTH_PROXY;
descriptor: Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
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=3, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/js/runtime/builtins/JSString;
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.runtime.builtins.JSString.$assertionsDisabled:Z
3: new com.oracle.truffle.js.runtime.builtins.JSString
dup
invokespecial com.oracle.truffle.js.runtime.builtins.JSString.<init>:()V
putstatic com.oracle.truffle.js.runtime.builtins.JSString.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSString;
4: new com.oracle.truffle.api.object.HiddenKey
dup
ldc "IteratedString"
invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
putstatic com.oracle.truffle.js.runtime.builtins.JSString.ITERATED_STRING_ID:Lcom/oracle/truffle/api/object/HiddenKey;
5: new com.oracle.truffle.api.object.HiddenKey
dup
ldc "StringIteratorNextIndex"
invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
putstatic com.oracle.truffle.js.runtime.builtins.JSString.STRING_ITERATOR_NEXT_INDEX_ID:Lcom/oracle/truffle/api/object/HiddenKey;
6: new com.oracle.truffle.api.object.HiddenKey
dup
ldc "IteratingRegExp"
invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
putstatic com.oracle.truffle.js.runtime.builtins.JSString.REGEXP_ITERATOR_ITERATING_REGEXP_ID:Lcom/oracle/truffle/api/object/HiddenKey;
7: new com.oracle.truffle.api.object.HiddenKey
dup
ldc "IteratedString"
invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
putstatic com.oracle.truffle.js.runtime.builtins.JSString.REGEXP_ITERATOR_ITERATED_STRING_ID:Lcom/oracle/truffle/api/object/HiddenKey;
8: new com.oracle.truffle.api.object.HiddenKey
dup
ldc "Global"
invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
putstatic com.oracle.truffle.js.runtime.builtins.JSString.REGEXP_ITERATOR_GLOBAL_ID:Lcom/oracle/truffle/api/object/HiddenKey;
9: new com.oracle.truffle.api.object.HiddenKey
dup
ldc "Unicode"
invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
putstatic com.oracle.truffle.js.runtime.builtins.JSString.REGEXP_ITERATOR_UNICODE_ID:Lcom/oracle/truffle/api/object/HiddenKey;
10: new com.oracle.truffle.api.object.HiddenKey
dup
ldc "Done"
invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
putstatic com.oracle.truffle.js.runtime.builtins.JSString.REGEXP_ITERATOR_DONE_ID:Lcom/oracle/truffle/api/object/HiddenKey;
11: new com.oracle.truffle.js.runtime.builtins.JSString$StringLengthProxyProperty
dup
invokespecial com.oracle.truffle.js.runtime.builtins.JSString$StringLengthProxyProperty.<init>:()V
putstatic com.oracle.truffle.js.runtime.builtins.JSString.LENGTH_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.js.runtime.builtins.JSPrimitive.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
public static com.oracle.truffle.api.object.DynamicObject create(com.oracle.truffle.js.runtime.JSContext, java.lang.CharSequence);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getStringFactory:()Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSStringObject.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 2
start local 2 1: getstatic com.oracle.truffle.js.runtime.builtins.JSString.$assertionsDisabled:Z
ifne 2
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.isJSString:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: com.oracle.truffle.api.object.DynamicObject
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.truffle.js.runtime.JSContext.trackAllocation:(Ljava/lang/Object;)Ljava/lang/Object;
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 context Lcom/oracle/truffle/js/runtime/JSContext;
0 3 1 value Ljava/lang/CharSequence;
1 3 2 stringObj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
context
value
public boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.runtime.builtins.JSPrimitive.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
lstore 3
start local 3 3: lload 3
lconst_0
lcmp
iflt 4
lload 3
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getStringLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
i2l
lcmp
ifge 4
iconst_1
ireturn
StackMap locals: long
StackMap stack:
4: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 5 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 5 2 key Ljava/lang/Object;
3 5 3 index J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
key
public static java.lang.CharSequence getCharSequence(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/CharSequence;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.runtime.builtins.JSString.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.isJSString:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
checkcast com.oracle.truffle.js.runtime.builtins.JSStringObject
invokevirtual com.oracle.truffle.js.runtime.builtins.JSStringObject.getCharSequence:()Ljava/lang/CharSequence;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 obj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
obj
public static java.lang.String getString(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getCharSequence:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/CharSequence;
invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 obj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
obj
public static int getStringLength(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.runtime.builtins.JSString.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.isJSString:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getCharSequence:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/CharSequence;
invokeinterface java.lang.CharSequence.length:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 obj Lcom/oracle/truffle/api/object/DynamicObject;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
obj
public boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject, long);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;J)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: lload 2
lconst_0
lcmp
iflt 2
lload 2
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getStringLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
i2l
lcmp
ifge 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 2
invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
invokespecial com.oracle.truffle.js.runtime.builtins.JSPrimitive.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 3 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 index J
MethodParameters:
Name Flags
thisObj
index
public java.lang.Object getOwnHelper(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
lstore 5
start local 5 1: lconst_0
lload 5
lcmp
ifgt 3
lload 5
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getStringLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
i2l
lcmp
ifge 3
2: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getCharSequence:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/CharSequence;
lload 5
l2i
invokeinterface java.lang.CharSequence.charAt:(I)C
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
areturn
3: StackMap locals: long
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
invokespecial com.oracle.truffle.js.runtime.builtins.JSPrimitive.getOwnHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
areturn
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 4 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 4 1 store Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 thisObj Ljava/lang/Object;
0 4 3 key Ljava/lang/Object;
0 4 4 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
1 4 5 value J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
store
thisObj
key
encapsulatingNode
public java.lang.Object getOwnHelper(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, long, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;JLcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: lconst_0
lload 3
lcmp
ifgt 2
lload 3
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getStringLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
i2l
lcmp
ifge 2
1: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getCharSequence:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/CharSequence;
lload 3
l2i
invokeinterface java.lang.CharSequence.charAt:(I)C
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
lload 3
invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
aload 5
invokespecial com.oracle.truffle.js.runtime.builtins.JSPrimitive.getOwnHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
areturn
end local 5 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/runtime/builtins/JSString;
0 3 1 store Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 thisObj Ljava/lang/Object;
0 3 3 index J
0 3 5 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
store
thisObj
index
encapsulatingNode
public boolean set(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 4
aload 1
if_acmpeq 2
1: aload 1
aload 2
aload 3
aload 4
iload 5
aload 6
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.ordinarySetWithReceiver:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
2: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
lstore 7
start local 7 3: lload 7
lconst_0
lcmp
iflt 7
lload 7
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getStringLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
i2l
lcmp
ifge 7
4: iload 5
ifeq 6
5: lload 7
invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
aload 1
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotWritableProperty:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
6: StackMap locals: long
StackMap stack:
iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
iload 5
aload 6
invokespecial com.oracle.truffle.js.runtime.builtins.JSPrimitive.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
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/runtime/builtins/JSString;
0 8 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 8 2 key Ljava/lang/Object;
0 8 3 value Ljava/lang/Object;
0 8 4 receiver Ljava/lang/Object;
0 8 5 isStrict Z
0 8 6 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
3 8 7 index J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
key
value
receiver
isStrict
encapsulatingNode
public boolean set(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 4 start local 5 start local 6 start local 7 0: aload 5
aload 1
if_acmpeq 2
1: aload 1
lload 2
invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
aload 4
aload 5
iload 6
aload 7
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.ordinarySetWithReceiver:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
2: StackMap locals:
StackMap stack:
lload 2
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getStringLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
i2l
lcmp
ifge 6
3: iload 6
ifeq 5
4: lload 2
invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
aload 1
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotWritableProperty:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 2
aload 4
aload 5
iload 6
aload 7
invokespecial com.oracle.truffle.js.runtime.builtins.JSPrimitive.set:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 7 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 7 2 index J
0 7 4 value Ljava/lang/Object;
0 7 5 receiver Ljava/lang/Object;
0 7 6 isStrict Z
0 7 7 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
index
value
receiver
isStrict
encapsulatingNode
public java.util.List<java.lang.Object> getOwnPropertyKeys(com.oracle.truffle.api.object.DynamicObject, boolean, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getStringLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
istore 4
start local 4 1: iload 2
ifeq 2
lconst_0
iload 4
i2l
invokestatic com.oracle.truffle.js.runtime.array.ScriptArray.makeRangeList:(JJ)Ljava/util/List;
goto 3
StackMap locals: int
StackMap stack:
2: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
StackMap locals:
StackMap stack: java.util.List
3: astore 5
start local 5 4: aload 1
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
invokevirtual com.oracle.truffle.api.object.Shape.getKeyList:()Ljava/util/List;
astore 6
start local 6 5: aload 6
invokeinterface java.util.List.isEmpty:()Z
ifeq 7
6: aload 5
areturn
7: StackMap locals: java.util.List java.util.List
StackMap stack:
new java.util.ArrayList
dup
aload 6
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 7
start local 7 8: iload 2
ifeq 12
9: aload 6
iload 4
aload 7
invokedynamic accept(ILjava/util/List;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
com/oracle/truffle/js/runtime/builtins/JSString.lambda$0(ILjava/util/List;Ljava/lang/Object;)V (6)
(Ljava/lang/Object;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
10: aload 7
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/oracle/truffle/js/runtime/JSRuntime.comparePropertyKeys(Ljava/lang/Object;Ljava/lang/Object;)I (6)
(Ljava/lang/Object;Ljava/lang/Object;)I
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
11: aload 6
aload 7
invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
com/oracle/truffle/js/runtime/builtins/JSString.lambda$2(Ljava/util/List;Ljava/lang/Object;)V (6)
(Ljava/lang/Object;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
12: StackMap locals: java.util.List
StackMap stack:
iload 3
ifeq 14
13: aload 6
aload 7
invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
com/oracle/truffle/js/runtime/builtins/JSString.lambda$3(Ljava/util/List;Ljava/lang/Object;)V (6)
(Ljava/lang/Object;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
14: StackMap locals:
StackMap stack:
aload 5
aload 7
invokestatic com.oracle.truffle.js.runtime.util.IteratorUtil.concatLists:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
areturn
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 15 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 15 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 15 2 strings Z
0 15 3 symbols Z
1 15 4 len I
4 15 5 indices Ljava/util/List<Ljava/lang/Object;>;
5 15 6 keyList Ljava/util/List<Ljava/lang/Object;>;
8 15 7 list Ljava/util/List<Ljava/lang/Object;>;
Signature: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List<Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
strings
symbols
public boolean delete(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
lstore 4
start local 4 1: lload 4
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(J)Z
ifeq 5
lconst_0
lload 4
lcmp
ifgt 5
lload 4
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getStringLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
i2l
lcmp
ifge 5
2: iload 3
ifeq 4
3: ldc "cannot delete index"
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
4: StackMap locals: long
StackMap stack:
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 1
aload 2
iload 3
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.deletePropertyDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
ireturn
end local 4 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/runtime/builtins/JSString;
0 6 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 6 2 key Ljava/lang/Object;
0 6 3 isStrict Z
1 6 4 idx J
MethodParameters:
Name Flags
thisObj
key
isStrict
public com.oracle.truffle.api.object.DynamicObject createPrototype(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
astore 3
start local 3 1: aload 3
getstatic com.oracle.truffle.js.runtime.builtins.JSString.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSString;
aload 1
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getObjectPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.createPrototypeShape:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
astore 4
start local 4 2: aload 4
ldc ""
invokestatic com.oracle.truffle.js.runtime.builtins.JSStringObject.create:(Lcom/oracle/truffle/api/object/Shape;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 5
start local 5 3: aload 3
aload 5
aload 1
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getObjectPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.setOrVerifyPrototype:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
4: aload 3
aload 5
aload 2
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putConstructorProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
5: aload 3
aload 5
ldc "length"
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableNotWritable:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
6: aload 1
aload 5
getstatic com.oracle.truffle.js.builtins.StringPrototypeBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
7: aload 3
invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionNashornCompatibilityMode:()Z
ifne 8
aload 3
invokevirtual com.oracle.truffle.js.runtime.JSContext.getParserOptions:()Lcom/oracle/truffle/js/runtime/JSParserOptions;
invokevirtual com.oracle.truffle.js.runtime.JSParserOptions.getEcmaScriptVersion:()I
bipush 10
if_icmplt 9
8: StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObject
StackMap stack:
aload 1
aload 5
getstatic com.oracle.truffle.js.builtins.StringPrototypeBuiltins.EXTENSION_BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
9: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionAnnexB:()Z
ifeq 14
10: aload 5
ldc "trimStart"
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 11: aload 5
ldc "trimEnd"
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 12: aload 3
aload 5
ldc "trimLeft"
aload 6
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableWritable:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
13: aload 3
aload 5
ldc "trimRight"
aload 7
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableWritable:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
end local 7 end local 6 14: StackMap locals:
StackMap stack:
aload 5
areturn
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 15 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 15 1 realm Lcom/oracle/truffle/js/runtime/JSRealm;
0 15 2 ctor Lcom/oracle/truffle/api/object/DynamicObject;
1 15 3 ctx Lcom/oracle/truffle/js/runtime/JSContext;
2 15 4 protoShape Lcom/oracle/truffle/api/object/Shape;
3 15 5 prototype Lcom/oracle/truffle/api/object/DynamicObject;
11 14 6 trimStart Ljava/lang/Object;
12 14 7 trimEnd Ljava/lang/Object;
MethodParameters:
Name Flags
realm final
ctor
public com.oracle.truffle.api.object.Shape makeInitialShape(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic com.oracle.truffle.js.runtime.builtins.JSString.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSString;
aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getProtoChildShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/Shape;
astore 3
start local 3 1: aload 3
invokestatic com.oracle.truffle.api.object.Shape.newBuilder:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
ldc "length"
getstatic com.oracle.truffle.js.runtime.builtins.JSString.LENGTH_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableNotWritable:()I
bipush 16
ior
invokevirtual com.oracle.truffle.api.object.Shape$DerivedBuilder.addConstantProperty:(Ljava/lang/Object;Ljava/lang/Object;I)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
invokevirtual com.oracle.truffle.api.object.Shape$DerivedBuilder.build:()Lcom/oracle/truffle/api/object/Shape;
astore 3
2: aload 3
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/runtime/builtins/JSString;
0 3 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 3 2 prototype Lcom/oracle/truffle/api/object/DynamicObject;
1 3 3 initialShape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
context
prototype
public static com.oracle.truffle.js.runtime.builtins.JSConstructor createConstructor(com.oracle.truffle.js.runtime.JSRealm);
descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/js/runtime/builtins/JSConstructor;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.runtime.builtins.JSString.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSString;
aload 0
getstatic com.oracle.truffle.js.builtins.StringFunctionBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
invokevirtual com.oracle.truffle.js.runtime.builtins.JSString.createConstructorAndPrototype:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)Lcom/oracle/truffle/js/runtime/builtins/JSConstructor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 realm Lcom/oracle/truffle/js/runtime/JSRealm;
MethodParameters:
Name Flags
realm
public java.lang.String getClassName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "String"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
public java.lang.String getClassName(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.js.runtime.builtins.JSString.getClassName:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 1 1 object Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
object
public java.lang.String getBuiltinToStringTag(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
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.runtime.builtins.JSString.getClassName:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 1 1 object Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
object
public java.lang.String toDisplayStringImpl(com.oracle.truffle.api.object.DynamicObject, int, boolean, com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;IZLcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionNashornCompatibilityMode:()Z
ifeq 2
1: new java.lang.StringBuilder
dup
ldc "[String "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getCharSequence:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/CharSequence;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getString:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
astore 5
start local 5 3: aload 1
aload 0
aload 1
invokevirtual com.oracle.truffle.js.runtime.builtins.JSString.getBuiltinToStringTag:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
iload 2
4: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "PrimitiveValue"
aastore
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
iload 3
5: invokestatic com.oracle.truffle.js.runtime.JSRuntime.objectToConsoleString:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;I[Ljava/lang/String;[Ljava/lang/Object;Z)Ljava/lang/String;
areturn
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 6 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 6 1 obj Lcom/oracle/truffle/api/object/DynamicObject;
0 6 2 depth I
0 6 3 allowSideEffects Z
0 6 4 context Lcom/oracle/truffle/js/runtime/JSContext;
3 6 5 primitiveValue Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
obj
depth
allowSideEffects
context
public static boolean isJSString(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof com.oracle.truffle.js.runtime.builtins.JSStringObject
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public com.oracle.truffle.js.runtime.objects.PropertyDescriptor getOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.js.runtime.builtins.JSString.$assertionsDisabled:Z
ifne 1
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.ordinaryGetOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
astore 3
start local 3 2: aload 3
ifnonnull 4
3: aload 1
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.stringGetIndexProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
areturn
4: StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 5 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 5 2 key Ljava/lang/Object;
2 5 3 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
MethodParameters:
Name Flags
thisObj
key
public boolean usesOrdinaryGetOwnProperty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
public boolean defineOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic com.oracle.truffle.js.runtime.builtins.JSString.$assertionsDisabled:Z
ifne 1
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
lstore 5
start local 5 2: lload 5
lconst_0
lcmp
iflt 4
lload 5
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getStringLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
i2l
lcmp
ifge 4
3: aload 0
aload 1
invokevirtual com.oracle.truffle.js.runtime.builtins.JSString.isExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
aload 3
aload 1
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.stringGetIndexProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
iload 4
invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.isCompatiblePropertyDescriptor:(ZLcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
ireturn
4: StackMap locals: long
StackMap stack:
aload 0
aload 1
aload 2
aload 3
iload 4
invokespecial com.oracle.truffle.js.runtime.builtins.JSPrimitive.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
ireturn
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 5 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 5 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 5 2 key Ljava/lang/Object;
0 5 3 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
0 5 4 doThrow Z
2 5 5 idx J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
key
desc
doThrow
private static com.oracle.truffle.js.runtime.JSException createTypeErrorCannotRedefineStringIndex(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Cannot redefine property: "
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;
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
public static com.oracle.truffle.js.runtime.objects.PropertyDescriptor stringGetIndexProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.js.runtime.builtins.JSString.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.isJSString:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
lstore 2
start local 2 2: lload 2
lconst_0
lcmp
ifge 4
3: aconst_null
areturn
4: StackMap locals: long
StackMap stack:
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getString:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
astore 4
start local 4 5: aload 4
invokevirtual java.lang.String.length:()I
istore 5
start local 5 6: iload 5
i2l
lload 2
lcmp
ifgt 8
7: aconst_null
areturn
8: StackMap locals: java.lang.String int
StackMap stack:
aload 4
lload 2
l2i
lload 2
l2i
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 6
start local 6 9: aload 6
iconst_1
iconst_0
iconst_0
invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createData:(Ljava/lang/Object;ZZZ)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
areturn
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 10 1 key Ljava/lang/Object;
2 10 2 index J
5 10 4 s Ljava/lang/String;
6 10 5 len I
9 10 6 resultStr Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
key
public com.oracle.truffle.api.object.DynamicObject getIntrinsicDefaultProto(com.oracle.truffle.js.runtime.JSRealm);
descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getStringPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSString;
0 1 1 realm Lcom/oracle/truffle/js/runtime/JSRealm;
MethodParameters:
Name Flags
realm
private static void lambda$0(int, java.util.List, java.lang.Object);
descriptor: (ILjava/util/List;Ljava/lang/Object;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=3
start local 2 0: aload 2
instanceof java.lang.String
ifeq 3
aload 2
checkcast java.lang.String
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/String;)Z
ifeq 3
1: getstatic com.oracle.truffle.js.runtime.builtins.JSString.$assertionsDisabled:Z
ifne 2
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
iload 0
i2l
lcmp
ifge 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals:
StackMap stack:
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 4 2 k Ljava/lang/Object;
private static void lambda$2(java.util.List, java.lang.Object);
descriptor: (Ljava/util/List;Ljava/lang/Object;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
instanceof java.lang.String
ifeq 2
aload 1
checkcast java.lang.String
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/String;)Z
ifne 2
1: aload 0
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 k Ljava/lang/Object;
private static void lambda$3(java.util.List, java.lang.Object);
descriptor: (Ljava/util/List;Ljava/lang/Object;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
instanceof com.oracle.truffle.js.runtime.Symbol
ifeq 2
1: aload 0
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 k Ljava/lang/Object;
}
SourceFile: "JSString.java"
NestMembers:
com.oracle.truffle.js.runtime.builtins.JSString$StringLengthProxyProperty
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final DerivedBuilder = com.oracle.truffle.api.object.Shape$DerivedBuilder of com.oracle.truffle.api.object.Shape
public abstract WithFunctions = com.oracle.truffle.js.runtime.builtins.JSConstructorFactory$WithFunctions of com.oracle.truffle.js.runtime.builtins.JSConstructorFactory
public final StringLengthProxyProperty = com.oracle.truffle.js.runtime.builtins.JSString$StringLengthProxyProperty of com.oracle.truffle.js.runtime.builtins.JSString
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles