public final class com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter extends com.oracle.truffle.js.runtime.builtins.JSNonProxy implements com.oracle.truffle.js.runtime.builtins.JSConstructorFactory$WithFunctions, com.oracle.truffle.js.runtime.builtins.PrototypeSupplier
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter
  super_class: com.oracle.truffle.js.runtime.builtins.JSNonProxy
{
  public static final java.lang.String CLASS_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Segmenter"

  public static final java.lang.String PROTOTYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Segmenter.prototype"

  public static final java.lang.String ITERATOR_CLASS_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Segment Iterator"

  public static final java.lang.String ITERATOR_PROTOTYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Segment Iterator.prototype"

  public static final com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter INSTANCE;
    descriptor: Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 76
            ldc Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.$assertionsDisabled:Z
         3: .line 84
            new com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
         0: .line 192
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.<init>:()V
         1: .line 193
            return
        end local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;

  public static boolean isJSSegmenter(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 196
            aload 0 /* obj */
            instanceof com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterObject
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.String getClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
         0: .line 201
            ldc "Segmenter"
            areturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;

  public java.lang.String getClassName(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         0: .line 206
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.getClassName:()Ljava/lang/String;
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;
            0    1     1  object  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
        Name  Flags
      object  

  public com.oracle.truffle.api.object.DynamicObject createPrototype(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 2 // com.oracle.truffle.api.object.DynamicObject ctor
         0: .line 211
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* ctx */
        start local 3 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 212
            aload 1 /* realm */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* segmenterPrototype */
        start local 4 // com.oracle.truffle.api.object.DynamicObject segmenterPrototype
         2: .line 213
            aload 3 /* ctx */
            aload 4 /* segmenterPrototype */
            aload 2 /* ctor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putConstructorProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
         3: .line 214
            aload 1 /* realm */
            aload 4 /* segmenterPrototype */
            getstatic com.oracle.truffle.js.builtins.intl.SegmenterPrototypeBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
         4: .line 215
            aload 4 /* segmenterPrototype */
            ldc "Intl.Segmenter"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putToStringTag:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
         5: .line 216
            aload 4 /* segmenterPrototype */
            areturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject segmenterPrototype
        end local 3 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 2 // com.oracle.truffle.api.object.DynamicObject ctor
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;
            0    6     1               realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    6     2                ctor  Lcom/oracle/truffle/api/object/DynamicObject;
            1    6     3                 ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     4  segmenterPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  
      ctor   

  public com.oracle.truffle.api.object.Shape makeInitialShape(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
        start local 1 // com.oracle.truffle.js.runtime.JSContext ctx
        start local 2 // com.oracle.truffle.api.object.DynamicObject prototype
         0: .line 221
            aload 2 /* prototype */
            getstatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;
            aload 1 /* ctx */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getProtoChildShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/Shape;
            areturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 1 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;
            0    1     1        ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     2  prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
           Name  Flags
      ctx        
      prototype  

  public static com.oracle.truffle.js.runtime.builtins.JSConstructor createConstructor(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/js/runtime/builtins/JSConstructor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 225
            getstatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;
            aload 0 /* realm */
            getstatic com.oracle.truffle.js.builtins.intl.SegmenterFunctionBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokevirtual com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.createConstructorAndPrototype:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)Lcom/oracle/truffle/js/runtime/builtins/JSConstructor;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.DynamicObject create(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 229
            new com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.<init>:()V
            astore 1 /* state */
        start local 1 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
         1: .line 230
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 2 /* realm */
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         2: .line 231
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getSegmenterFactory:()Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
            astore 3 /* factory */
        start local 3 // com.oracle.truffle.js.runtime.builtins.JSObjectFactory factory
         3: .line 232
            new com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterObject
            dup
            aload 3 /* factory */
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSObjectFactory.getShape:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/Shape;
            aload 1 /* state */
            invokespecial com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterObject.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;)V
            astore 4 /* obj */
        start local 4 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterObject obj
         4: .line 233
            aload 3 /* factory */
            aload 4 /* obj */
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSObjectFactory.initProto:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            pop
         5: .line 234
            getstatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.$assertionsDisabled:Z
            ifne 6
            aload 4 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.isJSSegmenter:(Ljava/lang/Object;)Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 235
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.builtins.JSObjectFactory com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterObject
      StackMap stack:
            aload 0 /* context */
            aload 4 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.trackAllocation:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            areturn
        end local 4 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterObject obj
        end local 3 // com.oracle.truffle.js.runtime.builtins.JSObjectFactory factory
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Lcom/oracle/truffle/js/runtime/JSContext;
            1    7     1    state  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
            2    7     2    realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            3    7     3  factory  Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
            4    7     4      obj  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenterObject;
    MethodParameters:
         Name  Flags
      context  

  public static com.oracle.truffle.api.object.DynamicObject createSegmentIterator(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.object.DynamicObject segmenter
        start local 2 // java.lang.String value
         0: .line 239
            aload 1 /* segmenter */
            aload 2 /* value */
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.createBreakIterator:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Lcom/ibm/icu/text/BreakIterator;
            astore 3 /* icuIterator */
        start local 3 // com.ibm.icu.text.BreakIterator icuIterator
         1: .line 240
            aload 1 /* segmenter */
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.getGranularity:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
            astore 4 /* granularity */
        start local 4 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity granularity
         2: .line 241
            new com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState
            dup
            aload 2 /* value */
            aload 3 /* icuIterator */
            aload 4 /* granularity */
            aconst_null
            iconst_0
            invokespecial com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState.<init>:(Ljava/lang/String;Lcom/ibm/icu/text/BreakIterator;Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;Ljava/lang/String;I)V
            astore 5 /* iteratorState */
        start local 5 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState iteratorState
         3: .line 242
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getSegmentIteratorFactory:()Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
            astore 6 /* factory */
        start local 6 // com.oracle.truffle.js.runtime.builtins.JSObjectFactory factory
         4: .line 243
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 7 /* realm */
        start local 7 // com.oracle.truffle.js.runtime.JSRealm realm
         5: .line 244
            new com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterIteratorObject
            dup
            aload 6 /* factory */
            aload 7 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSObjectFactory.getShape:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/Shape;
            aload 5 /* iteratorState */
            invokespecial com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterIteratorObject.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState;)V
            astore 8 /* segmentIterator */
        start local 8 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterIteratorObject segmentIterator
         6: .line 245
            aload 6 /* factory */
            aload 8 /* segmentIterator */
            aload 7 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSObjectFactory.initProto:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            pop
         7: .line 246
            aload 0 /* context */
            aload 8 /* segmentIterator */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.trackAllocation:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            areturn
        end local 8 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterIteratorObject segmentIterator
        end local 7 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 6 // com.oracle.truffle.js.runtime.builtins.JSObjectFactory factory
        end local 5 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState iteratorState
        end local 4 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity granularity
        end local 3 // com.ibm.icu.text.BreakIterator icuIterator
        end local 2 // java.lang.String value
        end local 1 // com.oracle.truffle.api.object.DynamicObject segmenter
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0          context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    8     1        segmenter  Lcom/oracle/truffle/api/object/DynamicObject;
            0    8     2            value  Ljava/lang/String;
            1    8     3      icuIterator  Lcom/ibm/icu/text/BreakIterator;
            2    8     4      granularity  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
            3    8     5    iteratorState  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState;
            4    8     6          factory  Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
            5    8     7            realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            6    8     8  segmentIterator  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenterIteratorObject;
    MethodParameters:
           Name  Flags
      context    
      segmenter  
      value      

  public static void setLocale(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;[Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext ctx
        start local 1 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
        start local 2 // java.lang.String[] locales
         0: .line 251
            aload 0 /* ctx */
            aload 2 /* locales */
            invokestatic com.oracle.truffle.js.runtime.util.IntlUtil.selectedLocale:(Lcom/oracle/truffle/js/runtime/JSContext;[Ljava/lang/String;)Ljava/util/Locale;
            astore 3 /* selectedLocale */
        start local 3 // java.util.Locale selectedLocale
         1: .line 252
            aload 3 /* selectedLocale */
            invokevirtual java.util.Locale.stripExtensions:()Ljava/util/Locale;
            astore 4 /* strippedLocale */
        start local 4 // java.util.Locale strippedLocale
         2: .line 253
            aload 4 /* strippedLocale */
            invokevirtual java.util.Locale.toLanguageTag:()Ljava/lang/String;
            ldc "und"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 254
            aload 0 /* ctx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getLocale:()Ljava/util/Locale;
            astore 3 /* selectedLocale */
         4: .line 255
            aload 3 /* selectedLocale */
            invokevirtual java.util.Locale.stripExtensions:()Ljava/util/Locale;
            astore 4 /* strippedLocale */
         5: .line 257
      StackMap locals: java.util.Locale java.util.Locale
      StackMap stack:
            aload 1 /* state */
            aload 4 /* strippedLocale */
            invokevirtual java.util.Locale.toLanguageTag:()Ljava/lang/String;
            putfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.locale:Ljava/lang/String;
         6: .line 258
            aload 1 /* state */
            aload 4 /* strippedLocale */
            putfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.javaLocale:Ljava/util/Locale;
         7: .line 259
            return
        end local 4 // java.util.Locale strippedLocale
        end local 3 // java.util.Locale selectedLocale
        end local 2 // java.lang.String[] locales
        end local 1 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
        end local 0 // com.oracle.truffle.js.runtime.JSContext ctx
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0             ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    8     1           state  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
            0    8     2         locales  [Ljava/lang/String;
            1    8     3  selectedLocale  Ljava/util/Locale;
            2    8     4  strippedLocale  Ljava/util/Locale;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      ctx      
      state    
      locales  

  public static void setupInternalBreakIterator(com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
        start local 1 // java.lang.String granularity
         0: .line 263
            aload 0 /* state */
            aload 0 /* state */
            getfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.locale:Ljava/lang/String;
            invokestatic java.util.Locale.forLanguageTag:(Ljava/lang/String;)Ljava/util/Locale;
            putfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.javaLocale:Ljava/util/Locale;
         1: .line 264
            aload 1 /* granularity */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
              3655434: 2
            100703407: 3
           1262736995: 4
              default: 11
          }
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 2
            ldc "word"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 11
      StackMap locals:
      StackMap stack:
         3: aload 2
            ldc "grapheme"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            goto 11
      StackMap locals:
      StackMap stack:
         4: aload 2
            ldc "sentence"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 11
         5: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* state */
            getstatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity.GRAPHEME:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
            putfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.granularity:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
         6: .line 267
            goto 12
         7: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* state */
            getstatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity.WORD:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
            putfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.granularity:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
         8: .line 270
            goto 12
         9: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* state */
            getstatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity.SENTENCE:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
            putfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.granularity:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
        10: .line 273
            goto 12
        11: .line 275
      StackMap locals:
      StackMap stack:
            ldc "Segmenter with granularity, %s, is not supported"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* granularity */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.js.runtime.Errors.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        12: .line 277
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String granularity
        end local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0        state  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
            0   13     1  granularity  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
             Name  Flags
      state        
      granularity  

  public static com.ibm.icu.text.BreakIterator createBreakIterator(com.oracle.truffle.api.object.DynamicObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Lcom/ibm/icu/text/BreakIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject segmenterObj
        start local 1 // java.lang.String text
         0: .line 295
            aload 0 /* segmenterObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.getInternalState:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
            astore 2 /* state */
        start local 2 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
         1: .line 296
            aload 2 /* state */
            getfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.javaLocale:Ljava/util/Locale;
            invokestatic com.ibm.icu.util.ULocale.forLocale:(Ljava/util/Locale;)Lcom/ibm/icu/util/ULocale;
            astore 3 /* ulocale */
        start local 3 // com.ibm.icu.util.ULocale ulocale
         2: .line 297
            aload 2 /* state */
            getfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.granularity:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
            aload 3 /* ulocale */
            invokevirtual com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity.getIterator:(Lcom/ibm/icu/util/ULocale;)Lcom/ibm/icu/text/BreakIterator;
            astore 4 /* icuIterator */
        start local 4 // com.ibm.icu.text.BreakIterator icuIterator
         3: .line 298
            aload 4 /* icuIterator */
            aload 1 /* text */
            invokevirtual com.ibm.icu.text.BreakIterator.setText:(Ljava/lang/String;)V
         4: .line 299
            aload 4 /* icuIterator */
            areturn
        end local 4 // com.ibm.icu.text.BreakIterator icuIterator
        end local 3 // com.ibm.icu.util.ULocale ulocale
        end local 2 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
        end local 1 // java.lang.String text
        end local 0 // com.oracle.truffle.api.object.DynamicObject segmenterObj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0  segmenterObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     1          text  Ljava/lang/String;
            1    5     2         state  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
            2    5     3       ulocale  Lcom/ibm/icu/util/ULocale;
            3    5     4   icuIterator  Lcom/ibm/icu/text/BreakIterator;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      segmenterObj  
      text          

  public static com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity getGranularity(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject segmenterObj
         0: .line 303
            aload 0 /* segmenterObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.getInternalState:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
            astore 1 /* state */
        start local 1 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
         1: .line 304
            aload 1 /* state */
            getfield com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.granularity:Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$Granularity;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
        end local 0 // com.oracle.truffle.api.object.DynamicObject segmenterObj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0  segmenterObj  Lcom/oracle/truffle/api/object/DynamicObject;
            1    2     1         state  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
    MethodParameters:
              Name  Flags
      segmenterObj  

  public static com.oracle.truffle.api.object.DynamicObject resolvedOptions(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.object.DynamicObject segmenterObj
         0: .line 309
            aload 1 /* segmenterObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.getInternalState:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
            astore 2 /* state */
        start local 2 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
         1: .line 310
            aload 2 /* state */
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState.toResolvedOptionsObject:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState state
        end local 1 // com.oracle.truffle.api.object.DynamicObject segmenterObj
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0       context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    2     1  segmenterObj  Lcom/oracle/truffle/api/object/DynamicObject;
            1    2     2         state  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      context       
      segmenterObj  

  public static com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState getInternalState(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject segmenterObj
         0: .line 314
            getstatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.$assertionsDisabled:Z
            ifne 1
            aload 0 /* segmenterObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.isJSSegmenter:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* segmenterObj */
            checkcast com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterObject
            invokevirtual com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterObject.getInternalState:()Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$InternalState;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject segmenterObj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0  segmenterObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
              Name  Flags
      segmenterObj  

  public com.oracle.truffle.api.object.DynamicObject getIntrinsicDefaultProto(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 320
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getSegmenterPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter;
            0    1     1  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.Shape makeInitialSegmentIteratorShape(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext ctx
        start local 1 // com.oracle.truffle.api.object.DynamicObject prototype
         0: .line 326
            aload 1 /* prototype */
            getstatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.BARE_INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSOrdinary;
            aload 0 /* ctx */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getProtoChildShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/Shape;
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 0 // com.oracle.truffle.js.runtime.JSContext ctx
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0        ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     1  prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
           Name  Flags
      ctx        
      prototype  

  public static boolean isJSSegmenterIterator(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 330
            aload 0 /* obj */
            instanceof com.oracle.truffle.js.runtime.builtins.intl.JSSegmenterIteratorObject
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  private static com.oracle.truffle.api.CallTarget createPropertyGetterCallTarget(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.util.CompilableFunction<com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState, java.lang.Object>);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/util/CompilableFunction;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.js.runtime.util.CompilableFunction getter
         0: .line 334
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$1
            dup
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getLanguage:()Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            aconst_null
            aconst_null
            aload 1 /* getter */
            invokespecial com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$1.<init>:(Lcom/oracle/truffle/js/lang/JavaScriptLanguage;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/js/runtime/util/CompilableFunction;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.util.CompilableFunction getter
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     1   getter  Lcom/oracle/truffle/js/runtime/util/CompilableFunction<Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState;Ljava/lang/Object;>;
    Signature: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/util/CompilableFunction<Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState;Ljava/lang/Object;>;)Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
         Name  Flags
      context  
      getter   

  public static com.oracle.truffle.api.object.DynamicObject createSegmentIteratorPrototype(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 351
            aload 1 /* realm */
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getIteratorPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* prototype */
        start local 2 // com.oracle.truffle.api.object.DynamicObject prototype
         1: .line 352
            aload 1 /* realm */
            aload 2 /* prototype */
            getstatic com.oracle.truffle.js.builtins.intl.SegmentIteratorPrototypeBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
         2: .line 353
            aload 2 /* prototype */
            ldc "Segment Iterator"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putToStringTag:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
         3: .line 354
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            getstatic com.oracle.truffle.js.runtime.JSContext$BuiltinFunctionKey.SegmenterBreakType:Lcom/oracle/truffle/js/runtime/JSContext$BuiltinFunctionKey;
            aload 0 /* context */
            invokedynamic apply(Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/runtime/builtins/intl/JSSegmenter.lambda$0(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData; (6)
                  (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getOrCreateBuiltinFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext$BuiltinFunctionKey;Ljava/util/function/Function;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 3 /* breakTypeFd */
        start local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData breakTypeFd
         4: .line 358
            aload 1 /* realm */
            aload 3 /* breakTypeFd */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* breakTypeGetter */
        start local 4 // com.oracle.truffle.api.object.DynamicObject breakTypeGetter
         5: .line 360
            aload 2 /* prototype */
            ldc "breakType"
            aload 4 /* breakTypeGetter */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putBuiltinAccessorProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
         6: .line 361
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            getstatic com.oracle.truffle.js.runtime.JSContext$BuiltinFunctionKey.SegmenterPosition:Lcom/oracle/truffle/js/runtime/JSContext$BuiltinFunctionKey;
            aload 0 /* context */
            invokedynamic apply(Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/runtime/builtins/intl/JSSegmenter.lambda$2(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData; (6)
                  (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getOrCreateBuiltinFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext$BuiltinFunctionKey;Ljava/util/function/Function;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 5 /* positionFd */
        start local 5 // com.oracle.truffle.js.runtime.builtins.JSFunctionData positionFd
         7: .line 364
            aload 1 /* realm */
            aload 5 /* positionFd */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 6 /* positionGetter */
        start local 6 // com.oracle.truffle.api.object.DynamicObject positionGetter
         8: .line 366
            aload 2 /* prototype */
            ldc "index"
            aload 6 /* positionGetter */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putBuiltinAccessorProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
         9: .line 367
            aload 2 /* prototype */
            areturn
        end local 6 // com.oracle.truffle.api.object.DynamicObject positionGetter
        end local 5 // com.oracle.truffle.js.runtime.builtins.JSFunctionData positionFd
        end local 4 // com.oracle.truffle.api.object.DynamicObject breakTypeGetter
        end local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData breakTypeFd
        end local 2 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0          context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   10     1            realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1   10     2        prototype  Lcom/oracle/truffle/api/object/DynamicObject;
            4   10     3      breakTypeFd  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            5   10     4  breakTypeGetter  Lcom/oracle/truffle/api/object/DynamicObject;
            7   10     5       positionFd  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            8   10     6   positionGetter  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      context  
      realm    

  private static com.oracle.truffle.js.runtime.builtins.JSFunctionData lambda$0(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=2
        start local 1 // com.oracle.truffle.js.runtime.JSContext c
         0: .line 355
            aload 0
            invokedynamic apply()Lcom/oracle/truffle/js/runtime/util/CompilableFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/runtime/builtins/intl/JSSegmenter.lambda$1(Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState;)Ljava/lang/Object; (6)
                  (Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.createPropertyGetterCallTarget:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/util/CompilableFunction;)Lcom/oracle/truffle/api/CallTarget;
            astore 2 /* ct */
        start local 2 // com.oracle.truffle.api.CallTarget ct
         1: .line 356
            aload 1 /* c */
            aload 2 /* ct */
            iconst_0
            ldc "get breakType"
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 2 // com.oracle.truffle.api.CallTarget ct
        end local 1 // com.oracle.truffle.js.runtime.JSContext c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1     c  Lcom/oracle/truffle/js/runtime/JSContext;
            1    2     2    ct  Lcom/oracle/truffle/api/CallTarget;

  private static com.oracle.truffle.js.runtime.builtins.JSFunctionData lambda$2(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.runtime.JSContext c
         0: .line 362
            aload 0
            aload 0
            invokedynamic apply()Lcom/oracle/truffle/js/runtime/util/CompilableFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState.getIndex()I (5)
                  (Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter.createPropertyGetterCallTarget:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/util/CompilableFunction;)Lcom/oracle/truffle/api/CallTarget;
            iconst_0
            ldc "get index"
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.JSContext c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     c  Lcom/oracle/truffle/js/runtime/JSContext;

  private static java.lang.Object lambda$1(com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState it
         0: .line 355
            aload 0 /* it */
            invokevirtual com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState.getBreakType:()Ljava/lang/String;
            ifnull 1
            aload 0 /* it */
            invokevirtual com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState.getBreakType:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
      StackMap locals:
      StackMap stack: java.lang.Object
         2: areturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState it
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    it  Lcom/oracle/truffle/js/runtime/builtins/intl/JSSegmenter$IteratorState;
}
SourceFile: "JSSegmenter.java"
NestMembers:
  com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$1  com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity  com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity$1  com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity$2  com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity$3  com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IcuIteratorHelper  com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState  com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final BuiltinFunctionKey = com.oracle.truffle.js.runtime.JSContext$BuiltinFunctionKey of com.oracle.truffle.js.runtime.JSContext
  public abstract WithFunctions = com.oracle.truffle.js.runtime.builtins.JSConstructorFactory$WithFunctions of com.oracle.truffle.js.runtime.builtins.JSConstructorFactory
  com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$1
  public abstract Granularity = com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$Granularity of com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter
  abstract IcuIteratorHelper = com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IcuIteratorHelper of com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter
  public InternalState = com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$InternalState of com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter
  public IteratorState = com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter$IteratorState of com.oracle.truffle.js.runtime.builtins.intl.JSSegmenter
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles