public abstract class com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode extends com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototypeSymbolOperation
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode
super_class: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototypeSymbolOperation
{
private com.oracle.truffle.js.nodes.access.PropertyGetNode getGlobalNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.PropertyGetNode getUnicodeNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.PropertyGetNode getLengthNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.PropertyGetNode getIndexNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.PropertyGetNode getGroupsNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor readLazyLengthNode;
descriptor: Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.api.object.DynamicObjectLibrary lazyRegexResultNode;
descriptor: Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.cast.JSToLengthNode toLengthNode;
descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToLengthNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.cast.JSToIntegerAsIntNode toIntegerNode;
descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.cast.JSToStringNode toString2Node;
descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.cast.JSToStringNode toString3Node;
descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.cast.JSToStringNode toString4Node;
descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.function.JSFunctionCallNode functionCallNode;
descriptor: Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.IsJSObjectNode isObjectNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.unary.IsCallableNode isCallableNode;
descriptor: Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.ReadElementNode readNamedCaptureGroupNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.cast.JSToObjectNode toObjectNode;
descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.HasHiddenKeyCacheNode hasLazyRegexResultNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/HasHiddenKeyCacheNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.builtins.helper.JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode execIgnoreLastIndexNode;
descriptor: Lcom/oracle/truffle/js/builtins/helper/JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexCompiledRegexAccessor compiledRegexAccessor;
descriptor: Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexFlagsAccessor flagsAccessor;
descriptor: Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor resultAccessor;
descriptor: Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexNamedCaptureGroupsAccessor namedCaptureGroupsAccessor;
descriptor: Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.builtins.helper.IsPristineObjectNode isPristineObjectNode;
descriptor: Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.IsJSClassNode isJSRegExpNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/IsJSClassNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private final com.oracle.truffle.api.profiles.ConditionProfile unicodeProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile globalProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile stickyProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile functionalReplaceProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile lazyResultArrayProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile noMatchProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile validPositionProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile hasNamedCaptureGroupsProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile dollarProfile;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final com.oracle.truffle.js.runtime.util.StringBuilderProfile stringBuilderProfile;
descriptor: Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
flags: (0x0010) ACC_FINAL
final com.oracle.truffle.api.profiles.BranchProfile invalidGroupNumberProfile;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0010) ACC_FINAL
private final com.oracle.truffle.api.profiles.ValueProfile compiledRegexProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ValueProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile growProfile;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, 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=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins;
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.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.function.JSBuiltin);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototypeSymbolOperation.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
1: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.unicodeProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
2: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.globalProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
3: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stickyProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
4: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.functionalReplaceProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
5: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.lazyResultArrayProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
6: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.noMatchProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
7: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.validPositionProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
8: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.hasNamedCaptureGroupsProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
9: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.dollarProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
10: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.invalidGroupNumberProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
11: aload 0
invokestatic com.oracle.truffle.api.profiles.ValueProfile.createIdentityProfile:()Lcom/oracle/truffle/api/profiles/ValueProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexProfile:Lcom/oracle/truffle/api/profiles/ValueProfile;
12: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
13: aload 0
ldc "global"
iconst_0
aload 1
invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.create:(Ljava/lang/Object;ZLcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGlobalNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
14: aload 0
ldc "index"
iconst_0
aload 1
invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.create:(Ljava/lang/Object;ZLcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getIndexNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
15: aload 0
invokestatic com.oracle.truffle.js.nodes.cast.JSToIntegerAsIntNode.create:()Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toIntegerNode:Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
16: aload 0
invokestatic com.oracle.truffle.js.nodes.access.IsJSObjectNode.create:()Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isObjectNode:Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
17: aload 0
invokestatic com.oracle.truffle.js.nodes.unary.IsCallableNode.create:()Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isCallableNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
18: aload 0
getstatic com.oracle.truffle.js.runtime.builtins.JSArray.LAZY_REGEX_RESULT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
invokestatic com.oracle.truffle.js.nodes.access.HasHiddenKeyCacheNode.create:(Lcom/oracle/truffle/api/object/HiddenKey;)Lcom/oracle/truffle/js/nodes/access/HasHiddenKeyCacheNode;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.hasLazyRegexResultNode:Lcom/oracle/truffle/js/nodes/access/HasHiddenKeyCacheNode;
19: aload 0
aload 1
invokevirtual com.oracle.truffle.js.runtime.JSContext.getStringLengthLimit:()I
invokestatic com.oracle.truffle.js.runtime.util.StringBuilderProfile.create:(I)Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
20: aload 0
invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
iconst_5
invokevirtual com.oracle.truffle.api.library.LibraryFactory.createDispatched:(I)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.lazyRegexResultNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
21: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 22 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 22 2 builtin Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
MethodParameters:
Name Flags
context
builtin
protected java.lang.String replaceCached(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.String, java.lang.String, com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[], com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[], com.oracle.truffle.js.nodes.cast.JSToStringNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.checkObject:(Lcom/oracle/truffle/api/object/DynamicObject;)V
1: aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isPristine:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 3
2: aload 0
aload 1
aload 7
aload 2
invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
aload 4
aload 5
aload 6
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.replaceInternal:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Ljava/lang/String;[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;)Ljava/lang/String;
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 7
aload 2
invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
aload 4
iconst_0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.replaceAccordingToSpec:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Ljava/lang/Object;Z)Ljava/lang/String;
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 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 rx Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 searchString Ljava/lang/Object;
0 4 3 replaceValue Ljava/lang/String;
0 4 4 cachedReplaceValue Ljava/lang/String;
0 4 5 cachedParsedReplaceValueWithNamedCG [Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
0 4 6 cachedParsedReplaceValueWithoutNamedCG [Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
0 4 7 toString1Node Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"cachedReplaceValue.equals(replaceValue)"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached(value = "replaceValue")
4:
com.oracle.truffle.api.dsl.Cached(value = "parseReplaceValueWithNCG(replaceValue)", dimensions = 1)
5:
com.oracle.truffle.api.dsl.Cached(value = "parseReplaceValueWithoutNCG(replaceValue)", dimensions = 1)
6:
com.oracle.truffle.api.dsl.Cached(value = "create()")
MethodParameters:
Name Flags
rx
searchString
replaceValue
cachedReplaceValue
cachedParsedReplaceValueWithNamedCG
cachedParsedReplaceValueWithoutNamedCG
toString1Node
protected java.lang.String replaceDynamic(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.cast.JSToStringNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.checkObject:(Lcom/oracle/truffle/api/object/DynamicObject;)V
1: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.functionalReplaceProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isCallableNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
aload 3
invokevirtual com.oracle.truffle.js.nodes.unary.IsCallableNode.executeBoolean:(Ljava/lang/Object;)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
istore 5
start local 5 2: iload 5
ifeq 5
3: aload 3
astore 6
start local 6 4: goto 9
end local 6 5: StackMap locals: int
StackMap stack:
aload 0
aload 3
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString2:(Ljava/lang/Object;)Ljava/lang/String;
astore 7
start local 7 6: aload 7
astore 6
start local 6 7: aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isPristine:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 9
8: aload 0
aload 1
aload 4
aload 2
invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
aload 7
aconst_null
aconst_null
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.replaceInternal:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Ljava/lang/String;[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;)Ljava/lang/String;
areturn
end local 7 9: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 1
aload 4
aload 2
invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
aload 6
iload 5
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.replaceAccordingToSpec:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Ljava/lang/Object;Z)Ljava/lang/String;
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 10 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 10 1 rx Lcom/oracle/truffle/api/object/DynamicObject;
0 10 2 searchString Ljava/lang/Object;
0 10 3 replaceValue Ljava/lang/Object;
0 10 4 toString1Node Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
2 10 5 functionalReplace Z
4 5 6 replaceVal Ljava/lang/Object;
7 10 6 replaceVal Ljava/lang/Object;
6 9 7 replaceString Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"replaceCached"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached(value = "create()")
MethodParameters:
Name Flags
rx
searchString
replaceValue
toString1Node
protected java.lang.String doNoObject(java.lang.Object, java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc "RegExp.prototype.@@replace"
aload 1
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorIncompatibleReceiver:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 1 1 rx Ljava/lang/Object;
0 1 2 searchString Ljava/lang/Object;
0 1 3 replaceValue Ljava/lang/Object;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.Fallback()
MethodParameters:
Name Flags
rx
searchString
replaceValue
private void checkObject(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isObjectNode:Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.IsJSObjectNode.executeBoolean:(Ljava/lang/Object;)Z
ifne 2
1: ldc "RegExp.prototype.@@replace"
aload 1
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorIncompatibleReceiver:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 3 1 rx Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
rx
static com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] parseReplaceValueWithNCG(java.lang.String);
descriptor: (Ljava/lang/String;)[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokestatic com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.parseReplaceValue:(Ljava/lang/String;Z)[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 replaceValue Ljava/lang/String;
MethodParameters:
Name Flags
replaceValue
static com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] parseReplaceValueWithoutNCG(java.lang.String);
descriptor: (Ljava/lang/String;)[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokestatic com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.parseReplaceValue:(Ljava/lang/String;Z)[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 replaceValue Ljava/lang/String;
MethodParameters:
Name Flags
replaceValue
static com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] parseReplaceValue(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
bipush 100
iload 1
invokestatic com.oracle.truffle.js.builtins.helper.ReplaceStringParser.parse:(Ljava/lang/String;IZ)[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 replaceValue Ljava/lang/String;
0 1 1 parseNamedCG Z
MethodParameters:
Name Flags
replaceValue
parseNamedCG
private void initTRegexAccessors();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
ifnull 1
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.flagsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
ifnull 1
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.resultAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
ifnull 1
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.execIgnoreLastIndexNode:Lcom/oracle/truffle/js/builtins/helper/JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode;
ifnonnull 6
1: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexCompiledRegexAccessor.create:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexCompiledRegexAccessor
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
3: aload 0
aload 0
invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexFlagsAccessor.create:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexFlagsAccessor
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.flagsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
4: aload 0
aload 0
invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor.create:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.resultAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
5: aload 0
aload 0
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
iconst_0
invokestatic com.oracle.truffle.js.builtins.helper.JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/builtins/helper/JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.builtins.helper.JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.execIgnoreLastIndexNode:Lcom/oracle/truffle/js/builtins/helper/JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode;
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
private java.lang.String replaceInternal(com.oracle.truffle.api.object.DynamicObject, java.lang.String, java.lang.String, com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[], com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[]);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Ljava/lang/String;[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;[Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, locals=20, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.initTRegexAccessors:()V
1: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexProfile:Lcom/oracle/truffle/api/profiles/ValueProfile;
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.getCompiledRegex:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.profiles.ValueProfile.profile:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 2: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
aload 6
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexCompiledRegexAccessor.flags:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 3: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.globalProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.flagsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
aload 7
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexFlagsAccessor.global:(Ljava/lang/Object;)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
istore 8
start local 8 4: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.unicodeProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.flagsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
aload 7
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexFlagsAccessor.unicode:(Ljava/lang/Object;)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
istore 9
start local 9 5: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stickyProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.flagsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
aload 7
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexFlagsAccessor.sticky:(Ljava/lang/Object;)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
istore 10
start local 10 6: aload 2
invokevirtual java.lang.String.length:()I
istore 11
start local 11 7: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
iload 11
bipush 16
iadd
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.newStringBuilder:(I)Ljava/lang/StringBuilder;
astore 12
start local 12 8: iconst_0
istore 13
start local 13 9: iconst_m1
istore 14
start local 14 10: iload 10
ifeq 11
aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLastIndex:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLength:(Ljava/lang/Object;)J
l2i
goto 12
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] java.lang.Object java.lang.Object int int int int java.lang.StringBuilder int int
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 15
start local 15 13: aconst_null
astore 16
start local 16 14: goto 50
15: StackMap locals: int java.lang.Object
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.execIgnoreLastIndexNode:Lcom/oracle/truffle/js/builtins/helper/JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode;
aload 1
aload 2
iload 15
i2l
invokevirtual com.oracle.truffle.js.builtins.helper.JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;J)Ljava/lang/Object;
astore 17
start local 17 16: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.noMatchProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.resultAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
aload 17
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor.isMatch:(Ljava/lang/Object;)Z
ifeq 17
iconst_0
goto 18
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] java.lang.Object java.lang.Object int int int int java.lang.StringBuilder int int int java.lang.Object java.lang.Object
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
17: iconst_1
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] java.lang.Object java.lang.Object int int int int java.lang.StringBuilder int int int java.lang.Object java.lang.Object
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
18: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 23
19: iload 14
ifge 51
20: iload 8
ifne 21
iload 10
ifeq 22
21: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.setLastIndex:(Ljava/lang/Object;I)V
22: StackMap locals:
StackMap stack:
aload 2
areturn
23: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRegExpStaticResultUnusedAssumption:()Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 25
24: aload 17
astore 16
25: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.resultAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
aload 17
iconst_0
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor.captureGroupStart:(Ljava/lang/Object;I)I
istore 14
26: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.resultAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
aload 17
iconst_0
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor.captureGroupEnd:(Ljava/lang/Object;I)I
istore 18
start local 18 27: getstatic com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.$assertionsDisabled:Z
ifne 29
iload 14
iflt 28
iload 14
iload 11
if_icmpgt 28
iload 14
iload 13
if_icmpge 29
StackMap locals: int
StackMap stack:
28: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
29: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
aload 12
aload 2
iload 13
iload 14
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
30: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.hasNamedCaptureGroupsProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getNamedCaptureGroupsAccessor:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
aload 6
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexCompiledRegexAccessor.namedCaptureGroups:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexNamedCaptureGroupsAccessor.isNull:(Ljava/lang/Object;)Z
ifeq 31
iconst_0
goto 32
StackMap locals:
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
31: iconst_1
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] java.lang.Object java.lang.Object int int int int java.lang.StringBuilder int int int java.lang.Object java.lang.Object int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
32: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
istore 19
start local 19 33: aload 4
ifnonnull 38
34: aload 3
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
aload 6
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexCompiledRegexAccessor.groupCount:(Ljava/lang/Object;)I
iload 19
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.dollarProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
35: new com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumerTRegex
dup
aload 12
aload 2
aload 3
iload 14
iload 18
aload 17
aload 6
invokespecial com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumerTRegex.<init>:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;IILjava/lang/Object;Ljava/lang/Object;)V
aload 0
36: invokestatic com.oracle.truffle.js.builtins.helper.ReplaceStringParser.process:(Ljava/lang/String;IZLcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Consumer;Ljava/lang/Object;)V
37: goto 42
38: StackMap locals: int
StackMap stack:
iload 19
ifeq 39
aload 4
goto 40
StackMap locals:
StackMap stack:
39: aload 5
40: StackMap locals:
StackMap stack: com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[]
new com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumerTRegex
dup
aload 12
aload 2
aload 3
iload 14
iload 18
aload 17
aload 6
invokespecial com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumerTRegex.<init>:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;IILjava/lang/Object;Ljava/lang/Object;)V
aload 0
41: invokestatic com.oracle.truffle.js.builtins.helper.ReplaceStringParser.processParsed:([Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Consumer;Ljava/lang/Object;)V
42: StackMap locals:
StackMap stack:
iload 18
istore 13
43: iload 8
ifeq 51
44: iload 14
iload 18
if_icmpne 49
45: iload 9
ifeq 46
aload 0
aload 2
iload 18
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.advanceStringIndexUnicode:(Ljava/lang/String;I)I
goto 47
StackMap locals:
StackMap stack:
46: iload 18
iconst_1
iadd
StackMap locals:
StackMap stack: int
47: istore 15
48: goto 50
49: StackMap locals:
StackMap stack:
iload 18
istore 15
end local 19 end local 18 end local 17 50: StackMap locals:
StackMap stack:
iload 15
iload 11
if_icmple 15
51: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionRegexpStaticResult:()Z
ifeq 53
iload 14
iflt 53
52: aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
aload 6
aload 2
iload 14
i2l
aload 16
invokevirtual com.oracle.truffle.js.runtime.JSRealm.setStaticRegexResult:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;Ljava/lang/String;JLjava/lang/Object;)V
53: StackMap locals:
StackMap stack:
iload 8
ifne 54
iload 10
ifeq 57
54: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 10
ifeq 55
iload 13
goto 56
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] java.lang.Object java.lang.Object int int int int java.lang.StringBuilder int int int java.lang.Object
StackMap stack: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject
55: iconst_0
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] java.lang.Object java.lang.Object int int int int java.lang.StringBuilder int int int java.lang.Object
StackMap stack: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject int
56: invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.setLastIndex:(Ljava/lang/Object;I)V
57: StackMap locals:
StackMap stack:
iload 13
iload 11
if_icmpge 59
58: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
aload 12
aload 2
iload 13
iload 11
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
59: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
aload 12
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.toString:(Ljava/lang/StringBuilder;)Ljava/lang/String;
areturn
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 60 1 rx Lcom/oracle/truffle/api/object/DynamicObject;
0 60 2 s Ljava/lang/String;
0 60 3 replaceString Ljava/lang/String;
0 60 4 parsedWithNamedCG [Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
0 60 5 parsedWithoutNamedCG [Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Token;
2 60 6 tRegexCompiledRegex Ljava/lang/Object;
3 60 7 tRegexFlags Ljava/lang/Object;
4 60 8 global Z
5 60 9 unicode Z
6 60 10 sticky Z
7 60 11 length I
8 60 12 accumulatedResult Ljava/lang/StringBuilder;
9 60 13 lastMatchEnd I
10 60 14 matchStart I
13 60 15 lastIndex I
14 60 16 lastRegexResult Ljava/lang/Object;
16 50 17 tRegexResult Ljava/lang/Object;
27 50 18 matchEnd I
33 50 19 namedCG Z
MethodParameters:
Name Flags
rx
s
replaceString
parsedWithNamedCG
parsedWithoutNamedCG
private java.lang.String replaceAccordingToSpec(com.oracle.truffle.api.object.DynamicObject, java.lang.String, java.lang.Object, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Ljava/lang/Object;Z)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=19, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aconst_null
astore 6
start local 6 2: iload 4
ifeq 5
3: aload 3
checkcast com.oracle.truffle.api.object.DynamicObject
astore 6
4: goto 6
5: StackMap locals: java.lang.String com.oracle.truffle.api.object.DynamicObject
StackMap stack:
aload 3
checkcast java.lang.String
astore 5
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.globalProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
aload 1
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGlobalNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getFlag:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
istore 7
start local 7 7: iconst_0
istore 8
start local 8 8: iload 7
ifeq 11
9: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.unicodeProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
aload 1
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGetUnicodeNode:()Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getFlag:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
istore 8
10: aload 0
aload 1
iconst_0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.setLastIndex:(Ljava/lang/Object;I)V
11: StackMap locals: int int
StackMap stack:
aconst_null
astore 9
start local 9 12: iload 4
ifeq 14
13: new com.oracle.truffle.js.runtime.util.SimpleArrayList
dup
invokespecial com.oracle.truffle.js.runtime.util.SimpleArrayList.<init>:()V
astore 9
14: StackMap locals: com.oracle.truffle.js.runtime.util.SimpleArrayList
StackMap stack:
aload 2
invokevirtual java.lang.String.length:()I
istore 10
start local 10 15: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
iload 10
bipush 16
iadd
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.newStringBuilder:(I)Ljava/lang/StringBuilder;
astore 11
start local 11 16: iconst_0
istore 12
start local 12 17: iconst_m1
istore 13
start local 13 18: StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object int java.lang.String com.oracle.truffle.api.object.DynamicObject int int com.oracle.truffle.js.runtime.util.SimpleArrayList int java.lang.StringBuilder int int
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.regexExecIntl:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
astore 14
start local 14 19: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.noMatchProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 14
getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpne 20
iconst_1
goto 21
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object int java.lang.String com.oracle.truffle.api.object.DynamicObject int int com.oracle.truffle.js.runtime.util.SimpleArrayList int java.lang.StringBuilder int int com.oracle.truffle.api.object.DynamicObject
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
20: iconst_0
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object int java.lang.String com.oracle.truffle.api.object.DynamicObject int int com.oracle.truffle.js.runtime.util.SimpleArrayList int java.lang.StringBuilder int int com.oracle.truffle.api.object.DynamicObject
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
21: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 24
22: iload 13
ifge 43
23: aload 2
areturn
24: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.lazyResultArrayProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
aload 14
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isLazyResultArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 27
25: aload 0
aload 14
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLazyLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
istore 13
26: goto 28
27: StackMap locals:
StackMap stack:
aload 0
aload 14
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.processNonLazy:(Lcom/oracle/truffle/api/object/DynamicObject;)I
istore 13
28: StackMap locals:
StackMap stack:
iload 4
ifeq 31
29: aload 9
aload 14
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.add:(Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
30: goto 32
31: StackMap locals:
StackMap stack:
aload 0
aload 11
aload 14
aload 2
aload 5
iload 12
iload 13
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.processResult:(Ljava/lang/StringBuilder;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Ljava/lang/String;II)I
istore 12
32: StackMap locals:
StackMap stack:
iload 7
ifeq 43
33: iload 13
ifne 18
34: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLastIndex:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLength:(Ljava/lang/Object;)J
lstore 15
start local 15 35: lload 15
lconst_1
ladd
lstore 17
start local 17 36: lload 17
invokestatic com.oracle.truffle.js.runtime.JSRuntime.longIsRepresentableAsInt:(J)Z
ifeq 41
37: aload 0
aload 1
iload 8
ifeq 38
aload 0
aload 2
lload 15
l2i
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.advanceStringIndexUnicode:(Ljava/lang/String;I)I
goto 39
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object int java.lang.String com.oracle.truffle.api.object.DynamicObject int int com.oracle.truffle.js.runtime.util.SimpleArrayList int java.lang.StringBuilder int int com.oracle.truffle.api.object.DynamicObject long long
StackMap stack: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject
38: lload 17
l2i
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object int java.lang.String com.oracle.truffle.api.object.DynamicObject int int com.oracle.truffle.js.runtime.util.SimpleArrayList int java.lang.StringBuilder int int com.oracle.truffle.api.object.DynamicObject long long
StackMap stack: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode com.oracle.truffle.api.object.DynamicObject int
39: invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.setLastIndex:(Ljava/lang/Object;I)V
40: goto 18
41: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 17
l2d
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.setLastIndex:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 17 end local 15 end local 14 42: goto 18
43: StackMap locals:
StackMap stack:
iload 4
ifeq 49
44: iconst_0
istore 14
start local 14 45: goto 48
46: StackMap locals: int
StackMap stack:
aload 0
aload 11
aload 9
iload 14
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
aload 2
aload 6
iload 12
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.processResultFunctional:(Ljava/lang/StringBuilder;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Lcom/oracle/truffle/api/object/DynamicObject;I)I
istore 12
47: iinc 14 1
StackMap locals:
StackMap stack:
48: iload 14
aload 9
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.size:()I
if_icmplt 46
end local 14 49: StackMap locals:
StackMap stack:
iload 12
iload 10
if_icmpge 51
50: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
aload 11
aload 2
iload 12
iload 10
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
51: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
aload 11
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.toString:(Ljava/lang/StringBuilder;)Ljava/lang/String;
areturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 52 1 rx Lcom/oracle/truffle/api/object/DynamicObject;
0 52 2 s Ljava/lang/String;
0 52 3 replaceValue Ljava/lang/Object;
0 52 4 functionalReplace Z
1 52 5 replaceString Ljava/lang/String;
2 52 6 replaceFunction Lcom/oracle/truffle/api/object/DynamicObject;
7 52 7 global Z
8 52 8 fullUnicode Z
12 52 9 results Lcom/oracle/truffle/js/runtime/util/SimpleArrayList<Lcom/oracle/truffle/api/object/DynamicObject;>;
15 52 10 length I
16 52 11 accumulatedResult Ljava/lang/StringBuilder;
17 52 12 nextSourcePosition I
18 52 13 matchLength I
19 42 14 result Lcom/oracle/truffle/api/object/DynamicObject;
35 42 15 lastI J
36 42 17 nextIndex J
45 49 14 i I
MethodParameters:
Name Flags
rx
s
replaceValue
functionalReplace
private int processNonLazy(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLength:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLength:(Ljava/lang/Object;)J
l2i
istore 2
start local 2 1: aload 0
aload 0
aload 1
iconst_0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.read:(Ljava/lang/Object;I)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString3:(Ljava/lang/Object;)Ljava/lang/String;
astore 3
start local 3 2: aload 0
aload 1
iconst_0
aload 3
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.write:(Ljava/lang/Object;ILjava/lang/Object;)V
3: iconst_1
istore 4
start local 4 4: goto 9
5: StackMap locals: int java.lang.String int
StackMap stack:
aload 0
aload 1
iload 4
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.read:(Ljava/lang/Object;I)Ljava/lang/Object;
astore 5
start local 5 6: aload 5
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 8
7: aload 0
aload 1
iload 4
aload 0
aload 5
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString3:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.write:(Ljava/lang/Object;ILjava/lang/Object;)V
end local 5 8: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 2
if_icmplt 5
end local 4 10: aload 3
invokevirtual java.lang.String.length:()I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 11 1 result Lcom/oracle/truffle/api/object/DynamicObject;
1 11 2 resultLength I
2 11 3 result0Str Ljava/lang/String;
4 10 4 n I
6 8 5 value Ljava/lang/Object;
MethodParameters:
Name Flags
result
private boolean isLazyResultArray(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.hasLazyRegexResultNode:Lcom/oracle/truffle/js/nodes/access/HasHiddenKeyCacheNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.HasHiddenKeyCacheNode.executeHasHiddenKey:(Ljava/lang/Object;)Z
istore 2
start local 2 1: getstatic com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.$assertionsDisabled:Z
ifne 2
iload 2
aload 1
getstatic com.oracle.truffle.js.runtime.builtins.JSArray.LAZY_REGEX_RESULT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.hasProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 3 1 result Lcom/oracle/truffle/api/object/DynamicObject;
1 3 2 isLazyResultArray Z
MethodParameters:
Name Flags
result
private int processResult(java.lang.StringBuilder, com.oracle.truffle.api.object.DynamicObject, java.lang.String, java.lang.String, int, int);
descriptor: (Ljava/lang/StringBuilder;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Ljava/lang/String;II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, 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 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toIntegerNode:Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getIndexNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.nodes.cast.JSToIntegerAsIntNode.executeInt:(Ljava/lang/Object;)I
aload 3
invokevirtual java.lang.String.length:()I
invokestatic java.lang.Math.min:(II)I
iconst_0
invokestatic java.lang.Math.max:(II)I
istore 7
start local 7 1: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.validPositionProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
iload 7
iload 5
if_icmplt 2
iconst_1
goto 3
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode java.lang.StringBuilder com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String int int int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
2: iconst_0
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode java.lang.StringBuilder com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String int int int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
3: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 14
4: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
aload 1
aload 3
iload 5
iload 7
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
5: aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGroups:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 6: aload 8
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 8
7: aload 0
aload 8
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
8: StackMap locals: java.lang.Object
StackMap stack:
aload 4
aload 0
aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLength:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLength:(Ljava/lang/Object;)J
l2i
aload 8
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 9
iconst_1
goto 10
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode java.lang.StringBuilder com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String int int int java.lang.Object
StackMap stack: java.lang.String int
9: iconst_0
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode java.lang.StringBuilder com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String int int int java.lang.Object
StackMap stack: java.lang.String int int
10: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.dollarProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
11: new com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumer
dup
aload 1
aload 3
aload 4
iload 7
iload 7
iload 6
iadd
aload 2
aload 8
checkcast com.oracle.truffle.api.object.DynamicObject
invokespecial com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumer.<init>:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;IILcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
aload 0
12: invokestatic com.oracle.truffle.js.builtins.helper.ReplaceStringParser.process:(Ljava/lang/String;IZLcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/js/builtins/helper/ReplaceStringParser$Consumer;Ljava/lang/Object;)V
13: iload 7
iload 6
iadd
ireturn
end local 8 14: StackMap locals:
StackMap stack:
iload 5
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 15 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 15 1 accumulatedResult Ljava/lang/StringBuilder;
0 15 2 result Lcom/oracle/truffle/api/object/DynamicObject;
0 15 3 s Ljava/lang/String;
0 15 4 replaceString Ljava/lang/String;
0 15 5 nextSourcePosition I
0 15 6 matchLength I
1 15 7 position I
6 14 8 namedCaptures Ljava/lang/Object;
MethodParameters:
Name Flags
accumulatedResult
result
s
replaceString
nextSourcePosition
matchLength
private int processResultFunctional(java.lang.StringBuilder, com.oracle.truffle.api.object.DynamicObject, java.lang.String, com.oracle.truffle.api.object.DynamicObject, int);
descriptor: (Ljava/lang/StringBuilder;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Lcom/oracle/truffle/api/object/DynamicObject;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toIntegerNode:Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getIndexNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.nodes.cast.JSToIntegerAsIntNode.executeInt:(Ljava/lang/Object;)I
aload 3
invokevirtual java.lang.String.length:()I
invokestatic java.lang.Math.min:(II)I
iconst_0
invokestatic java.lang.Math.max:(II)I
istore 6
start local 6 1: aload 0
aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLength:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLength:(Ljava/lang/Object;)J
l2i
istore 7
start local 7 2: aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGroups:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 3: iload 7
iconst_4
iadd
aload 8
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 4
iconst_1
goto 5
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode java.lang.StringBuilder com.oracle.truffle.api.object.DynamicObject java.lang.String com.oracle.truffle.api.object.DynamicObject int int int java.lang.Object
StackMap stack: int
4: iconst_0
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode java.lang.StringBuilder com.oracle.truffle.api.object.DynamicObject java.lang.String com.oracle.truffle.api.object.DynamicObject int int int java.lang.Object
StackMap stack: int int
5: iadd
anewarray java.lang.Object
astore 9
start local 9 6: aload 9
iconst_0
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
aastore
7: aload 9
iconst_1
aload 4
aastore
8: iconst_0
istore 10
start local 10 9: goto 12
10: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 9
iload 10
iconst_2
iadd
aload 0
aload 2
iload 10
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.read:(Ljava/lang/Object;I)Ljava/lang/Object;
aastore
11: iinc 10 1
StackMap locals:
StackMap stack:
12: iload 10
iload 7
if_icmplt 10
end local 10 13: aload 9
iload 7
iconst_2
iadd
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
14: aload 9
iload 7
iconst_3
iadd
aload 3
aastore
15: aload 8
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 17
16: aload 9
iload 7
iconst_4
iadd
aload 8
aastore
17: StackMap locals:
StackMap stack:
aload 0
aload 9
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.callFunction:([Ljava/lang/Object;)Ljava/lang/Object;
astore 10
start local 10 18: aload 0
aload 10
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString2:(Ljava/lang/Object;)Ljava/lang/String;
astore 11
start local 11 19: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.validPositionProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
iload 6
iload 5
if_icmplt 20
iconst_1
goto 21
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode java.lang.StringBuilder com.oracle.truffle.api.object.DynamicObject java.lang.String com.oracle.truffle.api.object.DynamicObject int int int java.lang.Object java.lang.Object[] java.lang.Object java.lang.String
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
20: iconst_0
StackMap locals: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode java.lang.StringBuilder com.oracle.truffle.api.object.DynamicObject java.lang.String com.oracle.truffle.api.object.DynamicObject int int int java.lang.Object java.lang.Object[] java.lang.Object java.lang.String
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
21: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 27
22: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
aload 1
aload 3
iload 5
iload 6
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
23: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
aload 1
aload 11
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;)V
24: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.lazyResultArrayProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isLazyResultArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 26
25: iload 6
aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLazyLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
iadd
ireturn
26: StackMap locals:
StackMap stack:
iload 6
aload 0
aload 2
iconst_0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.read:(Ljava/lang/Object;I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.length:()I
iadd
ireturn
27: StackMap locals:
StackMap stack:
iload 5
ireturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 28 1 accumulatedResult Ljava/lang/StringBuilder;
0 28 2 result Lcom/oracle/truffle/api/object/DynamicObject;
0 28 3 s Ljava/lang/String;
0 28 4 replaceFunction Lcom/oracle/truffle/api/object/DynamicObject;
0 28 5 nextSourcePosition I
1 28 6 position I
2 28 7 resultsLength I
3 28 8 namedCaptures Ljava/lang/Object;
6 28 9 arguments [Ljava/lang/Object;
9 13 10 i I
18 28 10 callResult Ljava/lang/Object;
19 28 11 replacement Ljava/lang/String;
MethodParameters:
Name Flags
accumulatedResult
result
s
replaceFunction
nextSourcePosition
private java.lang.Object callFunction(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.functionCallNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
iconst_0
invokestatic com.oracle.truffle.js.nodes.function.JSFunctionCallNode.create:(Z)Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.function.JSFunctionCallNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.functionCallNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.functionCallNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall:([Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 arguments [Ljava/lang/Object;
MethodParameters:
Name Flags
arguments
private java.lang.String toString2(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString2Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.cast.JSToStringNode.create:()Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.cast.JSToStringNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString2Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString2Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
private java.lang.String toString3(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString3Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.cast.JSToStringNode.create:()Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.cast.JSToStringNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString3Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString3Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
final java.lang.String toString4(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString4Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.cast.JSToStringNode.create:()Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.cast.JSToStringNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString4Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString4Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
private int getLazyLength(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readLazyLengthNode:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor.create:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readLazyLengthNode:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readLazyLengthNode:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
aload 1
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.lazyRegexResultNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetRegexResult:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObjectLibrary;)Ljava/lang/Object;
iconst_0
invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor.captureGroupLength:(Ljava/lang/Object;I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 obj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
obj
private com.oracle.truffle.js.nodes.access.PropertyGetNode getGetUnicodeNode();
descriptor: ()Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getUnicodeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
ldc "unicode"
iconst_0
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.create:(Ljava/lang/Object;ZLcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.PropertyGetNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getUnicodeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getUnicodeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
private boolean isPristine(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isPristineObjectNode:Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.createRegExpExecAndMatch:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.builtins.helper.IsPristineObjectNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isPristineObjectNode:Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isPristineObjectNode:Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
aload 1
invokevirtual com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 rx Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
rx
private java.lang.Object getLength(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLengthNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
ldc "length"
iconst_0
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.create:(Ljava/lang/Object;ZLcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.PropertyGetNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLengthNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLengthNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
private long toLength(java.lang.Object);
descriptor: (Ljava/lang/Object;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLengthNode:Lcom/oracle/truffle/js/nodes/cast/JSToLengthNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.cast.JSToLengthNode.create:()Lcom/oracle/truffle/js/nodes/cast/JSToLengthNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.cast.JSToLengthNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLengthNode:Lcom/oracle/truffle/js/nodes/cast/JSToLengthNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLengthNode:Lcom/oracle/truffle/js/nodes/cast/JSToLengthNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.cast.JSToLengthNode.executeLong:(Ljava/lang/Object;)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 value Ljava/lang/Object;
MethodParameters:
Name Flags
value
private java.lang.Object getGroups(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGroupsNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
ldc "groups"
iconst_0
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.create:(Ljava/lang/Object;ZLcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.PropertyGetNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGroupsNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGroupsNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 regexResult Ljava/lang/Object;
MethodParameters:
Name Flags
regexResult
final java.lang.Object readNamedCaptureGroup(java.lang.Object, java.lang.String);
descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readNamedCaptureGroupNode:Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.access.ReadElementNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.ReadElementNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readNamedCaptureGroupNode:Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readNamedCaptureGroupNode:Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
aload 1
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.executeWithTargetAndIndex:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 namedCaptureGroups Ljava/lang/Object;
0 4 2 groupName Ljava/lang/String;
MethodParameters:
Name Flags
namedCaptureGroups
groupName
private java.lang.Object toObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toObjectNode:Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
aload 0
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.cast.JSToObjectNode.createToObject:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.cast.JSToObjectNode
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toObjectNode:Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toObjectNode:Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
0 4 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
final com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexNamedCaptureGroupsAccessor getNamedCaptureGroupsAccessor();
descriptor: ()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.namedCaptureGroupsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexNamedCaptureGroupsAccessor.create:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexNamedCaptureGroupsAccessor
putfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.namedCaptureGroupsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.namedCaptureGroupsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$JSRegExpReplaceNode;
}
SourceFile: "RegExpPrototypeBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public abstract JSRegExpReplaceNode = com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode of com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins
private final ReplaceStringConsumer = com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumer of com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode
private final ReplaceStringConsumerTRegex = com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumerTRegex of com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode
public abstract RegExpPrototypeSymbolOperation = com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototypeSymbolOperation of com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins
public abstract JSRegExpExecIntlIgnoreLastIndexNode = com.oracle.truffle.js.builtins.helper.JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode of com.oracle.truffle.js.builtins.helper.JSRegExpExecIntlNode
public abstract Consumer = com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Consumer of com.oracle.truffle.js.builtins.helper.ReplaceStringParser
public Token = com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token of com.oracle.truffle.js.builtins.helper.ReplaceStringParser
public final TRegexCompiledRegexAccessor = com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexCompiledRegexAccessor of com.oracle.truffle.js.runtime.util.TRegexUtil
public final TRegexFlagsAccessor = com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexFlagsAccessor of com.oracle.truffle.js.runtime.util.TRegexUtil
public final TRegexNamedCaptureGroupsAccessor = com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexNamedCaptureGroupsAccessor of com.oracle.truffle.js.runtime.util.TRegexUtil
public final TRegexResultAccessor = com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor of com.oracle.truffle.js.runtime.util.TRegexUtil