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: .line 875
            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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
         0: .line 917
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* builtin */
            invokespecial com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototypeSymbolOperation.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
         1: .line 902
            aload 0 /* this */
            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: .line 903
            aload 0 /* this */
            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: .line 904
            aload 0 /* this */
            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: .line 905
            aload 0 /* this */
            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: .line 906
            aload 0 /* this */
            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: .line 907
            aload 0 /* this */
            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: .line 908
            aload 0 /* this */
            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: .line 909
            aload 0 /* this */
            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: .line 910
            aload 0 /* this */
            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: .line 912
            aload 0 /* this */
            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: .line 913
            aload 0 /* this */
            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: .line 914
            aload 0 /* this */
            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: .line 918
            aload 0 /* this */
            ldc "global"
            iconst_0
            aload 1 /* context */
            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: .line 919
            aload 0 /* this */
            ldc "index"
            iconst_0
            aload 1 /* context */
            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: .line 920
            aload 0 /* this */
            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: .line 921
            aload 0 /* this */
            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: .line 922
            aload 0 /* this */
            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: .line 923
            aload 0 /* this */
            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: .line 924
            aload 0 /* this */
            aload 1 /* context */
            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: .line 925
            aload 0 /* this */
            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: .line 926
            return
        end local 2 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject rx
        start local 2 // java.lang.Object searchString
        start local 3 // java.lang.String replaceValue
        start local 4 // java.lang.String cachedReplaceValue
        start local 5 // com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] cachedParsedReplaceValueWithNamedCG
        start local 6 // com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] cachedParsedReplaceValueWithoutNamedCG
        start local 7 // com.oracle.truffle.js.nodes.cast.JSToStringNode toString1Node
         0: .line 934
            aload 0 /* this */
            aload 1 /* rx */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.checkObject:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 935
            aload 0 /* this */
            aload 1 /* rx */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isPristine:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 3
         2: .line 936
            aload 0 /* this */
            aload 1 /* rx */
            aload 7 /* toString1Node */
            aload 2 /* searchString */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 4 /* cachedReplaceValue */
            aload 5 /* cachedParsedReplaceValueWithNamedCG */
            aload 6 /* cachedParsedReplaceValueWithoutNamedCG */
            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: .line 938
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rx */
            aload 7 /* toString1Node */
            aload 2 /* searchString */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 4 /* cachedReplaceValue */
            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 // com.oracle.truffle.js.nodes.cast.JSToStringNode toString1Node
        end local 6 // com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] cachedParsedReplaceValueWithoutNamedCG
        end local 5 // com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] cachedParsedReplaceValueWithNamedCG
        end local 4 // java.lang.String cachedReplaceValue
        end local 3 // java.lang.String replaceValue
        end local 2 // java.lang.Object searchString
        end local 1 // com.oracle.truffle.api.object.DynamicObject rx
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject rx
        start local 2 // java.lang.Object searchString
        start local 3 // java.lang.Object replaceValue
        start local 4 // com.oracle.truffle.js.nodes.cast.JSToStringNode toString1Node
         0: .line 944
            aload 0 /* this */
            aload 1 /* rx */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.checkObject:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 945
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.functionalReplaceProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isCallableNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
            aload 3 /* replaceValue */
            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 /* functionalReplace */
        start local 5 // boolean functionalReplace
         2: .line 947
            iload 5 /* functionalReplace */
            ifeq 5
         3: .line 948
            aload 3 /* replaceValue */
            astore 6 /* replaceVal */
        start local 6 // java.lang.Object replaceVal
         4: .line 949
            goto 9
        end local 6 // java.lang.Object replaceVal
         5: .line 950
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* replaceValue */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString2:(Ljava/lang/Object;)Ljava/lang/String;
            astore 7 /* replaceString */
        start local 7 // java.lang.String replaceString
         6: .line 951
            aload 7 /* replaceString */
            astore 6 /* replaceVal */
        start local 6 // java.lang.Object replaceVal
         7: .line 952
            aload 0 /* this */
            aload 1 /* rx */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isPristine:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 9
         8: .line 953
            aload 0 /* this */
            aload 1 /* rx */
            aload 4 /* toString1Node */
            aload 2 /* searchString */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 7 /* replaceString */
            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 // java.lang.String replaceString
         9: .line 956
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rx */
            aload 4 /* toString1Node */
            aload 2 /* searchString */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 6 /* replaceVal */
            iload 5 /* functionalReplace */
            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 // java.lang.Object replaceVal
        end local 5 // boolean functionalReplace
        end local 4 // com.oracle.truffle.js.nodes.cast.JSToStringNode toString1Node
        end local 3 // java.lang.Object replaceValue
        end local 2 // java.lang.Object searchString
        end local 1 // com.oracle.truffle.api.object.DynamicObject rx
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object rx
        start local 2 // java.lang.Object searchString
        start local 3 // java.lang.Object replaceValue
         0: .line 961
            ldc "RegExp.prototype.@@replace"
            aload 1 /* rx */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorIncompatibleReceiver:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 3 // java.lang.Object replaceValue
        end local 2 // java.lang.Object searchString
        end local 1 // java.lang.Object rx
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject rx
         0: .line 965
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isObjectNode:Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
            aload 1 /* rx */
            invokevirtual com.oracle.truffle.js.nodes.access.IsJSObjectNode.executeBoolean:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 966
            ldc "RegExp.prototype.@@replace"
            aload 1 /* rx */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorIncompatibleReceiver:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         2: .line 968
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.object.DynamicObject rx
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // java.lang.String replaceValue
         0: .line 971
            aload 0 /* replaceValue */
            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 // java.lang.String replaceValue
      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 // java.lang.String replaceValue
         0: .line 975
            aload 0 /* replaceValue */
            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 // java.lang.String replaceValue
      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 // java.lang.String replaceValue
        start local 1 // boolean parseNamedCG
         0: .line 979
            aload 0 /* replaceValue */
            bipush 100
            iload 1 /* parseNamedCG */
            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 // boolean parseNamedCG
        end local 0 // java.lang.String replaceValue
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
         0: .line 983
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.flagsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.resultAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.execIgnoreLastIndexNode:Lcom/oracle/truffle/js/builtins/helper/JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode;
            ifnonnull 6
         1: .line 984
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 985
            aload 0 /* this */
            aload 0 /* this */
            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: .line 986
            aload 0 /* this */
            aload 0 /* this */
            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: .line 987
            aload 0 /* this */
            aload 0 /* this */
            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: .line 988
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            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: .line 990
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject rx
        start local 2 // java.lang.String s
        start local 3 // java.lang.String replaceString
        start local 4 // com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] parsedWithNamedCG
        start local 5 // com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] parsedWithoutNamedCG
         0: .line 993
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.initTRegexAccessors:()V
         1: .line 994
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexProfile:Lcom/oracle/truffle/api/profiles/ValueProfile;
            aload 1 /* rx */
            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 /* tRegexCompiledRegex */
        start local 6 // java.lang.Object tRegexCompiledRegex
         2: .line 995
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
            aload 6 /* tRegexCompiledRegex */
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexCompiledRegexAccessor.flags:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* tRegexFlags */
        start local 7 // java.lang.Object tRegexFlags
         3: .line 996
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.globalProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.flagsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
            aload 7 /* tRegexFlags */
            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 /* global */
        start local 8 // boolean global
         4: .line 997
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.unicodeProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.flagsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
            aload 7 /* tRegexFlags */
            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 /* unicode */
        start local 9 // boolean unicode
         5: .line 998
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stickyProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.flagsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexFlagsAccessor;
            aload 7 /* tRegexFlags */
            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 /* sticky */
        start local 10 // boolean sticky
         6: .line 999
            aload 2 /* s */
            invokevirtual java.lang.String.length:()I
            istore 11 /* length */
        start local 11 // int length
         7: .line 1000
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            iload 11 /* length */
            bipush 16
            iadd
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.newStringBuilder:(I)Ljava/lang/StringBuilder;
            astore 12 /* accumulatedResult */
        start local 12 // java.lang.StringBuilder accumulatedResult
         8: .line 1001
            iconst_0
            istore 13 /* lastMatchEnd */
        start local 13 // int lastMatchEnd
         9: .line 1002
            iconst_m1
            istore 14 /* matchStart */
        start local 14 // int matchStart
        10: .line 1003
            iload 10 /* sticky */
            ifeq 11
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* rx */
            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 /* lastIndex */
        start local 15 // int lastIndex
        13: .line 1004
            aconst_null
            astore 16 /* lastRegexResult */
        start local 16 // java.lang.Object lastRegexResult
        14: .line 1005
            goto 50
        15: .line 1006
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.execIgnoreLastIndexNode:Lcom/oracle/truffle/js/builtins/helper/JSRegExpExecIntlNode$JSRegExpExecIntlIgnoreLastIndexNode;
            aload 1 /* rx */
            aload 2 /* s */
            iload 15 /* lastIndex */
            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 /* tRegexResult */
        start local 17 // java.lang.Object tRegexResult
        16: .line 1007
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.noMatchProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.resultAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
            aload 17 /* tRegexResult */
            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: .line 1008
            iload 14 /* matchStart */
            ifge 51
        20: .line 1009
            iload 8 /* global */
            ifne 21
            iload 10 /* sticky */
            ifeq 22
        21: .line 1010
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rx */
            iconst_0
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.setLastIndex:(Ljava/lang/Object;I)V
        22: .line 1012
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            areturn
        23: .line 1016
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 1017
            aload 17 /* tRegexResult */
            astore 16 /* lastRegexResult */
        25: .line 1019
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.resultAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
            aload 17 /* tRegexResult */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor.captureGroupStart:(Ljava/lang/Object;I)I
            istore 14 /* matchStart */
        26: .line 1020
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.resultAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
            aload 17 /* tRegexResult */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexResultAccessor.captureGroupEnd:(Ljava/lang/Object;I)I
            istore 18 /* matchEnd */
        start local 18 // int matchEnd
        27: .line 1021
            getstatic com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.$assertionsDisabled:Z
            ifne 29
            iload 14 /* matchStart */
            iflt 28
            iload 14 /* matchStart */
            iload 11 /* length */
            if_icmpgt 28
            iload 14 /* matchStart */
            iload 13 /* lastMatchEnd */
            if_icmpge 29
      StackMap locals: int
      StackMap stack:
        28: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        29: .line 1022
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            aload 12 /* accumulatedResult */
            aload 2 /* s */
            iload 13 /* lastMatchEnd */
            iload 14 /* matchStart */
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
        30: .line 1023
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.hasNamedCaptureGroupsProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getNamedCaptureGroupsAccessor:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
            aload 6 /* tRegexCompiledRegex */
            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 /* namedCG */
        start local 19 // boolean namedCG
        33: .line 1024
            aload 4 /* parsedWithNamedCG */
            ifnonnull 38
        34: .line 1025
            aload 3 /* replaceString */
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.compiledRegexAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexCompiledRegexAccessor;
            aload 6 /* tRegexCompiledRegex */
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$TRegexCompiledRegexAccessor.groupCount:(Ljava/lang/Object;)I
            iload 19 /* namedCG */
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.dollarProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
        35: .line 1026
            new com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumerTRegex
            dup
            aload 12 /* accumulatedResult */
            aload 2 /* s */
            aload 3 /* replaceString */
            iload 14 /* matchStart */
            iload 18 /* matchEnd */
            aload 17 /* tRegexResult */
            aload 6 /* tRegexCompiledRegex */
            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 /* this */
        36: .line 1025
            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: .line 1027
            goto 42
        38: .line 1028
      StackMap locals: int
      StackMap stack:
            iload 19 /* namedCG */
            ifeq 39
            aload 4 /* parsedWithNamedCG */
            goto 40
      StackMap locals:
      StackMap stack:
        39: aload 5 /* parsedWithoutNamedCG */
        40: .line 1029
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[]
            new com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumerTRegex
            dup
            aload 12 /* accumulatedResult */
            aload 2 /* s */
            aload 3 /* replaceString */
            iload 14 /* matchStart */
            iload 18 /* matchEnd */
            aload 17 /* tRegexResult */
            aload 6 /* tRegexCompiledRegex */
            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 /* this */
        41: .line 1028
            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: .line 1031
      StackMap locals:
      StackMap stack:
            iload 18 /* matchEnd */
            istore 13 /* lastMatchEnd */
        43: .line 1032
            iload 8 /* global */
            ifeq 51
        44: .line 1033
            iload 14 /* matchStart */
            iload 18 /* matchEnd */
            if_icmpne 49
        45: .line 1034
            iload 9 /* unicode */
            ifeq 46
            aload 0 /* this */
            aload 2 /* s */
            iload 18 /* matchEnd */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.advanceStringIndexUnicode:(Ljava/lang/String;I)I
            goto 47
      StackMap locals:
      StackMap stack:
        46: iload 18 /* matchEnd */
            iconst_1
            iadd
      StackMap locals:
      StackMap stack: int
        47: istore 15 /* lastIndex */
        48: .line 1035
            goto 50
        49: .line 1036
      StackMap locals:
      StackMap stack:
            iload 18 /* matchEnd */
            istore 15 /* lastIndex */
        end local 19 // boolean namedCG
        end local 18 // int matchEnd
        end local 17 // java.lang.Object tRegexResult
        50: .line 1005
      StackMap locals:
      StackMap stack:
            iload 15 /* lastIndex */
            iload 11 /* length */
            if_icmple 15
        51: .line 1042
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* matchStart */
            iflt 53
        52: .line 1043
            aload 0 /* this */
            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 /* this */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 6 /* tRegexCompiledRegex */
            aload 2 /* s */
            iload 14 /* matchStart */
            i2l
            aload 16 /* lastRegexResult */
            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: .line 1045
      StackMap locals:
      StackMap stack:
            iload 8 /* global */
            ifne 54
            iload 10 /* sticky */
            ifeq 57
        54: .line 1046
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rx */
            iload 10 /* sticky */
            ifeq 55
            iload 13 /* lastMatchEnd */
            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: .line 1048
      StackMap locals:
      StackMap stack:
            iload 13 /* lastMatchEnd */
            iload 11 /* length */
            if_icmpge 59
        58: .line 1049
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            aload 12 /* accumulatedResult */
            aload 2 /* s */
            iload 13 /* lastMatchEnd */
            iload 11 /* length */
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
        59: .line 1051
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            aload 12 /* accumulatedResult */
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.toString:(Ljava/lang/StringBuilder;)Ljava/lang/String;
            areturn
        end local 16 // java.lang.Object lastRegexResult
        end local 15 // int lastIndex
        end local 14 // int matchStart
        end local 13 // int lastMatchEnd
        end local 12 // java.lang.StringBuilder accumulatedResult
        end local 11 // int length
        end local 10 // boolean sticky
        end local 9 // boolean unicode
        end local 8 // boolean global
        end local 7 // java.lang.Object tRegexFlags
        end local 6 // java.lang.Object tRegexCompiledRegex
        end local 5 // com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] parsedWithoutNamedCG
        end local 4 // com.oracle.truffle.js.builtins.helper.ReplaceStringParser$Token[] parsedWithNamedCG
        end local 3 // java.lang.String replaceString
        end local 2 // java.lang.String s
        end local 1 // com.oracle.truffle.api.object.DynamicObject rx
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject rx
        start local 2 // java.lang.String s
        start local 3 // java.lang.Object replaceValue
        start local 4 // boolean functionalReplace
         0: .line 1130
            aconst_null
            astore 5 /* replaceString */
        start local 5 // java.lang.String replaceString
         1: .line 1131
            aconst_null
            astore 6 /* replaceFunction */
        start local 6 // com.oracle.truffle.api.object.DynamicObject replaceFunction
         2: .line 1132
            iload 4 /* functionalReplace */
            ifeq 5
         3: .line 1133
            aload 3 /* replaceValue */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 6 /* replaceFunction */
         4: .line 1134
            goto 6
         5: .line 1135
      StackMap locals: java.lang.String com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 3 /* replaceValue */
            checkcast java.lang.String
            astore 5 /* replaceString */
         6: .line 1137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.globalProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            aload 1 /* rx */
            aload 0 /* this */
            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 /* global */
        start local 7 // boolean global
         7: .line 1138
            iconst_0
            istore 8 /* fullUnicode */
        start local 8 // boolean fullUnicode
         8: .line 1139
            iload 7 /* global */
            ifeq 11
         9: .line 1140
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.unicodeProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            aload 1 /* rx */
            aload 0 /* this */
            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 /* fullUnicode */
        10: .line 1141
            aload 0 /* this */
            aload 1 /* rx */
            iconst_0
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.setLastIndex:(Ljava/lang/Object;I)V
        11: .line 1143
      StackMap locals: int int
      StackMap stack:
            aconst_null
            astore 9 /* results */
        start local 9 // com.oracle.truffle.js.runtime.util.SimpleArrayList results
        12: .line 1144
            iload 4 /* functionalReplace */
            ifeq 14
        13: .line 1145
            new com.oracle.truffle.js.runtime.util.SimpleArrayList
            dup
            invokespecial com.oracle.truffle.js.runtime.util.SimpleArrayList.<init>:()V
            astore 9 /* results */
        14: .line 1147
      StackMap locals: com.oracle.truffle.js.runtime.util.SimpleArrayList
      StackMap stack:
            aload 2 /* s */
            invokevirtual java.lang.String.length:()I
            istore 10 /* length */
        start local 10 // int length
        15: .line 1148
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            iload 10 /* length */
            bipush 16
            iadd
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.newStringBuilder:(I)Ljava/lang/StringBuilder;
            astore 11 /* accumulatedResult */
        start local 11 // java.lang.StringBuilder accumulatedResult
        16: .line 1149
            iconst_0
            istore 12 /* nextSourcePosition */
        start local 12 // int nextSourcePosition
        17: .line 1150
            iconst_m1
            istore 13 /* matchLength */
        start local 13 // int matchLength
        18: .line 1152
      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 /* this */
            aload 1 /* rx */
            aload 2 /* s */
            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 /* result */
        start local 14 // com.oracle.truffle.api.object.DynamicObject result
        19: .line 1153
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.noMatchProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 14 /* result */
            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: .line 1154
            iload 13 /* matchLength */
            ifge 43
        23: .line 1155
            aload 2 /* s */
            areturn
        24: .line 1159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.lazyResultArrayProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            aload 14 /* result */
            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: .line 1160
            aload 0 /* this */
            aload 14 /* result */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLazyLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            istore 13 /* matchLength */
        26: .line 1161
            goto 28
        27: .line 1162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 14 /* result */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.processNonLazy:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            istore 13 /* matchLength */
        28: .line 1164
      StackMap locals:
      StackMap stack:
            iload 4 /* functionalReplace */
            ifeq 31
        29: .line 1165
            aload 9 /* results */
            aload 14 /* result */
            aload 0 /* this */
            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: .line 1166
            goto 32
        31: .line 1167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* accumulatedResult */
            aload 14 /* result */
            aload 2 /* s */
            aload 5 /* replaceString */
            iload 12 /* nextSourcePosition */
            iload 13 /* matchLength */
            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 /* nextSourcePosition */
        32: .line 1169
      StackMap locals:
      StackMap stack:
            iload 7 /* global */
            ifeq 43
        33: .line 1170
            iload 13 /* matchLength */
            ifne 18
        34: .line 1171
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* rx */
            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 /* lastI */
        start local 15 // long lastI
        35: .line 1172
            lload 15 /* lastI */
            lconst_1
            ladd
            lstore 17 /* nextIndex */
        start local 17 // long nextIndex
        36: .line 1173
            lload 17 /* nextIndex */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.longIsRepresentableAsInt:(J)Z
            ifeq 41
        37: .line 1174
            aload 0 /* this */
            aload 1 /* rx */
            iload 8 /* fullUnicode */
            ifeq 38
            aload 0 /* this */
            aload 2 /* s */
            lload 15 /* lastI */
            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 /* nextIndex */
            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: .line 1175
            goto 18
        41: .line 1176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rx */
            lload 17 /* nextIndex */
            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 // long nextIndex
        end local 15 // long lastI
        end local 14 // com.oracle.truffle.api.object.DynamicObject result
        42: .line 1151
            goto 18
        43: .line 1183
      StackMap locals:
      StackMap stack:
            iload 4 /* functionalReplace */
            ifeq 49
        44: .line 1184
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        45: goto 48
        46: .line 1185
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 11 /* accumulatedResult */
            aload 9 /* results */
            iload 14 /* i */
            invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 2 /* s */
            aload 6 /* replaceFunction */
            iload 12 /* nextSourcePosition */
            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 /* nextSourcePosition */
        47: .line 1184
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 14 /* i */
            aload 9 /* results */
            invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.size:()I
            if_icmplt 46
        end local 14 // int i
        49: .line 1188
      StackMap locals:
      StackMap stack:
            iload 12 /* nextSourcePosition */
            iload 10 /* length */
            if_icmpge 51
        50: .line 1189
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            aload 11 /* accumulatedResult */
            aload 2 /* s */
            iload 12 /* nextSourcePosition */
            iload 10 /* length */
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
        51: .line 1191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            aload 11 /* accumulatedResult */
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.toString:(Ljava/lang/StringBuilder;)Ljava/lang/String;
            areturn
        end local 13 // int matchLength
        end local 12 // int nextSourcePosition
        end local 11 // java.lang.StringBuilder accumulatedResult
        end local 10 // int length
        end local 9 // com.oracle.truffle.js.runtime.util.SimpleArrayList results
        end local 8 // boolean fullUnicode
        end local 7 // boolean global
        end local 6 // com.oracle.truffle.api.object.DynamicObject replaceFunction
        end local 5 // java.lang.String replaceString
        end local 4 // boolean functionalReplace
        end local 3 // java.lang.Object replaceValue
        end local 2 // java.lang.String s
        end local 1 // com.oracle.truffle.api.object.DynamicObject rx
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject result
         0: .line 1195
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* result */
            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 /* resultLength */
        start local 2 // int resultLength
         1: .line 1196
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* result */
            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 /* result0Str */
        start local 3 // java.lang.String result0Str
         2: .line 1197
            aload 0 /* this */
            aload 1 /* result */
            iconst_0
            aload 3 /* result0Str */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.write:(Ljava/lang/Object;ILjava/lang/Object;)V
         3: .line 1198
            iconst_1
            istore 4 /* n */
        start local 4 // int n
         4: goto 9
         5: .line 1199
      StackMap locals: int java.lang.String int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* result */
            iload 4 /* n */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.read:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
         6: .line 1200
            aload 5 /* value */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 8
         7: .line 1201
            aload 0 /* this */
            aload 1 /* result */
            iload 4 /* n */
            aload 0 /* this */
            aload 5 /* value */
            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 // java.lang.Object value
         8: .line 1198
      StackMap locals:
      StackMap stack:
            iinc 4 /* n */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* n */
            iload 2 /* resultLength */
            if_icmplt 5
        end local 4 // int n
        10: .line 1204
            aload 3 /* result0Str */
            invokevirtual java.lang.String.length:()I
            ireturn
        end local 3 // java.lang.String result0Str
        end local 2 // int resultLength
        end local 1 // com.oracle.truffle.api.object.DynamicObject result
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject result
         0: .line 1208
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.hasLazyRegexResultNode:Lcom/oracle/truffle/js/nodes/access/HasHiddenKeyCacheNode;
            aload 1 /* result */
            invokevirtual com.oracle.truffle.js.nodes.access.HasHiddenKeyCacheNode.executeHasHiddenKey:(Ljava/lang/Object;)Z
            istore 2 /* isLazyResultArray */
        start local 2 // boolean isLazyResultArray
         1: .line 1209
            getstatic com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.$assertionsDisabled:Z
            ifne 2
            iload 2 /* isLazyResultArray */
            aload 1 /* result */
            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: .line 1210
      StackMap locals: int
      StackMap stack:
            iload 2 /* isLazyResultArray */
            ireturn
        end local 2 // boolean isLazyResultArray
        end local 1 // com.oracle.truffle.api.object.DynamicObject result
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.StringBuilder accumulatedResult
        start local 2 // com.oracle.truffle.api.object.DynamicObject result
        start local 3 // java.lang.String s
        start local 4 // java.lang.String replaceString
        start local 5 // int nextSourcePosition
        start local 6 // int matchLength
         0: .line 1214
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toIntegerNode:Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getIndexNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            aload 2 /* result */
            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 /* s */
            invokevirtual java.lang.String.length:()I
            invokestatic java.lang.Math.min:(II)I
            iconst_0
            invokestatic java.lang.Math.max:(II)I
            istore 7 /* position */
        start local 7 // int position
         1: .line 1215
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.validPositionProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            iload 7 /* position */
            iload 5 /* nextSourcePosition */
            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: .line 1216
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            aload 1 /* accumulatedResult */
            aload 3 /* s */
            iload 5 /* nextSourcePosition */
            iload 7 /* position */
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
         5: .line 1217
            aload 0 /* this */
            aload 2 /* result */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGroups:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* namedCaptures */
        start local 8 // java.lang.Object namedCaptures
         6: .line 1218
            aload 8 /* namedCaptures */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 8
         7: .line 1219
            aload 0 /* this */
            aload 8 /* namedCaptures */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* namedCaptures */
         8: .line 1221
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* replaceString */
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* result */
            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 /* namedCaptures */
            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 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.dollarProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
        11: .line 1222
            new com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode$ReplaceStringConsumer
            dup
            aload 1 /* accumulatedResult */
            aload 3 /* s */
            aload 4 /* replaceString */
            iload 7 /* position */
            iload 7 /* position */
            iload 6 /* matchLength */
            iadd
            aload 2 /* result */
            aload 8 /* namedCaptures */
            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 /* this */
        12: .line 1221
            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: .line 1223
            iload 7 /* position */
            iload 6 /* matchLength */
            iadd
            ireturn
        end local 8 // java.lang.Object namedCaptures
        14: .line 1225
      StackMap locals:
      StackMap stack:
            iload 5 /* nextSourcePosition */
            ireturn
        end local 7 // int position
        end local 6 // int matchLength
        end local 5 // int nextSourcePosition
        end local 4 // java.lang.String replaceString
        end local 3 // java.lang.String s
        end local 2 // com.oracle.truffle.api.object.DynamicObject result
        end local 1 // java.lang.StringBuilder accumulatedResult
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.StringBuilder accumulatedResult
        start local 2 // com.oracle.truffle.api.object.DynamicObject result
        start local 3 // java.lang.String s
        start local 4 // com.oracle.truffle.api.object.DynamicObject replaceFunction
        start local 5 // int nextSourcePosition
         0: .line 1229
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toIntegerNode:Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getIndexNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            aload 2 /* result */
            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 /* s */
            invokevirtual java.lang.String.length:()I
            invokestatic java.lang.Math.min:(II)I
            iconst_0
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* position */
        start local 6 // int position
         1: .line 1230
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* result */
            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 /* resultsLength */
        start local 7 // int resultsLength
         2: .line 1231
            aload 0 /* this */
            aload 2 /* result */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGroups:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* namedCaptures */
        start local 8 // java.lang.Object namedCaptures
         3: .line 1232
            iload 7 /* resultsLength */
            iconst_4
            iadd
            aload 8 /* namedCaptures */
            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 /* arguments */
        start local 9 // java.lang.Object[] arguments
         6: .line 1233
            aload 9 /* arguments */
            iconst_0
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aastore
         7: .line 1234
            aload 9 /* arguments */
            iconst_1
            aload 4 /* replaceFunction */
            aastore
         8: .line 1235
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         9: goto 12
        10: .line 1236
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 9 /* arguments */
            iload 10 /* i */
            iconst_2
            iadd
            aload 0 /* this */
            aload 2 /* result */
            iload 10 /* i */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.read:(Ljava/lang/Object;I)Ljava/lang/Object;
            aastore
        11: .line 1235
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 10 /* i */
            iload 7 /* resultsLength */
            if_icmplt 10
        end local 10 // int i
        13: .line 1238
            aload 9 /* arguments */
            iload 7 /* resultsLength */
            iconst_2
            iadd
            iload 6 /* position */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        14: .line 1239
            aload 9 /* arguments */
            iload 7 /* resultsLength */
            iconst_3
            iadd
            aload 3 /* s */
            aastore
        15: .line 1240
            aload 8 /* namedCaptures */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 17
        16: .line 1241
            aload 9 /* arguments */
            iload 7 /* resultsLength */
            iconst_4
            iadd
            aload 8 /* namedCaptures */
            aastore
        17: .line 1243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* arguments */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.callFunction:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* callResult */
        start local 10 // java.lang.Object callResult
        18: .line 1244
            aload 0 /* this */
            aload 10 /* callResult */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString2:(Ljava/lang/Object;)Ljava/lang/String;
            astore 11 /* replacement */
        start local 11 // java.lang.String replacement
        19: .line 1245
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.validPositionProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            iload 6 /* position */
            iload 5 /* nextSourcePosition */
            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: .line 1246
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            aload 1 /* accumulatedResult */
            aload 3 /* s */
            iload 5 /* nextSourcePosition */
            iload 6 /* position */
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;II)V
        23: .line 1247
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.stringBuilderProfile:Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
            aload 1 /* accumulatedResult */
            aload 11 /* replacement */
            invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.append:(Ljava/lang/StringBuilder;Ljava/lang/String;)V
        24: .line 1248
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.lazyResultArrayProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            aload 2 /* result */
            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: .line 1249
            iload 6 /* position */
            aload 0 /* this */
            aload 2 /* result */
            invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLazyLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            iadd
            ireturn
        26: .line 1251
      StackMap locals:
      StackMap stack:
            iload 6 /* position */
            aload 0 /* this */
            aload 2 /* result */
            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: .line 1254
      StackMap locals:
      StackMap stack:
            iload 5 /* nextSourcePosition */
            ireturn
        end local 11 // java.lang.String replacement
        end local 10 // java.lang.Object callResult
        end local 9 // java.lang.Object[] arguments
        end local 8 // java.lang.Object namedCaptures
        end local 7 // int resultsLength
        end local 6 // int position
        end local 5 // int nextSourcePosition
        end local 4 // com.oracle.truffle.api.object.DynamicObject replaceFunction
        end local 3 // java.lang.String s
        end local 2 // com.oracle.truffle.api.object.DynamicObject result
        end local 1 // java.lang.StringBuilder accumulatedResult
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object[] arguments
         0: .line 1315
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.functionCallNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
            ifnonnull 3
         1: .line 1316
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1317
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.functionCallNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
            aload 1 /* arguments */
            invokevirtual com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object[] arguments
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object obj
         0: .line 1323
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString2Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
            ifnonnull 3
         1: .line 1324
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1325
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString2Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object obj
         0: .line 1331
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString3Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
            ifnonnull 3
         1: .line 1332
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1333
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString3Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object obj
         0: .line 1339
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString4Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
            ifnonnull 3
         1: .line 1340
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1341
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toString4Node:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 1347
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readLazyLengthNode:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
            ifnonnull 3
         1: .line 1348
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1349
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readLazyLengthNode:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexResultAccessor;
            aload 1 /* obj */
            aload 0 /* this */
            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 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
         0: .line 1355
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getUnicodeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            ifnonnull 3
         1: .line 1356
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1357
            aload 0 /* this */
            aload 0 /* this */
            ldc "unicode"
            iconst_0
            aload 0 /* this */
            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: .line 1359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getUnicodeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            areturn
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject rx
         0: .line 1363
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isPristineObjectNode:Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
            ifnonnull 3
         1: .line 1364
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1365
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.isPristineObjectNode:Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
            aload 1 /* rx */
            invokevirtual com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject rx
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object obj
         0: .line 1371
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLengthNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            ifnonnull 3
         1: .line 1372
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1373
            aload 0 /* this */
            aload 0 /* this */
            ldc "length"
            iconst_0
            aload 0 /* this */
            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: .line 1375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getLengthNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object value
         0: .line 1379
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLengthNode:Lcom/oracle/truffle/js/nodes/cast/JSToLengthNode;
            ifnonnull 3
         1: .line 1380
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1381
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toLengthNode:Lcom/oracle/truffle/js/nodes/cast/JSToLengthNode;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToLengthNode.executeLong:(Ljava/lang/Object;)J
            lreturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object regexResult
         0: .line 1387
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGroupsNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            ifnonnull 3
         1: .line 1388
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1389
            aload 0 /* this */
            aload 0 /* this */
            ldc "groups"
            iconst_0
            aload 0 /* this */
            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: .line 1391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.getGroupsNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            aload 1 /* regexResult */
            invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object regexResult
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object namedCaptureGroups
        start local 2 // java.lang.String groupName
         0: .line 1395
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readNamedCaptureGroupNode:Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            ifnonnull 3
         1: .line 1396
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1397
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.readNamedCaptureGroupNode:Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            aload 1 /* namedCaptureGroups */
            aload 2 /* groupName */
            invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.executeWithTargetAndIndex:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.String groupName
        end local 1 // java.lang.Object namedCaptureGroups
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
        start local 1 // java.lang.Object obj
         0: .line 1403
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toObjectNode:Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;
            ifnonnull 3
         1: .line 1404
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1405
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1407
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.toObjectNode:Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
         0: .line 1411
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.namedCaptureGroupsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
            ifnonnull 3
         1: .line 1412
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 1413
            aload 0 /* this */
            aload 0 /* this */
            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: .line 1415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode.namedCaptureGroupsAccessor:Lcom/oracle/truffle/js/runtime/util/TRegexUtil$TRegexNamedCaptureGroupsAccessor;
            areturn
        end local 0 // com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$JSRegExpReplaceNode this
      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