public abstract class com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
  java.lang.String required;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String defaults;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  com.oracle.truffle.js.nodes.intl.JSToCanonicalizedLocaleListNode toCanonicalizedLocaleListNode;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/JSToCanonicalizedLocaleListNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.ToDateTimeOptionsNode createOptionsNode;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/ToDateTimeOptionsNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.access.PropertyGetNode getTimeZoneNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getLocaleMatcherOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getFormatMatcherOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getHourCycleOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getCalendarOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getNumberingSystemOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetBooleanOptionNode getHour12Option;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetBooleanOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getWeekdayOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getEraOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getYearOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getMonthOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getDayOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getHourOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getMinuteOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getSecondOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getTimeZoneNameOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getDateStyleOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  com.oracle.truffle.js.nodes.intl.GetStringOptionNode getTimeStyleOption;
    descriptor: Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.cast.JSToStringNode toStringNode;
    descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private final com.oracle.truffle.api.profiles.BranchProfile errorBranch;
    descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.js.runtime.JSContext context;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    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 63
            ldc Lcom/oracle/truffle/js/nodes/intl/InitializeDateTimeFormatNode;
            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.nodes.intl.InitializeDateTimeFormatNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(com.oracle.truffle.js.runtime.JSContext, java.lang.String, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode this
         0: .line 105
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tToDateTimeOptionsNodeGen cannot be resolved\n\tInitializeDateTimeFormatNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/intl/InitializeDateTimeFormatNode;
    MethodParameters:
          Name  Flags
      context   
      required  
      defaults  

  public abstract com.oracle.truffle.api.object.DynamicObject executeInit(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      collator  
      locales   
      options   

  public static com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode createInitalizeDateTimeFormatNode(com.oracle.truffle.js.runtime.JSContext, java.lang.String, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/intl/InitializeDateTimeFormatNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 133
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tInitializeDateTimeFormatNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
          Name  Flags
      context   
      required  
      defaults  

  public com.oracle.truffle.api.object.DynamicObject initializeDateTimeFormat(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=19, locals=24, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject dateTimeFormatObj
        start local 2 // java.lang.Object localesArg
        start local 3 // java.lang.Object optionsArg
         0: .line 141
            aload 1 /* dateTimeFormatObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSDateTimeFormat.getInternalState:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/intl/JSDateTimeFormat$InternalState;
            astore 4 /* state */
        start local 4 // com.oracle.truffle.js.runtime.builtins.intl.JSDateTimeFormat$InternalState state
         1: .line 143
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.toCanonicalizedLocaleListNode:Lcom/oracle/truffle/js/nodes/intl/JSToCanonicalizedLocaleListNode;
            aload 2 /* localesArg */
            invokevirtual com.oracle.truffle.js.nodes.intl.JSToCanonicalizedLocaleListNode.executeLanguageTags:(Ljava/lang/Object;)[Ljava/lang/String;
            astore 5 /* locales */
        start local 5 // java.lang.String[] locales
         2: .line 144
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.createOptionsNode:Lcom/oracle/truffle/js/nodes/intl/ToDateTimeOptionsNode;
            aload 3 /* optionsArg */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.required:Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.defaults:Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.nodes.intl.ToDateTimeOptionsNode.execute:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 6 /* options */
        start local 6 // com.oracle.truffle.api.object.DynamicObject options
         3: .line 147
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getLocaleMatcherOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            pop
         4: .line 149
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getCalendarOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 7 /* calendarOpt */
        start local 7 // java.lang.String calendarOpt
         5: .line 150
            aload 7 /* calendarOpt */
            ifnull 8
         6: .line 151
            aload 7 /* calendarOpt */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
            invokestatic com.oracle.truffle.js.runtime.util.IntlUtil.validateUnicodeLocaleIdentifierType:(Ljava/lang/String;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
         7: .line 152
            aload 7 /* calendarOpt */
            invokestatic com.oracle.truffle.js.runtime.util.IntlUtil.normalizeUnicodeLocaleIdentifierType:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* calendarOpt */
         8: .line 154
      StackMap locals: com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.builtins.intl.JSDateTimeFormat$InternalState java.lang.String[] com.oracle.truffle.api.object.DynamicObject java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getNumberingSystemOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 8 /* numberingSystemOpt */
        start local 8 // java.lang.String numberingSystemOpt
         9: .line 155
            aload 8 /* numberingSystemOpt */
            ifnull 12
        10: .line 156
            aload 8 /* numberingSystemOpt */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
            invokestatic com.oracle.truffle.js.runtime.util.IntlUtil.validateUnicodeLocaleIdentifierType:(Ljava/lang/String;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
        11: .line 157
            aload 8 /* numberingSystemOpt */
            invokestatic com.oracle.truffle.js.runtime.util.IntlUtil.normalizeUnicodeLocaleIdentifierType:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* numberingSystemOpt */
        12: .line 160
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getHour12Option:Lcom/oracle/truffle/js/nodes/intl/GetBooleanOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetBooleanOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/Boolean;
            astore 9 /* hour12Opt */
        start local 9 // java.lang.Boolean hour12Opt
        13: .line 161
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getHourCycleOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 10 /* hcOpt */
        start local 10 // java.lang.String hcOpt
        14: .line 163
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getTimeZoneNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 11 /* timeZoneValue */
        start local 11 // java.lang.Object timeZoneValue
        15: .line 164
            aload 0 /* this */
            aload 11 /* timeZoneValue */
            invokevirtual com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.toTimeZone:(Ljava/lang/Object;)Lcom/ibm/icu/util/TimeZone;
            astore 12 /* timeZone */
        start local 12 // com.ibm.icu.util.TimeZone timeZone
        16: .line 166
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getWeekdayOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 13 /* weekdayOpt */
        start local 13 // java.lang.String weekdayOpt
        17: .line 167
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getEraOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 14 /* eraOpt */
        start local 14 // java.lang.String eraOpt
        18: .line 168
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getYearOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 15 /* yearOpt */
        start local 15 // java.lang.String yearOpt
        19: .line 169
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getMonthOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 16 /* monthOpt */
        start local 16 // java.lang.String monthOpt
        20: .line 170
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getDayOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 17 /* dayOpt */
        start local 17 // java.lang.String dayOpt
        21: .line 171
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getHourOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 18 /* hourOpt */
        start local 18 // java.lang.String hourOpt
        22: .line 172
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getMinuteOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 19 /* minuteOpt */
        start local 19 // java.lang.String minuteOpt
        23: .line 173
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getSecondOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 20 /* secondOpt */
        start local 20 // java.lang.String secondOpt
        24: .line 174
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getTimeZoneNameOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 21 /* tzNameOpt */
        start local 21 // java.lang.String tzNameOpt
        25: .line 176
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getFormatMatcherOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            pop
        26: .line 178
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getDateStyleOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 22 /* dateStyleOpt */
        start local 22 // java.lang.String dateStyleOpt
        27: .line 179
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getTimeStyleOption:Lcom/oracle/truffle/js/nodes/intl/GetStringOptionNode;
            aload 6 /* options */
            invokevirtual com.oracle.truffle.js.nodes.intl.GetStringOptionNode.executeValue:(Ljava/lang/Object;)Ljava/lang/String;
            astore 23 /* timeStyleOpt */
        start local 23 // java.lang.String timeStyleOpt
        28: .line 181
            aload 22 /* dateStyleOpt */
            ifnonnull 29
            aload 23 /* timeStyleOpt */
            ifnull 33
      StackMap locals: com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.builtins.intl.JSDateTimeFormat$InternalState java.lang.String[] com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String java.lang.Boolean java.lang.String java.lang.Object com.ibm.icu.util.TimeZone java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
        29: aload 13 /* weekdayOpt */
            ifnonnull 31
            aload 14 /* eraOpt */
            ifnonnull 31
            aload 15 /* yearOpt */
            ifnonnull 31
            aload 16 /* monthOpt */
            ifnonnull 31
            aload 17 /* dayOpt */
            ifnonnull 31
            aload 18 /* hourOpt */
            ifnonnull 31
        30: .line 182
            aload 19 /* minuteOpt */
            ifnonnull 31
            aload 20 /* secondOpt */
            ifnonnull 31
            aload 21 /* tzNameOpt */
            ifnull 33
        31: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
        32: .line 184
            ldc "dateStyle and timeStyle options cannot be mixed with other date/time options"
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        33: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 4 /* state */
            aload 5 /* locales */
            aload 13 /* weekdayOpt */
            aload 14 /* eraOpt */
            aload 15 /* yearOpt */
            aload 16 /* monthOpt */
            aload 17 /* dayOpt */
            aload 18 /* hourOpt */
            aload 10 /* hcOpt */
            aload 9 /* hour12Opt */
            aload 19 /* minuteOpt */
            aload 20 /* secondOpt */
            aload 21 /* tzNameOpt */
        34: .line 188
            aload 12 /* timeZone */
            aload 7 /* calendarOpt */
            aload 8 /* numberingSystemOpt */
            aload 22 /* dateStyleOpt */
            aload 23 /* timeStyleOpt */
        35: .line 187
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSDateTimeFormat.setupInternalDateTimeFormat:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/builtins/intl/JSDateTimeFormat$InternalState;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/ibm/icu/util/TimeZone;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        end local 23 // java.lang.String timeStyleOpt
        end local 22 // java.lang.String dateStyleOpt
        end local 21 // java.lang.String tzNameOpt
        end local 20 // java.lang.String secondOpt
        end local 19 // java.lang.String minuteOpt
        end local 18 // java.lang.String hourOpt
        end local 17 // java.lang.String dayOpt
        end local 16 // java.lang.String monthOpt
        end local 15 // java.lang.String yearOpt
        end local 14 // java.lang.String eraOpt
        end local 13 // java.lang.String weekdayOpt
        end local 12 // com.ibm.icu.util.TimeZone timeZone
        end local 11 // java.lang.Object timeZoneValue
        end local 10 // java.lang.String hcOpt
        end local 9 // java.lang.Boolean hour12Opt
        end local 8 // java.lang.String numberingSystemOpt
        end local 7 // java.lang.String calendarOpt
        end local 6 // com.oracle.truffle.api.object.DynamicObject options
        end local 5 // java.lang.String[] locales
        end local 4 // com.oracle.truffle.js.runtime.builtins.intl.JSDateTimeFormat$InternalState state
        36: .line 190
            goto 40
      StackMap locals: com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object
      StackMap stack: java.util.MissingResourceException
        37: astore 4 /* e */
        start local 4 // java.util.MissingResourceException e
        38: .line 191
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
        39: .line 192
            aload 4 /* e */
            invokestatic com.oracle.truffle.js.runtime.Errors.createICU4JDataError:(Ljava/lang/Exception;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 4 // java.util.MissingResourceException e
        40: .line 195
      StackMap locals:
      StackMap stack:
            aload 1 /* dateTimeFormatObj */
            areturn
        end local 3 // java.lang.Object optionsArg
        end local 2 // java.lang.Object localesArg
        end local 1 // com.oracle.truffle.api.object.DynamicObject dateTimeFormatObj
        end local 0 // com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   41     0                this  Lcom/oracle/truffle/js/nodes/intl/InitializeDateTimeFormatNode;
            0   41     1   dateTimeFormatObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   41     2          localesArg  Ljava/lang/Object;
            0   41     3          optionsArg  Ljava/lang/Object;
            1   36     4               state  Lcom/oracle/truffle/js/runtime/builtins/intl/JSDateTimeFormat$InternalState;
            2   36     5             locales  [Ljava/lang/String;
            3   36     6             options  Lcom/oracle/truffle/api/object/DynamicObject;
            5   36     7         calendarOpt  Ljava/lang/String;
            9   36     8  numberingSystemOpt  Ljava/lang/String;
           13   36     9           hour12Opt  Ljava/lang/Boolean;
           14   36    10               hcOpt  Ljava/lang/String;
           15   36    11       timeZoneValue  Ljava/lang/Object;
           16   36    12            timeZone  Lcom/ibm/icu/util/TimeZone;
           17   36    13          weekdayOpt  Ljava/lang/String;
           18   36    14              eraOpt  Ljava/lang/String;
           19   36    15             yearOpt  Ljava/lang/String;
           20   36    16            monthOpt  Ljava/lang/String;
           21   36    17              dayOpt  Ljava/lang/String;
           22   36    18             hourOpt  Ljava/lang/String;
           23   36    19           minuteOpt  Ljava/lang/String;
           24   36    20           secondOpt  Ljava/lang/String;
           25   36    21           tzNameOpt  Ljava/lang/String;
           27   36    22        dateStyleOpt  Ljava/lang/String;
           28   36    23        timeStyleOpt  Ljava/lang/String;
           38   40     4                   e  Ljava/util/MissingResourceException;
      Exception table:
        from    to  target  type
           0    36      37  Class java.util.MissingResourceException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    MethodParameters:
                   Name  Flags
      dateTimeFormatObj  
      localesArg         
      optionsArg         

  private com.ibm.icu.util.TimeZone toTimeZone(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/ibm/icu/util/TimeZone;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode this
        start local 1 // java.lang.Object timeZoneValue
         0: .line 200
            aload 1 /* timeZoneValue */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 6
         1: .line 201
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.toStringNode:Lcom/oracle/truffle/js/nodes/cast/JSToStringNode;
            aload 1 /* timeZoneValue */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToStringNode.executeString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         2: .line 202
            aload 3 /* name */
            invokestatic com.oracle.truffle.js.runtime.builtins.intl.JSDateTimeFormat.canonicalizeTimeZoneName:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* tzId */
        start local 2 // java.lang.String tzId
         3: .line 203
            aload 2 /* tzId */
            ifnonnull 7
         4: .line 204
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         5: .line 205
            aload 3 /* name */
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorInvalidTimeZone:(Ljava/lang/CharSequence;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 3 // java.lang.String name
        end local 2 // java.lang.String tzId
         6: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getLocalTimeZoneId:()Ljava/time/ZoneId;
            invokestatic com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.toICUTimeZoneId:(Ljava/time/ZoneId;)Ljava/lang/String;
            astore 2 /* tzId */
        start local 2 // java.lang.String tzId
         7: .line 210
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* tzId */
            invokestatic com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.getICUTimeZone:(Ljava/lang/String;)Lcom/ibm/icu/util/TimeZone;
            areturn
        end local 2 // java.lang.String tzId
        end local 1 // java.lang.Object timeZoneValue
        end local 0 // com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/oracle/truffle/js/nodes/intl/InitializeDateTimeFormatNode;
            0    8     1  timeZoneValue  Ljava/lang/Object;
            3    6     2           tzId  Ljava/lang/String;
            7    8     2           tzId  Ljava/lang/String;
            2    6     3           name  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      timeZoneValue  

  private static com.ibm.icu.util.TimeZone getICUTimeZone(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/ibm/icu/util/TimeZone;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String tzId
         0: .line 215
            getstatic com.oracle.truffle.js.nodes.intl.InitializeDateTimeFormatNode.$assertionsDisabled:Z
            ifne 1
            aload 0 /* tzId */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* tzId */
            invokestatic com.ibm.icu.util.TimeZone.getTimeZone:(Ljava/lang/String;)Lcom/ibm/icu/util/TimeZone;
            areturn
        end local 0 // java.lang.String tzId
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  tzId  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      tzId  

  private static java.lang.String toICUTimeZoneId(java.time.ZoneId);
    descriptor: (Ljava/time/ZoneId;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.time.ZoneId zoneId
         0: .line 221
            aload 0 /* zoneId */
            invokevirtual java.time.ZoneId.getId:()Ljava/lang/String;
            astore 1 /* tzid */
        start local 1 // java.lang.String tzid
         1: .line 222
            aload 1 /* tzid */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 2 /* c */
        start local 2 // char c
         2: .line 223
            iload 2 /* c */
            bipush 43
            if_icmpeq 3
            iload 2 /* c */
            bipush 45
            if_icmpne 5
         3: .line 224
      StackMap locals: java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "GMT"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* tzid */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* tzid */
         4: .line 225
            goto 7
      StackMap locals:
      StackMap stack:
         5: iload 2 /* c */
            bipush 90
            if_icmpne 7
            aload 1 /* tzid */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 7
         6: .line 226
            ldc "UTC"
            astore 1 /* tzid */
         7: .line 228
      StackMap locals:
      StackMap stack:
            aload 1 /* tzid */
            areturn
        end local 2 // char c
        end local 1 // java.lang.String tzid
        end local 0 // java.time.ZoneId zoneId
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  zoneId  Ljava/time/ZoneId;
            1    8     1    tzid  Ljava/lang/String;
            2    8     2       c  C
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      zoneId  
}
SourceFile: "InitializeDateTimeFormatNode.java"
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  public InternalState = com.oracle.truffle.js.runtime.builtins.intl.JSDateTimeFormat$InternalState of com.oracle.truffle.js.runtime.builtins.intl.JSDateTimeFormat