abstract class com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode extends com.oracle.truffle.js.nodes.function.JSBuiltinNode
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode
  super_class: com.oracle.truffle.js.nodes.function.JSBuiltinNode
{
  private com.oracle.truffle.js.nodes.interop.ExportValueNode exportValue;
    descriptor: Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  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: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
         0: .line 225
            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 226
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.nodes.interop.ExportValueNode.create:()Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;
            putfield com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode.exportValue:Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;
         2: .line 227
            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.PolyglotBuiltins$PolyglotExportNode this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/js/builtins/PolyglotBuiltins$PolyglotExportNode;
            0    3     1  context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    3     2  builtin  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
    MethodParameters:
         Name  Flags
      context  
      builtin  

  protected java.lang.Object doString(java.lang.String, java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode this
        start local 1 // java.lang.String identifier
        start local 2 // java.lang.Object value
        start local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
         0: .line 234
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode.getContext:()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.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPolyglotBindings:()Ljava/lang/Object;
            astore 4 /* polyglotBindings */
        start local 4 // java.lang.Object polyglotBindings
         1: .line 235
            goto 4
        end local 4 // java.lang.Object polyglotBindings
      StackMap locals:
      StackMap stack: java.lang.SecurityException
         2: astore 5 /* e */
        start local 5 // java.lang.SecurityException e
         3: .line 236
            aload 5 /* e */
            invokestatic com.oracle.truffle.js.runtime.Errors.createErrorFromException:(Ljava/lang/Throwable;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 5 // java.lang.SecurityException e
        start local 4 // java.lang.Object polyglotBindings
         4: .line 238
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* polyglotBindings */
            aload 1 /* identifier */
            aload 2 /* value */
            aload 3 /* interop */
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode.exportValue:Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.interop.JSInteropUtil.writeMember:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;Lcom/oracle/truffle/api/nodes/Node;)V
         5: .line 239
            aload 2 /* value */
            areturn
        end local 4 // java.lang.Object polyglotBindings
        end local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String identifier
        end local 0 // com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lcom/oracle/truffle/js/builtins/PolyglotBuiltins$PolyglotExportNode;
            0    6     1        identifier  Ljava/lang/String;
            0    6     2             value  Ljava/lang/Object;
            0    6     3           interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
            1    2     4  polyglotBindings  Ljava/lang/Object;
            4    6     4  polyglotBindings  Ljava/lang/Object;
            3    4     5                 e  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "interop")
        com.oracle.truffle.api.library.CachedLibrary(limit = "InteropLibraryLimit")
    MethodParameters:
            Name  Flags
      identifier  
      value       
      interop     

  protected java.lang.Object doMaybeUnbox(com.oracle.truffle.api.interop.TruffleObject, java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode this
        start local 1 // com.oracle.truffle.api.interop.TruffleObject identifier
        start local 2 // java.lang.Object value
        start local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
         0: .line 245
            aload 3 /* interop */
            aload 1 /* identifier */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
            ifeq 6
         1: .line 248
            aload 3 /* interop */
            aload 1 /* identifier */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 4 /* unboxed */
        start local 4 // java.lang.String unboxed
         2: .line 249
            goto 5
        end local 4 // java.lang.String unboxed
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
         3: astore 5 /* e */
        start local 5 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         4: .line 250
            aload 1 /* identifier */
            aload 5 /* e */
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorUnboxException:(Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropException;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 5 // com.oracle.truffle.api.interop.UnsupportedMessageException e
        start local 4 // java.lang.String unboxed
         5: .line 252
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 4 /* unboxed */
            aload 2 /* value */
            aload 3 /* interop */
            invokevirtual com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode.doString:(Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.String unboxed
         6: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* identifier */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode.doInvalid:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.interop.TruffleObject identifier
        end local 0 // com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/js/builtins/PolyglotBuiltins$PolyglotExportNode;
            0    7     1  identifier  Lcom/oracle/truffle/api/interop/TruffleObject;
            0    7     2       value  Ljava/lang/Object;
            0    7     3     interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
            2    3     4     unboxed  Ljava/lang/String;
            5    6     4     unboxed  Ljava/lang/String;
            4    5     5           e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           1     2       3  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"!isString(identifier)"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "interop")
        com.oracle.truffle.api.library.CachedLibrary(limit = "InteropLibraryLimit")
    MethodParameters:
            Name  Flags
      identifier  
      value       
      interop     

  protected java.lang.Object doInvalid(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode this
        start local 1 // java.lang.Object identifier
        start local 2 // java.lang.Object value
         0: .line 260
            aload 1 /* identifier */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorInvalidIdentifier:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object identifier
        end local 0 // com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/truffle/js/builtins/PolyglotBuiltins$PolyglotExportNode;
            0    1     1  identifier  Ljava/lang/Object;
            0    1     2       value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"!isString(identifier)"})
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      identifier  
      value       
}
SourceFile: "PolyglotBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.PolyglotBuiltins
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  public abstract Shared = com.oracle.truffle.api.dsl.Cached$Shared of com.oracle.truffle.api.dsl.Cached
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  abstract PolyglotExportNode = com.oracle.truffle.js.builtins.PolyglotBuiltins$PolyglotExportNode of com.oracle.truffle.js.builtins.PolyglotBuiltins
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/js/runtime/JSConfig;})