public final class com.oracle.truffle.js.runtime.builtins.JSRegExp extends com.oracle.truffle.js.runtime.builtins.JSNonProxy implements com.oracle.truffle.js.runtime.builtins.JSConstructorFactory$Default, com.oracle.truffle.js.runtime.builtins.PrototypeSupplier
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.runtime.builtins.JSRegExp
super_class: com.oracle.truffle.js.runtime.builtins.JSNonProxy
{
public static final com.oracle.truffle.js.runtime.builtins.JSRegExp INSTANCE;
descriptor: Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "RegExp"
public static final java.lang.String PROTOTYPE_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "RegExp.prototype"
public static final java.lang.String MULTILINE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "multiline"
public static final java.lang.String GLOBAL;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "global"
public static final java.lang.String IGNORE_CASE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "ignoreCase"
public static final java.lang.String STICKY;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "sticky"
public static final java.lang.String UNICODE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "unicode"
public static final java.lang.String DOT_ALL;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "dotAll"
public static final java.lang.String SOURCE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "source"
public static final java.lang.String FLAGS;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "flags"
public static final java.lang.String LAST_INDEX;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "lastIndex"
public static final java.lang.String INPUT;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "input"
public static final java.lang.String GROUPS;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "groups"
public static final java.lang.String INDEX;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "index"
public static final java.lang.String INDICES;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "indices"
public static final com.oracle.truffle.js.runtime.objects.PropertyProxy LAZY_INDEX_PROXY;
descriptor: Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final com.oracle.truffle.api.object.HiddenKey GROUPS_RESULT_ID;
descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final java.util.Comparator<com.oracle.truffle.js.runtime.util.Pair<java.lang.Integer, java.lang.String>> NAMED_GROUPS_COMPARATOR;
descriptor: Ljava/util/Comparator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Comparator<Lcom/oracle/truffle/js/runtime/util/Pair<Ljava/lang/Integer;Ljava/lang/String;>;>;
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/JSRegExp;
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.JSRegExp.$assertionsDisabled:Z
3: new com.oracle.truffle.js.runtime.builtins.JSRegExp
dup
invokespecial com.oracle.truffle.js.runtime.builtins.JSRegExp.<init>:()V
putstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
4: new com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyRegexResultIndexProxyProperty
dup
invokespecial com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyRegexResultIndexProxyProperty.<init>:()V
putstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.LAZY_INDEX_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
5: new com.oracle.truffle.api.object.HiddenKey
dup
ldc "regexResult"
invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
putstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.GROUPS_RESULT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
6: new com.oracle.truffle.js.runtime.builtins.JSRegExp$1
dup
invokespecial com.oracle.truffle.js.runtime.builtins.JSRegExp$1.<init>:()V
putstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.NAMED_GROUPS_COMPARATOR:Ljava/util/Comparator;
7: 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.JSNonProxy.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
public static java.lang.Object getCompiledRegex(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
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.JSRegExp.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.isJSRegExp:(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.JSRegExpObject
invokevirtual com.oracle.truffle.js.runtime.builtins.JSRegExpObject.getCompiledRegex:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
thisObj
public static com.oracle.truffle.js.runtime.builtins.JSObjectFactory getGroupsFactory(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
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.JSRegExp.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.isJSRegExp:(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.JSRegExpObject
invokevirtual com.oracle.truffle.js.runtime.builtins.JSRegExpObject.getGroupsFactory:()Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
thisObj
public static java.lang.Object getRealm(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
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.JSRegExp.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.isJSRegExp:(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.JSRegExpObject
invokevirtual com.oracle.truffle.js.runtime.builtins.JSRegExpObject.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
thisObj
public static boolean getLegacyFeaturesEnabled(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
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.JSRegExp.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.isJSRegExp:(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.JSRegExpObject
invokevirtual com.oracle.truffle.js.runtime.builtins.JSRegExpObject.getLegacyFeaturesEnabled:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
thisObj
public static com.oracle.truffle.api.object.DynamicObject create(com.oracle.truffle.js.runtime.JSContext, java.lang.Object);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.computeGroupsFactory:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
astore 2
start local 2 1: aload 0
aload 1
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.create:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 3
start local 3 2: aload 0
aload 3
ldc "lastIndex"
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableWritable:()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
3: getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.$assertionsDisabled:Z
ifne 4
aload 3
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.isJSRegExp:(Ljava/lang/Object;)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: com.oracle.truffle.js.runtime.builtins.JSObjectFactory com.oracle.truffle.api.object.DynamicObject
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 ctx Lcom/oracle/truffle/js/runtime/JSContext;
0 5 1 compiledRegex Ljava/lang/Object;
1 5 2 groupsFactory Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
2 5 3 obj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
ctx
compiledRegex
public static com.oracle.truffle.api.object.DynamicObject create(com.oracle.truffle.js.runtime.JSContext, java.lang.Object, com.oracle.truffle.js.runtime.builtins.JSObjectFactory);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_1
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.create:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;Z)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lcom/oracle/truffle/js/runtime/JSContext;
0 1 1 compiledRegex Ljava/lang/Object;
0 1 2 groupsFactory Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
MethodParameters:
Name Flags
context
compiledRegex
groupsFactory
public static com.oracle.truffle.api.object.DynamicObject create(com.oracle.truffle.js.runtime.JSContext, java.lang.Object, com.oracle.truffle.js.runtime.builtins.JSObjectFactory, boolean);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;Z)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
astore 4
start local 4 1: aload 4
aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRegExpFactory:()Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
aload 1
aload 2
iload 3
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExpObject.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;Z)Lcom/oracle/truffle/api/object/DynamicObject;
astore 5
start local 5 2: getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.$assertionsDisabled:Z
ifne 3
aload 5
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.isJSRegExp:(Ljava/lang/Object;)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.api.object.DynamicObject
StackMap stack:
aload 0
aload 5
invokevirtual com.oracle.truffle.js.runtime.JSContext.trackAllocation:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
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 context Lcom/oracle/truffle/js/runtime/JSContext;
0 4 1 compiledRegex Ljava/lang/Object;
0 4 2 groupsFactory Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
0 4 3 legacyFeaturesEnabled Z
1 4 4 realm Lcom/oracle/truffle/js/runtime/JSRealm;
2 4 5 regExp Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
context
compiledRegex
groupsFactory
legacyFeaturesEnabled
private static void initialize(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast com.oracle.truffle.js.runtime.builtins.JSRegExpObject
aload 2
invokevirtual com.oracle.truffle.js.runtime.builtins.JSRegExpObject.setCompiledRegex:(Ljava/lang/Object;)V
1: aload 1
checkcast com.oracle.truffle.js.runtime.builtins.JSRegExpObject
aload 0
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.computeGroupsFactory:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
invokevirtual com.oracle.truffle.js.runtime.builtins.JSRegExpObject.setGroupsFactory:(Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 ctx Lcom/oracle/truffle/js/runtime/JSContext;
0 3 1 regExp Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 regex Ljava/lang/Object;
MethodParameters:
Name Flags
ctx
regExp
regex
public static void updateCompilation(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.$assertionsDisabled:Z
ifne 2
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.isJSRegExp:(Ljava/lang/Object;)Z
ifeq 1
aload 2
ifnonnull 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.initialize:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 ctx Lcom/oracle/truffle/js/runtime/JSContext;
0 4 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 regex Ljava/lang/Object;
MethodParameters:
Name Flags
ctx
thisObj
regex
public static com.oracle.truffle.api.object.DynamicObject createGroupsObject(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.builtins.JSObjectFactory, java.lang.Object, java.lang.String, boolean);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;Ljava/lang/Object;Ljava/lang/String;Z)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
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 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
astore 5
start local 5 1: aload 5
aload 1
aload 2
aload 3
iload 4
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExpGroupsObject.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;Ljava/lang/Object;Ljava/lang/String;Z)Lcom/oracle/truffle/api/object/DynamicObject;
astore 6
start local 6 2: aload 0
aload 6
invokevirtual com.oracle.truffle.js.runtime.JSContext.trackAllocation:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
areturn
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 3 0 context Lcom/oracle/truffle/js/runtime/JSContext;
0 3 1 groupsFactory Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
0 3 2 regexResult Ljava/lang/Object;
0 3 3 input Ljava/lang/String;
0 3 4 isIndices Z
1 3 5 realm Lcom/oracle/truffle/js/runtime/JSRealm;
2 3 6 obj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
context
groupsFactory
regexResult
input
isIndices
private static com.oracle.truffle.js.runtime.builtins.JSObjectFactory computeGroupsFactory(com.oracle.truffle.js.runtime.JSContext, java.lang.Object);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadMemberNode;
aload 1
ldc "groups"
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 2
start local 2 1: invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropIsNullNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropIsNullNode;
aload 2
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropIsNullNode.execute:(Ljava/lang/Object;)Z
ifeq 3
2: aconst_null
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.buildGroupsFactory:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 ctx Lcom/oracle/truffle/js/runtime/JSContext;
0 4 1 compiledRegex Ljava/lang/Object;
1 4 2 namedCaptureGroups Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
ctx
compiledRegex
public static com.oracle.truffle.js.runtime.builtins.JSObjectFactory buildGroupsFactory(com.oracle.truffle.js.runtime.JSContext, java.lang.Object);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRegExpGroupsEmptyShape:()Lcom/oracle/truffle/api/object/Shape;
astore 2
start local 2 1: aload 1
invokestatic com.oracle.truffle.js.runtime.interop.JSInteropUtil.keys:(Ljava/lang/Object;)Ljava/util/List;
astore 3
start local 3 2: new java.util.ArrayList
dup
aload 3
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 3: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 8
StackMap locals: com.oracle.truffle.js.runtime.JSContext java.lang.Object com.oracle.truffle.api.object.Shape java.util.List java.util.List top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 5
start local 5 5: aload 5
checkcast java.lang.String
astore 7
start local 7 6: invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadIntMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadIntMemberNode;
aload 1
aload 7
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadIntMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)I
istore 8
start local 8 7: aload 4
new com.oracle.truffle.js.runtime.util.Pair
dup
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 7
invokespecial com.oracle.truffle.js.runtime.util.Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 7 end local 5 8: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
9: aload 4
getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.NAMED_GROUPS_COMPARATOR:Ljava/util/Comparator;
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
10: aload 2
invokestatic com.oracle.truffle.api.object.Shape.newBuilder:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
astore 5
start local 5 11: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 16
StackMap locals: com.oracle.truffle.js.runtime.JSContext java.lang.Object com.oracle.truffle.api.object.Shape java.util.List java.util.List com.oracle.truffle.api.object.Shape$DerivedBuilder top java.util.Iterator
StackMap stack:
12: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.util.Pair
astore 6
start local 6 13: aload 6
invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 8
start local 8 14: aload 6
invokevirtual com.oracle.truffle.js.runtime.util.Pair.getSecond:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 15: aload 5
aload 9
new com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyNamedCaptureGroupProperty
dup
aload 9
iload 8
invokespecial com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyNamedCaptureGroupProperty.<init>:(Ljava/lang/String;I)V
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.getDefault:()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;
pop
end local 9 end local 8 end local 6 16: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
17: aload 5
invokevirtual com.oracle.truffle.api.object.Shape$DerivedBuilder.build:()Lcom/oracle/truffle/api/object/Shape;
astore 2
18: aload 0
getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSObjectFactory.createBound:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory$BoundProto;
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 19 0 ctx Lcom/oracle/truffle/js/runtime/JSContext;
0 19 1 namedCaptureGroups Ljava/lang/Object;
1 19 2 groupsShape Lcom/oracle/truffle/api/object/Shape;
2 19 3 keys Ljava/util/List<Ljava/lang/Object;>;
3 19 4 pairs Ljava/util/List<Lcom/oracle/truffle/js/runtime/util/Pair<Ljava/lang/Integer;Ljava/lang/String;>;>;
5 8 5 key Ljava/lang/Object;
6 8 7 groupName Ljava/lang/String;
7 8 8 groupIndex I
11 19 5 builder Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
13 16 6 pair Lcom/oracle/truffle/js/runtime/util/Pair<Ljava/lang/Integer;Ljava/lang/String;>;
14 16 8 groupIndex I
15 16 9 groupName Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
ctx
namedCaptureGroups
public static java.lang.String prototypeToString(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.getCompiledRegex:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
astore 1
start local 1 1: invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadStringMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadStringMemberNode;
astore 2
start local 2 2: aload 2
aload 1
ldc "pattern"
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadStringMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 3: aload 3
invokevirtual java.lang.String.length:()I
ifne 5
4: ldc "(?:)"
astore 3
5: StackMap locals: java.lang.Object com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadStringMemberNode java.lang.String
StackMap stack:
aload 2
invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadMemberNode;
aload 1
ldc "flags"
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
ldc "source"
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadStringMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 6: new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
1 7 1 regex Ljava/lang/Object;
2 7 2 readString Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadStringMemberNode;
3 7 3 pattern Ljava/lang/String;
6 7 4 flags Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
public static boolean isJSRegExp(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.JSRegExpObject
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.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=6, 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
invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
bipush 6
if_icmpge 7
2: aload 1
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
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 5
start local 5 3: aload 5
aload 1
ldc ""
ldc ""
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.compileEarly:(Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExpObject.create:(Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 4
start local 4 4: aload 3
aload 4
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
5: aload 3
aload 4
ldc "lastIndex"
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableWritable:()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 5 6: goto 8
end local 4 7: StackMap locals: com.oracle.truffle.js.runtime.JSContext
StackMap stack:
aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 4
start local 4 8: StackMap locals: com.oracle.truffle.api.object.DynamicObject
StackMap stack:
aload 1
aload 4
ldc "source"
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.putRegExpPropertyAccessor:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
9: aload 1
aload 4
ldc "flags"
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.putRegExpPropertyAccessor:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
10: aload 1
aload 4
ldc "multiline"
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.putRegExpPropertyAccessor:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
11: aload 1
aload 4
ldc "global"
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.putRegExpPropertyAccessor:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
12: aload 1
aload 4
ldc "ignoreCase"
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.putRegExpPropertyAccessor:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
13: aload 3
invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
bipush 6
if_icmplt 16
14: aload 1
aload 4
ldc "sticky"
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.putRegExpPropertyAccessor:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
15: aload 1
aload 4
ldc "unicode"
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.putRegExpPropertyAccessor:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
16: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
bipush 9
if_icmplt 18
17: aload 1
aload 4
ldc "dotAll"
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.putRegExpPropertyAccessor:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
aload 3
aload 4
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
19: aload 1
aload 4
getstatic com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins.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
20: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
0 21 1 realm Lcom/oracle/truffle/js/runtime/JSRealm;
0 21 2 ctor Lcom/oracle/truffle/api/object/DynamicObject;
1 21 3 ctx Lcom/oracle/truffle/js/runtime/JSContext;
4 7 4 prototype Lcom/oracle/truffle/api/object/DynamicObject;
8 21 4 prototype Lcom/oracle/truffle/api/object/DynamicObject;
3 6 5 shape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
realm
ctor
private static void putRegExpPropertyAccessor(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject, java.lang.String);
descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getstatic com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototypeGetterBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
aload 2
invokevirtual com.oracle.truffle.js.runtime.JSRealm.lookupFunction:(Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 3
start local 3 1: aload 1
aload 2
aload 3
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putBuiltinAccessorProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 realm Lcom/oracle/truffle/js/runtime/JSRealm;
0 3 1 prototype Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 name Ljava/lang/String;
1 3 3 getter Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
realm
prototype
name
private static java.lang.Object compileEarly(com.oracle.truffle.js.runtime.JSRealm, java.lang.String, java.lang.String);
descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$CompileRegexNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$CompileRegexNode;
aload 0
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 0
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
invokestatic com.oracle.truffle.js.runtime.JSContext.createTRegexEngine:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/js/runtime/JSContextOptions;)Ljava/lang/Object;
aload 1
aload 2
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$CompileRegexNode.execute:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 realm Lcom/oracle/truffle/js/runtime/JSRealm;
0 1 1 pattern Ljava/lang/String;
0 1 2 flags Ljava/lang/String;
MethodParameters:
Name Flags
realm
pattern
flags
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=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
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;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
0 1 1 ctx Lcom/oracle/truffle/js/runtime/JSContext;
0 1 2 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
ctx
thisObj
public static com.oracle.truffle.api.object.Shape makeInitialGroupsObjectShape(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
getstatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.BARE_INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSOrdinary;
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.createRootWithNullProto:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/builtins/JSClass;)Lcom/oracle/truffle/api/object/Shape;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
context
public void fillConstructor(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;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.putConstructorSpeciesGetter:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)V
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/runtime/builtins/JSRegExp;
0 2 1 realm Lcom/oracle/truffle/js/runtime/JSRealm;
0 2 2 constructor Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
realm
constructor
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=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
aload 0
invokevirtual com.oracle.truffle.js.runtime.builtins.JSRegExp.createConstructorAndPrototype:(Lcom/oracle/truffle/js/runtime/JSRealm;)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 "RegExp"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
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.JSRegExp.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/JSRegExp;
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.JSRegExp.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/JSRegExp;
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=3, locals=5, 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 "[RegExp "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.prototypeToString:(Lcom/oracle/truffle/api/object/DynamicObject;)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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.prototypeToString:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
areturn
end local 4 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/JSRegExp;
0 3 1 obj Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 depth I
0 3 3 allowSideEffects Z
0 3 4 context Lcom/oracle/truffle/js/runtime/JSContext;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
obj
depth
allowSideEffects
context
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.getRegExpPrototype:()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/JSRegExp;
0 1 1 realm Lcom/oracle/truffle/js/runtime/JSRealm;
MethodParameters:
Name Flags
realm
public static java.lang.CharSequence escapeRegExpPattern(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.CharSequence.length:()I
ifne 2
1: ldc "(?:)"
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.escapeRegExpExtraCharCount:(Ljava/lang/CharSequence;)I
istore 1
start local 1 3: iload 1
ifne 5
4: aload 0
areturn
5: StackMap locals: int
StackMap stack:
aload 0
iload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.escapeRegExpPattern:(Ljava/lang/CharSequence;I)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 pattern Ljava/lang/CharSequence;
3 6 1 extraChars I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
pattern
private static int (java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 23
4: StackMap locals: int int int
StackMap stack:
aload 0
iload 3
invokeinterface java.lang.CharSequence.charAt:(I)C
lookupswitch { // 8
10: 12
13: 12
47: 16
91: 19
92: 5
93: 21
8232: 14
8233: 14
default: 22
}
5: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.$assertionsDisabled:Z
ifne 6
iload 3
iconst_1
iadd
aload 0
invokeinterface java.lang.CharSequence.length:()I
if_icmplt 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
iinc 3 1
7: aload 0
iload 3
invokeinterface java.lang.CharSequence.charAt:(I)C
lookupswitch { // 4
10: 8
13: 8
8232: 10
8233: 10
default: 11
}
8: StackMap locals:
StackMap stack:
iload 1
iconst_1
invokestatic java.lang.Math.max:(II)I
istore 1
9: goto 22
10: StackMap locals:
StackMap stack:
iinc 1 4
11: StackMap locals:
StackMap stack:
goto 22
12: StackMap locals:
StackMap stack:
iinc 1 1
13: goto 22
14: StackMap locals:
StackMap stack:
iinc 1 5
15: goto 22
16: StackMap locals:
StackMap stack:
iload 2
ifne 22
17: iinc 1 1
18: goto 22
19: StackMap locals:
StackMap stack:
iconst_1
istore 2
20: goto 22
21: StackMap locals:
StackMap stack:
iconst_0
istore 2
22: StackMap locals:
StackMap stack:
iinc 3 1
23: StackMap locals:
StackMap stack:
iload 3
aload 0
invokeinterface java.lang.CharSequence.length:()I
if_icmplt 4
24: iload 1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 pattern Ljava/lang/CharSequence;
1 25 1 extraChars I
2 25 2 insideCharClass Z
3 25 3 i I
MethodParameters:
Name Flags
pattern
private static java.lang.String escapeRegExpPattern(java.lang.CharSequence, int);
descriptor: (Ljava/lang/CharSequence;I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
aload 0
invokeinterface java.lang.CharSequence.length:()I
iload 1
iadd
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 42
4: StackMap locals: java.lang.StringBuilder int int
StackMap stack:
aload 0
iload 4
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 5
start local 5 5: iload 5
lookupswitch { // 8
10: 21
13: 23
47: 29
91: 34
92: 6
93: 37
8232: 25
8233: 27
default: 40
}
6: StackMap locals: int
StackMap stack:
getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.$assertionsDisabled:Z
ifne 7
iload 4
iconst_1
iadd
aload 0
invokeinterface java.lang.CharSequence.length:()I
if_icmplt 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 2
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
8: iinc 4 1
9: aload 0
iload 4
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 5
10: iload 5
lookupswitch { // 4
10: 11
13: 13
8232: 15
8233: 17
default: 19
}
11: StackMap locals:
StackMap stack:
aload 2
bipush 110
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
12: goto 41
13: StackMap locals:
StackMap stack:
aload 2
bipush 114
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
14: goto 41
15: StackMap locals:
StackMap stack:
aload 2
ldc "u2028"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: goto 41
17: StackMap locals:
StackMap stack:
aload 2
ldc "u2029"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: goto 41
19: StackMap locals:
StackMap stack:
aload 2
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
20: goto 41
21: StackMap locals:
StackMap stack:
aload 2
ldc "\\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: goto 41
23: StackMap locals:
StackMap stack:
aload 2
ldc "\\r"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: goto 41
25: StackMap locals:
StackMap stack:
aload 2
ldc "\\u2028"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: goto 41
27: StackMap locals:
StackMap stack:
aload 2
ldc "\\u2029"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: goto 41
29: StackMap locals:
StackMap stack:
iload 3
ifne 32
30: aload 2
ldc "\\/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
31: goto 41
32: StackMap locals:
StackMap stack:
aload 2
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
33: goto 41
34: StackMap locals:
StackMap stack:
iconst_1
istore 3
35: aload 2
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
36: goto 41
37: StackMap locals:
StackMap stack:
iconst_0
istore 3
38: aload 2
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
39: goto 41
40: StackMap locals:
StackMap stack:
aload 2
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
41: StackMap locals:
StackMap stack:
iinc 4 1
end local 5 42: StackMap locals:
StackMap stack:
iload 4
aload 0
invokeinterface java.lang.CharSequence.length:()I
if_icmplt 4
43: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 pattern Ljava/lang/CharSequence;
0 44 1 extraChars I
1 44 2 sb Ljava/lang/StringBuilder;
2 44 3 insideCharClass Z
3 44 4 i I
5 42 5 c C
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
pattern
extraChars
}
SourceFile: "JSRegExp.java"
NestMembers:
com.oracle.truffle.js.runtime.builtins.JSRegExp$1 com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyNamedCaptureGroupProperty com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyRegexResultIndexProxyProperty
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
public final DerivedBuilder = com.oracle.truffle.api.object.Shape$DerivedBuilder of com.oracle.truffle.api.object.Shape
public final RegExpPrototypeGetterBuiltins = com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototypeGetterBuiltins of com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins
public abstract Default = com.oracle.truffle.js.runtime.builtins.JSConstructorFactory$Default of com.oracle.truffle.js.runtime.builtins.JSConstructorFactory
public final BoundProto = com.oracle.truffle.js.runtime.builtins.JSObjectFactory$BoundProto of com.oracle.truffle.js.runtime.builtins.JSObjectFactory
com.oracle.truffle.js.runtime.builtins.JSRegExp$1
public LazyNamedCaptureGroupProperty = com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyNamedCaptureGroupProperty of com.oracle.truffle.js.runtime.builtins.JSRegExp
public LazyRegexResultIndexProxyProperty = com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyRegexResultIndexProxyProperty of com.oracle.truffle.js.runtime.builtins.JSRegExp
public abstract CompileRegexNode = com.oracle.truffle.js.runtime.util.TRegexUtil$CompileRegexNode of com.oracle.truffle.js.runtime.util.TRegexUtil
public abstract InteropIsNullNode = com.oracle.truffle.js.runtime.util.TRegexUtil$InteropIsNullNode of com.oracle.truffle.js.runtime.util.TRegexUtil
public abstract InteropReadIntMemberNode = com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadIntMemberNode of com.oracle.truffle.js.runtime.util.TRegexUtil
public abstract InteropReadMemberNode = com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadMemberNode of com.oracle.truffle.js.runtime.util.TRegexUtil
public abstract InteropReadStringMemberNode = com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadStringMemberNode of com.oracle.truffle.js.runtime.util.TRegexUtil