public class jdk.nashorn.internal.objects.StringIterator extends jdk.nashorn.internal.objects.AbstractIterator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.nashorn.internal.objects.StringIterator
  super_class: jdk.nashorn.internal.objects.AbstractIterator
{
  private static jdk.nashorn.internal.runtime.PropertyMap $nasgenmap$;
    descriptor: Ljdk/nashorn/internal/runtime/PropertyMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.lang.String iteratedString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private int nextIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final jdk.nashorn.internal.objects.Global global;
    descriptor: Ljdk/nashorn/internal/objects/Global;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.lang.String, jdk.nashorn.internal.objects.Global);
    descriptor: (Ljava/lang/String;Ljdk/nashorn/internal/objects/Global;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.objects.StringIterator this
        start local 1 // java.lang.String iteratedString
        start local 2 // jdk.nashorn.internal.objects.Global global
         0: .line 50
            aload 0 /* this */
            aload 2 /* global */
            invokevirtual jdk.nashorn.internal.objects.Global.getStringIteratorPrototype:()Ljdk/nashorn/internal/runtime/ScriptObject;
            getstatic jdk.nashorn.internal.objects.StringIterator.$nasgenmap$:Ljdk/nashorn/internal/runtime/PropertyMap;
            invokespecial jdk.nashorn.internal.objects.AbstractIterator.<init>:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/runtime/PropertyMap;)V
         1: .line 46
            aload 0 /* this */
            iconst_0
            putfield jdk.nashorn.internal.objects.StringIterator.nextIndex:I
         2: .line 51
            aload 0 /* this */
            aload 1 /* iteratedString */
            putfield jdk.nashorn.internal.objects.StringIterator.iteratedString:Ljava/lang/String;
         3: .line 52
            aload 0 /* this */
            aload 2 /* global */
            putfield jdk.nashorn.internal.objects.StringIterator.global:Ljdk/nashorn/internal/objects/Global;
         4: .line 53
            return
        end local 2 // jdk.nashorn.internal.objects.Global global
        end local 1 // java.lang.String iteratedString
        end local 0 // jdk.nashorn.internal.objects.StringIterator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Ljdk/nashorn/internal/objects/StringIterator;
            0    5     1  iteratedString  Ljava/lang/String;
            0    5     2          global  Ljdk/nashorn/internal/objects/Global;
    MethodParameters:
                Name  Flags
      iteratedString  final
      global          final

  public static java.lang.Object next(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.Object self
        start local 1 // java.lang.Object arg
         0: .line 64
            aload 0 /* self */
            instanceof jdk.nashorn.internal.objects.StringIterator
            ifne 2
         1: .line 65
            ldc "not.a.string.iterator"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* self */
            invokestatic jdk.nashorn.internal.runtime.ScriptRuntime.safeToString:(Ljava/lang/Object;)Ljava/lang/String;
            aastore
            invokestatic jdk.nashorn.internal.runtime.ECMAErrors.typeError:(Ljava/lang/String;[Ljava/lang/String;)Ljdk/nashorn/internal/runtime/ECMAException;
            athrow
         2: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* self */
            checkcast jdk.nashorn.internal.objects.StringIterator
            aload 1 /* arg */
            invokevirtual jdk.nashorn.internal.objects.StringIterator.next:(Ljava/lang/Object;)Ljdk/nashorn/internal/objects/IteratorResult;
            areturn
        end local 1 // java.lang.Object arg
        end local 0 // java.lang.Object self
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  self  Ljava/lang/Object;
            0    3     1   arg  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      jdk.nashorn.internal.objects.annotations.Function()
    MethodParameters:
      Name  Flags
      self  final
      arg   final

  public java.lang.String getClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.objects.StringIterator this
         0: .line 72
            ldc "String Iterator"
            areturn
        end local 0 // jdk.nashorn.internal.objects.StringIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/objects/StringIterator;

  protected jdk.nashorn.internal.objects.IteratorResult next(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljdk/nashorn/internal/objects/IteratorResult;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // jdk.nashorn.internal.objects.StringIterator this
        start local 1 // java.lang.Object arg
         0: .line 77
            aload 0 /* this */
            getfield jdk.nashorn.internal.objects.StringIterator.nextIndex:I
            istore 2 /* index */
        start local 2 // int index
         1: .line 78
            aload 0 /* this */
            getfield jdk.nashorn.internal.objects.StringIterator.iteratedString:Ljava/lang/String;
            astore 3 /* string */
        start local 3 // java.lang.String string
         2: .line 80
            aload 3 /* string */
            ifnull 3
            iload 2 /* index */
            aload 3 /* string */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
         3: .line 82
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield jdk.nashorn.internal.objects.StringIterator.iteratedString:Ljava/lang/String;
         4: .line 83
            aload 0 /* this */
            invokestatic jdk.nashorn.internal.runtime.Undefined.getUndefined:()Ljdk/nashorn/internal/runtime/Undefined;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 0 /* this */
            getfield jdk.nashorn.internal.objects.StringIterator.global:Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.internal.objects.StringIterator.makeResult:(Ljava/lang/Object;Ljava/lang/Boolean;Ljdk/nashorn/internal/objects/Global;)Ljdk/nashorn/internal/objects/IteratorResult;
            areturn
         5: .line 86
      StackMap locals:
      StackMap stack:
            aload 3 /* string */
            iload 2 /* index */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* first */
        start local 4 // char first
         6: .line 87
            iload 4 /* first */
            ldc 55296
            if_icmplt 11
            iload 4 /* first */
            ldc 56319
            if_icmpgt 11
            iload 2 /* index */
            aload 3 /* string */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            if_icmpge 11
         7: .line 88
            aload 3 /* string */
            iload 2 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* second */
        start local 5 // char second
         8: .line 89
            iload 5 /* second */
            ldc 56320
            if_icmplt 11
            iload 5 /* second */
            ldc 57343
            if_icmpgt 11
         9: .line 90
            aload 0 /* this */
            dup
            getfield jdk.nashorn.internal.objects.StringIterator.nextIndex:I
            iconst_2
            iadd
            putfield jdk.nashorn.internal.objects.StringIterator.nextIndex:I
        10: .line 91
            aload 0 /* this */
            iconst_2
            newarray 5
            dup
            iconst_0
            iload 4 /* first */
            castore
            dup
            iconst_1
            iload 5 /* second */
            castore
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aload 0 /* this */
            getfield jdk.nashorn.internal.objects.StringIterator.global:Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.internal.objects.StringIterator.makeResult:(Ljava/lang/Object;Ljava/lang/Boolean;Ljdk/nashorn/internal/objects/Global;)Ljdk/nashorn/internal/objects/IteratorResult;
            areturn
        end local 5 // char second
        11: .line 95
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield jdk.nashorn.internal.objects.StringIterator.nextIndex:I
            iconst_1
            iadd
            putfield jdk.nashorn.internal.objects.StringIterator.nextIndex:I
        12: .line 96
            aload 0 /* this */
            iload 4 /* first */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aload 0 /* this */
            getfield jdk.nashorn.internal.objects.StringIterator.global:Ljdk/nashorn/internal/objects/Global;
            invokevirtual jdk.nashorn.internal.objects.StringIterator.makeResult:(Ljava/lang/Object;Ljava/lang/Boolean;Ljdk/nashorn/internal/objects/Global;)Ljdk/nashorn/internal/objects/IteratorResult;
            areturn
        end local 4 // char first
        end local 3 // java.lang.String string
        end local 2 // int index
        end local 1 // java.lang.Object arg
        end local 0 // jdk.nashorn.internal.objects.StringIterator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Ljdk/nashorn/internal/objects/StringIterator;
            0   13     1     arg  Ljava/lang/Object;
            1   13     2   index  I
            2   13     3  string  Ljava/lang/String;
            6   13     4   first  C
            8   11     5  second  C
    MethodParameters:
      Name  Flags
      arg   final
}
SourceFile: "StringIterator.java"
    RuntimeVisibleAnnotations: 
      jdk.nashorn.internal.objects.annotations.ScriptClass(value = "StringIterator")