public abstract class com.oracle.truffle.js.builtins.math.HypotNode extends com.oracle.truffle.js.builtins.math.MathOperation
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.builtins.math.HypotNode
  super_class: com.oracle.truffle.js.builtins.math.MathOperation
{
  public void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.function.JSBuiltin);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.builtins.math.HypotNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
         0: .line 49
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* builtin */
            invokespecial com.oracle.truffle.js.builtins.math.MathOperation.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
         1: .line 50
            return
        end local 2 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.builtins.math.HypotNode this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/js/builtins/math/HypotNode;
            0    2     1  context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    2     2  builtin  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
    MethodParameters:
         Name  Flags
      context  
      builtin  

  protected double hypot(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)D
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=4, locals=24, args_size=2
        start local 0 // com.oracle.truffle.js.builtins.math.HypotNode this
        start local 1 // java.lang.Object[] args
         0: .line 54
            aload 1 /* args */
            arraylength
            istore 2 /* length */
        start local 2 // int length
         1: .line 55
            iload 2 /* length */
            newarray 7
            astore 3 /* values */
        start local 3 // double[] values
         2: .line 56
            iconst_0
            istore 4 /* isInfinite */
        start local 4 // boolean isInfinite
         3: .line 57
            dconst_0
            dstore 5 /* max */
        start local 5 // double max
         4: .line 58
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 14
         6: .line 59
      StackMap locals: com.oracle.truffle.js.builtins.math.HypotNode java.lang.Object[] int double[] int double int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 7 /* i */
            aaload
            invokevirtual com.oracle.truffle.js.builtins.math.HypotNode.toDouble:(Ljava/lang/Object;)D
            dstore 8 /* value */
        start local 8 // double value
         7: .line 60
            iload 4 /* isInfinite */
            ifne 8
            dload 8 /* value */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifne 8
            iconst_0
            goto 9
      StackMap locals: double
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: istore 4 /* isInfinite */
        10: .line 61
            dload 8 /* value */
            dload 5 /* max */
            dcmpl
            ifle 12
        11: .line 62
            dload 8 /* value */
            dstore 5 /* max */
        12: .line 64
      StackMap locals:
      StackMap stack:
            aload 3 /* values */
            iload 7 /* i */
            dload 8 /* value */
            dastore
        end local 8 // double value
        13: .line 58
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* i */
            iload 2 /* length */
            if_icmplt 6
        end local 7 // int i
        15: .line 66
            iload 4 /* isInfinite */
            ifeq 17
        16: .line 67
            ldc Infinity
            dreturn
        17: .line 71
      StackMap locals:
      StackMap stack:
            dload 5 /* max */
            dconst_0
            dcmpl
            ifne 19
        18: .line 72
            dconst_1
            dstore 5 /* max */
        19: .line 75
      StackMap locals:
      StackMap stack:
            dconst_0
            dstore 7 /* sum */
        start local 7 // double sum
        20: .line 76
            dconst_0
            dstore 9 /* compensation */
        start local 9 // double compensation
        21: .line 77
            aload 3 /* values */
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 30
      StackMap locals: com.oracle.truffle.js.builtins.math.HypotNode java.lang.Object[] int double[] int double double double top top int int double[]
      StackMap stack:
        22: aload 15
            iload 13
            daload
            dstore 11 /* value */
        start local 11 // double value
        23: .line 79
            dload 11 /* value */
            dload 5 /* max */
            ddiv
            dstore 16 /* normalizedValue */
        start local 16 // double normalizedValue
        24: .line 80
            dload 16 /* normalizedValue */
            dload 16 /* normalizedValue */
            dmul
            dstore 18 /* square */
        start local 18 // double square
        25: .line 83
            dload 18 /* square */
            dload 9 /* compensation */
            dsub
            dstore 20 /* compensatedValue */
        start local 20 // double compensatedValue
        26: .line 84
            dload 7 /* sum */
            dload 20 /* compensatedValue */
            dadd
            dstore 22 /* nextSum */
        start local 22 // double nextSum
        27: .line 85
            dload 22 /* nextSum */
            dload 7 /* sum */
            dsub
            dload 20 /* compensatedValue */
            dsub
            dstore 9 /* compensation */
        28: .line 86
            dload 22 /* nextSum */
            dstore 7 /* sum */
        end local 22 // double nextSum
        end local 20 // double compensatedValue
        end local 18 // double square
        end local 16 // double normalizedValue
        end local 11 // double value
        29: .line 77
            iinc 13 1
      StackMap locals:
      StackMap stack:
        30: iload 13
            iload 14
            if_icmplt 22
        31: .line 89
            dload 7 /* sum */
            invokestatic java.lang.Math.sqrt:(D)D
            dload 5 /* max */
            dmul
            dreturn
        end local 9 // double compensation
        end local 7 // double sum
        end local 5 // double max
        end local 4 // boolean isInfinite
        end local 3 // double[] values
        end local 2 // int length
        end local 1 // java.lang.Object[] args
        end local 0 // com.oracle.truffle.js.builtins.math.HypotNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   32     0              this  Lcom/oracle/truffle/js/builtins/math/HypotNode;
            0   32     1              args  [Ljava/lang/Object;
            1   32     2            length  I
            2   32     3            values  [D
            3   32     4        isInfinite  Z
            4   32     5               max  D
            5   15     7                 i  I
            7   13     8             value  D
           20   32     7               sum  D
           21   32     9      compensation  D
           23   29    11             value  D
           24   29    16   normalizedValue  D
           25   29    18            square  D
           26   29    20  compensatedValue  D
           27   29    22           nextSum  D
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "HypotNode.java"