public abstract class com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectAssignNode extends com.oracle.truffle.js.nodes.function.JSBuiltinNode
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectAssignNode
  super_class: com.oracle.truffle.js.nodes.function.JSBuiltinNode
{
  protected static final boolean STRICT;
    descriptor: Z
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  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.ObjectFunctionBuiltins$ObjectAssignNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
         0: .line 969
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* builtin */
            invokespecial com.oracle.truffle.js.nodes.function.JSBuiltinNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
         1: .line 970
            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.ObjectFunctionBuiltins$ObjectAssignNode this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectAssignNode;
            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 java.lang.Object assign(java.lang.Object, java.lang.Object[], com.oracle.truffle.js.nodes.cast.JSToObjectNode, com.oracle.truffle.js.nodes.access.WriteElementNode, com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$AssignPropertiesNode);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$AssignPropertiesNode;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=12, args_size=6
        start local 0 // com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectAssignNode this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.Object[] sources
        start local 3 // com.oracle.truffle.js.nodes.cast.JSToObjectNode toObjectNode
        start local 4 // com.oracle.truffle.js.nodes.access.WriteElementNode write
        start local 5 // com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$AssignPropertiesNode assignProperties
         0: .line 977
            aload 3 /* toObjectNode */
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* to */
        start local 6 // java.lang.Object to
         1: .line 978
            aload 2 /* sources */
            arraylength
            ifne 3
         2: .line 979
            aload 6 /* to */
            areturn
         3: .line 981
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* sources */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 9
      StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectAssignNode java.lang.Object java.lang.Object[] com.oracle.truffle.js.nodes.cast.JSToObjectNode com.oracle.truffle.js.nodes.access.WriteElementNode com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$AssignPropertiesNode java.lang.Object top int int java.lang.Object[]
      StackMap stack:
         4: aload 10
            iload 8
            aaload
            astore 7 /* o */
        start local 7 // java.lang.Object o
         5: .line 982
            aload 7 /* o */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isNullOrUndefined:(Ljava/lang/Object;)Z
            ifne 8
         6: .line 983
            aload 3 /* toObjectNode */
            aload 7 /* o */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 11 /* from */
        start local 11 // java.lang.Object from
         7: .line 984
            aload 5 /* assignProperties */
            aload 6 /* to */
            aload 11 /* from */
            aload 4 /* write */
            invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$AssignPropertiesNode.executeVoid:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)V
        end local 11 // java.lang.Object from
        end local 7 // java.lang.Object o
         8: .line 981
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
         9: iload 8
            iload 9
            if_icmplt 4
        10: .line 987
            aload 6 /* to */
            areturn
        end local 6 // java.lang.Object to
        end local 5 // com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$AssignPropertiesNode assignProperties
        end local 4 // com.oracle.truffle.js.nodes.access.WriteElementNode write
        end local 3 // com.oracle.truffle.js.nodes.cast.JSToObjectNode toObjectNode
        end local 2 // java.lang.Object[] sources
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectAssignNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectAssignNode;
            0   11     1            target  Ljava/lang/Object;
            0   11     2           sources  [Ljava/lang/Object;
            0   11     3      toObjectNode  Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;
            0   11     4             write  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0   11     5  assignProperties  Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$AssignPropertiesNode;
            1   11     6                to  Ljava/lang/Object;
            5    8     7                 o  Ljava/lang/Object;
            7    8    11              from  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached(value = "createToObject(getContext())")
      3:
        com.oracle.truffle.api.dsl.Cached(value = "create(getContext(), STRICT)")
      4:
        com.oracle.truffle.api.dsl.Cached(value = "create(getContext())")
    MethodParameters:
                  Name  Flags
      target            
      sources           
      toObjectNode      
      write             
      assignProperties  
}
SourceFile: "ObjectFunctionBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins
InnerClasses:
  abstract AssignPropertiesNode = com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$AssignPropertiesNode of com.oracle.truffle.js.builtins.ObjectFunctionBuiltins
  public abstract ObjectAssignNode = com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectAssignNode of com.oracle.truffle.js.builtins.ObjectFunctionBuiltins