public final class com.oracle.truffle.trufflenode.GraalJSAccess
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.trufflenode.GraalJSAccess
  super_class: java.lang.Object
{
  private static final boolean VERBOSE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean USE_NIO_BUFFER;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean USE_SNAPSHOTS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.object.HiddenKey PRIVATE_VALUES_KEY;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.object.HiddenKey FUNCTION_TEMPLATE_DATA_KEY;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.object.HiddenKey INTERNAL_FIELD_COUNT_KEY;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.object.HiddenKey INTERNAL_FIELD_ZERO_KEY;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.js.runtime.Symbol RESOLVER_RESOLVE;
    descriptor: Lcom/oracle/truffle/js/runtime/Symbol;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.js.runtime.Symbol RESOLVER_REJECT;
    descriptor: Lcom/oracle/truffle/js/runtime/Symbol;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey HOLDER_KEY;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey EXTERNALIZED_KEY;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final java.lang.Object INT_PLACEHOLDER;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Object SAFE_INT_PLACEHOLDER;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Object DOUBLE_PLACEHOLDER;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.graalvm.polyglot.Context evaluator;
    descriptor: Lorg/graalvm/polyglot/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.js.runtime.JSContext mainJSContext;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.js.runtime.JSRealm mainJSRealm;
    descriptor: Lcom/oracle/truffle/js/runtime/JSRealm;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.trufflenode.NodeJSAgent agent;
    descriptor: Lcom/oracle/truffle/trufflenode/NodeJSAgent;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.trufflenode.Deallocator deallocator;
    descriptor: Lcom/oracle/truffle/trufflenode/Deallocator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader moduleLoader;
    descriptor: Lcom/oracle/truffle/trufflenode/GraalJSAccess$ESModuleLoader;
    flags: (0x0002) ACC_PRIVATE

  private final com.oracle.truffle.api.TruffleLanguage$Env envForInstruments;
    descriptor: Lcom/oracle/truffle/api/TruffleLanguage$Env;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.nio.ByteBuffer sharedBuffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, java.lang.ref.Reference<java.lang.String>> sourceCodeCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/ref/Reference<Ljava/lang/String;>;>;

  private final java.util.Map<com.oracle.truffle.api.source.Source, java.lang.Object> hostDefinedOptionsMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/truffle/api/source/Source;Ljava/lang/Object;>;

  private final boolean exposeGC;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final java.lang.ref.ReferenceQueue<com.oracle.truffle.js.runtime.JSAgentWaiterList> agentWaiterListQueue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ref/ReferenceQueue<Lcom/oracle/truffle/js/runtime/JSAgentWaiterList;>;

  private static final java.util.Map<java.lang.Long, java.lang.ref.WeakReference<com.oracle.truffle.js.runtime.JSAgentWaiterList>> agentWaiterListMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Long;Ljava/lang/ref/WeakReference<Lcom/oracle/truffle/js/runtime/JSAgentWaiterList;>;>;

  private static final java.util.regex.Pattern SYNTAX_ERROR_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int SYNTAX_ERROR_RESOURCE_NAME_GROUP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int SYNTAX_ERROR_LINE_NUMBER_GROUP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int SYNTAX_ERROR_COLUMN_NUMBER_GROUP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int SYNTAX_ERROR_MESSAGE_GROUP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int SYNTAX_ERROR_SOURCE_LINE_GROUP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final com.oracle.truffle.api.object.HiddenKey HIDDEN_WEAK_CALLBACK;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.object.HiddenKey HIDDEN_WEAK_CALLBACK_CONTEXT;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.ref.ReferenceQueue<java.lang.Object> weakCallbackQueue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ref/ReferenceQueue<Ljava/lang/Object;>;

  private final java.util.Set<com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback> weakCallbacks;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;>;

  private boolean createChildContext;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean terminateExecution;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.ThreadLocal<java.util.Deque<com.oracle.truffle.js.runtime.util.Pair<java.lang.Long, java.lang.Object>>> isolateStack;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/util/Deque<Lcom/oracle/truffle/js/runtime/util/Pair<Ljava/lang/Long;Ljava/lang/Object;>;>;>;

  private static final java.nio.ByteBuffer DUMMY_UNBOUND_MODULE_PARSE_RESULT;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private com.oracle.truffle.trufflenode.threading.JavaMessagePortData currentMessagePortData;
    descriptor: Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$js$runtime$objects$JSModuleRecord$Status;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 239
            ldc Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            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.trufflenode.GraalJSAccess.$assertionsDisabled:Z
         3: .line 241
            ldc "truffle.node.js.verbose"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.VERBOSE:Z
         4: .line 242
            ldc "false"
            ldc "node.buffer.nio"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: putstatic com.oracle.truffle.trufflenode.GraalJSAccess.USE_NIO_BUFFER:Z
         7: .line 243
            ldc "false"
            ldc "truffle.node.js.snapshots"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: putstatic com.oracle.truffle.trufflenode.GraalJSAccess.USE_SNAPSHOTS:Z
        10: .line 245
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "PrivateValues"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.PRIVATE_VALUES_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
        11: .line 246
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "FunctionTemplateData"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.FUNCTION_TEMPLATE_DATA_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
        12: .line 247
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "InternalFieldCount"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.INTERNAL_FIELD_COUNT_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
        13: .line 248
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "InternalField0"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.INTERNAL_FIELD_ZERO_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
        14: .line 250
            ldc "Resolve"
            invokestatic com.oracle.truffle.js.runtime.Symbol.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/Symbol;
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.RESOLVER_RESOLVE:Lcom/oracle/truffle/js/runtime/Symbol;
        15: .line 251
            ldc "Reject"
            invokestatic com.oracle.truffle.js.runtime.Symbol.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/Symbol;
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.RESOLVER_REJECT:Lcom/oracle/truffle/js/runtime/Symbol;
        16: .line 253
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "Holder"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.HOLDER_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
        17: .line 255
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "Externalized"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.EXTERNALIZED_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
        18: .line 259
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.INT_PLACEHOLDER:Ljava/lang/Object;
        19: .line 260
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.SAFE_INT_PLACEHOLDER:Ljava/lang/Object;
        20: .line 261
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.DOUBLE_PLACEHOLDER:Ljava/lang/Object;
        21: .line 1245
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.agentWaiterListQueue:Ljava/lang/ref/ReferenceQueue;
        22: .line 1246
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.agentWaiterListMap:Ljava/util/Map;
        23: .line 2258
            ldc "(.+):(\\d+):(\\d+) ([^\r\n]+)\r?\n([^\r\n]+)(?:\r?\n(?:.|(?:\r?\n))*)?"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.SYNTAX_ERROR_PATTERN:Ljava/util/regex/Pattern;
        24: .line 2405
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "WeakCallback"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.HIDDEN_WEAK_CALLBACK:Lcom/oracle/truffle/api/object/HiddenKey;
        25: .line 2406
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "WeakCallbackContext"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.HIDDEN_WEAK_CALLBACK_CONTEXT:Lcom/oracle/truffle/api/object/HiddenKey;
        26: .line 2912
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.isolateStack:Ljava/lang/ThreadLocal;
        27: .line 3310
            iconst_0
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.DUMMY_UNBOUND_MODULE_PARSE_RESULT:Ljava/nio/ByteBuffer;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.String[] args
         0: .line 298
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 279
            aload 0 /* this */
            sipush 128
            invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
         2: .line 286
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.sourceCodeCache:Ljava/util/Map;
         3: .line 291
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.hostDefinedOptionsMap:Ljava/util/Map;
         4: .line 2412
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbackQueue:Ljava/lang/ref/ReferenceQueue;
         5: .line 2418
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbacks:Ljava/util/Set;
         6: .line 3576
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.currentMessagePortData:Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
         7: .line 300
            aload 1 /* args */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.prepareArguments:([Ljava/lang/String;)[Ljava/lang/String;
            invokestatic com.oracle.truffle.trufflenode.Options.parseArguments:([Ljava/lang/String;)Lcom/oracle/truffle/trufflenode/Options;
            astore 2 /* options */
        start local 2 // com.oracle.truffle.trufflenode.Options options
         8: .line 301
            aload 2 /* options */
            invokevirtual com.oracle.truffle.trufflenode.Options.getContextBuilder:()Lorg/graalvm/polyglot/Context$Builder;
            astore 3 /* contextBuilder */
        start local 3 // org.graalvm.polyglot.Context$Builder contextBuilder
         9: .line 303
            aload 3 /* contextBuilder */
            ldc "js.direct-byte-buffer"
            ldc "true"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            pop
        10: .line 304
            aload 3 /* contextBuilder */
            ldc "js.v8-compat"
            ldc "true"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            pop
        11: .line 305
            aload 3 /* contextBuilder */
            ldc "js.intl-402"
            ldc "true"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            pop
        12: .line 306
            aload 3 /* contextBuilder */
            ldc "js.class-fields"
            ldc "true"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            pop
        13: .line 308
            aload 3 /* contextBuilder */
            ldc "js.load"
            ldc "false"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            pop
        14: .line 310
            aload 3 /* contextBuilder */
            ldc "js.console"
            ldc "false"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            pop
        15: .line 312
            aload 3 /* contextBuilder */
            ldc "js.global-arguments"
            ldc "false"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            pop
        16: .line 314
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual com.oracle.truffle.trufflenode.Options.isGCExposed:()Z
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.exposeGC:Z
        17: .line 315
            aload 0 /* this */
            aload 3 /* contextBuilder */
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.evaluator:Lorg/graalvm/polyglot/Context;
        18: .line 316
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.evaluator:Lorg/graalvm/polyglot/Context;
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.getJSRealm:(Lorg/graalvm/polyglot/Context;)Lcom/oracle/truffle/js/runtime/JSRealm;
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSRealm:Lcom/oracle/truffle/js/runtime/JSRealm;
        end local 3 // org.graalvm.polyglot.Context$Builder contextBuilder
        end local 2 // com.oracle.truffle.trufflenode.Options options
        19: .line 317
            goto 41
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.String[]
      StackMap stack: java.lang.IllegalArgumentException
        20: astore 2 /* iaex */
        start local 2 // java.lang.IllegalArgumentException iaex
        21: .line 318
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "ERROR: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* iaex */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        22: .line 319
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        23: .line 320
            aload 2 /* iaex */
            athrow
        end local 2 // java.lang.IllegalArgumentException iaex
        24: .line 321
      StackMap locals:
      StackMap stack: org.graalvm.polyglot.PolyglotException
            astore 2 /* pex */
        start local 2 // org.graalvm.polyglot.PolyglotException pex
        25: .line 322
            iconst_1
            istore 3 /* exitCode */
        start local 3 // int exitCode
        26: .line 323
            aload 2 /* pex */
            invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
            astore 4 /* message */
        start local 4 // java.lang.String message
        27: .line 324
            aload 4 /* message */
            ifnull 28
            aload 4 /* message */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 28
            iconst_0
            goto 29
      StackMap locals: org.graalvm.polyglot.PolyglotException int java.lang.String
      StackMap stack:
        28: iconst_1
      StackMap locals:
      StackMap stack: int
        29: istore 5 /* emptyMessage */
        start local 5 // boolean emptyMessage
        30: .line 325
            aload 2 /* pex */
            invokevirtual org.graalvm.polyglot.PolyglotException.isExit:()Z
            ifeq 35
        31: .line 326
            aload 2 /* pex */
            invokevirtual org.graalvm.polyglot.PolyglotException.getExitStatus:()I
            istore 3 /* exitCode */
        32: .line 327
            iload 3 /* exitCode */
            ifeq 39
            iload 5 /* emptyMessage */
            ifne 39
        33: .line 328
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 4 /* message */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        34: .line 330
            goto 39
      StackMap locals: int
      StackMap stack:
        35: aload 2 /* pex */
            invokevirtual org.graalvm.polyglot.PolyglotException.isInternalError:()Z
            ifne 36
            iload 5 /* emptyMessage */
            ifeq 38
        36: .line 331
      StackMap locals:
      StackMap stack:
            aload 2 /* pex */
            invokevirtual org.graalvm.polyglot.PolyglotException.printStackTrace:()V
        37: .line 332
            goto 39
        38: .line 333
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "ERROR: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        39: .line 335
      StackMap locals:
      StackMap stack:
            iload 3 /* exitCode */
            invokestatic java.lang.System.exit:(I)V
        40: .line 336
            aload 2 /* pex */
            athrow
        end local 5 // boolean emptyMessage
        end local 4 // java.lang.String message
        end local 3 // int exitCode
        end local 2 // org.graalvm.polyglot.PolyglotException pex
        41: .line 339
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSRealm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
        42: .line 340
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 43
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            ifnonnull 43
            new java.lang.AssertionError
            dup
            ldc "JSContext initialized"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        43: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.oracle.truffle.trufflenode.NodeJSAgent
            dup
            invokespecial com.oracle.truffle.trufflenode.NodeJSAgent.<init>:()V
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
        44: .line 342
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSRealm:Lcom/oracle/truffle/js/runtime/JSRealm;
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.setAgent:(Lcom/oracle/truffle/js/runtime/JSAgent;)V
        45: .line 343
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
            invokevirtual com.oracle.truffle.trufflenode.NodeJSAgent.interopBoundaryEnter:()V
        46: .line 344
            aload 0 /* this */
            new com.oracle.truffle.trufflenode.Deallocator
            dup
            invokespecial com.oracle.truffle.trufflenode.Deallocator.<init>:()V
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.deallocator:Lcom/oracle/truffle/trufflenode/Deallocator;
        47: .line 345
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSRealm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.envForInstruments:Lcom/oracle/truffle/api/TruffleLanguage$Env;
        48: .line 347
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.isolateEnableImportModuleDynamically:(Z)V
        49: .line 348
            return
        end local 1 // java.lang.String[] args
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   50     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   50     1            args  [Ljava/lang/String;
            8   19     2         options  Lcom/oracle/truffle/trufflenode/Options;
            9   19     3  contextBuilder  Lorg/graalvm/polyglot/Context$Builder;
           21   24     2            iaex  Ljava/lang/IllegalArgumentException;
           25   41     2             pex  Lorg/graalvm/polyglot/PolyglotException;
           26   41     3        exitCode  I
           27   41     4         message  Ljava/lang/String;
           30   41     5    emptyMessage  Z
      Exception table:
        from    to  target  type
           7    19      20  Class java.lang.IllegalArgumentException
           7    19      24  Class org.graalvm.polyglot.PolyglotException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      args  

  private static java.lang.String[] prepareArguments(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 351
            ldc "NODE_POLYGLOT_OPTIONS"
            invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* options */
        start local 1 // java.lang.String options
         1: .line 352
            aload 1 /* options */
            ifnonnull 3
         2: .line 353
            aload 0 /* args */
            areturn
         3: .line 355
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* options */
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* additionalArgs */
        start local 2 // java.lang.String[] additionalArgs
         4: .line 356
            aload 0 /* args */
            arraylength
            aload 2 /* additionalArgs */
            arraylength
            iadd
            anewarray java.lang.String
            astore 3 /* mergedArgs */
        start local 3 // java.lang.String[] mergedArgs
         5: .line 357
            aload 0 /* args */
            iconst_0
            aload 3 /* mergedArgs */
            iconst_0
            aload 0 /* args */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 358
            aload 2 /* additionalArgs */
            iconst_0
            aload 3 /* mergedArgs */
            aload 0 /* args */
            arraylength
            aload 2 /* additionalArgs */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 359
            aload 3 /* mergedArgs */
            areturn
        end local 3 // java.lang.String[] mergedArgs
        end local 2 // java.lang.String[] additionalArgs
        end local 1 // java.lang.String options
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            args  [Ljava/lang/String;
            1    8     1         options  Ljava/lang/String;
            4    8     2  additionalArgs  [Ljava/lang/String;
            5    8     3      mergedArgs  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      args  

  public static java.lang.Object create(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 363
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
         1: .line 364
            new com.oracle.truffle.trufflenode.GraalJSAccess
            dup
            aload 0 /* args */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess.<init>:([Ljava/lang/String;)V
            areturn
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  args  [Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      args  

  public java.lang.Object undefinedInstance();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 368
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public java.lang.Object nullInstance();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 372
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public void resetSharedBuffer();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 376
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            invokestatic com.oracle.truffle.js.runtime.util.BufferUtil.asBaseBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
            invokevirtual java.nio.Buffer.clear:()Ljava/nio/Buffer;
            pop
         1: .line 377
            return
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public java.nio.ByteBuffer getSharedBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 380
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            invokestatic com.oracle.truffle.js.runtime.util.DirectByteBufferHelper.cast:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public int valueType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 384
            aload 0 /* this */
            aload 1 /* value */
            iconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueType:(Ljava/lang/Object;Z)I
            ireturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public int valueType(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
        start local 2 // boolean useSharedBuffer
         0: .line 389
            aload 1 /* value */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 2
         1: .line 390
            iconst_1
            ireturn
         2: .line 391
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 4
         3: .line 392
            iconst_2
            ireturn
         4: .line 393
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            if_acmpne 6
         5: .line 394
            iconst_3
            ireturn
         6: .line 395
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            if_acmpne 8
         7: .line 396
            iconst_4
            ireturn
         8: .line 397
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            instanceof java.lang.String
            ifeq 10
         9: .line 398
            iconst_5
            ireturn
        10: .line 399
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isNumber:(Ljava/lang/Object;)Z
            ifeq 14
        11: .line 400
            iload 2 /* useSharedBuffer */
            ifeq 13
        12: .line 401
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            aload 1 /* value */
            checkcast java.lang.Number
            invokevirtual java.lang.Number.doubleValue:()D
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        13: .line 403
      StackMap locals:
      StackMap stack:
            bipush 6
            ireturn
        14: .line 404
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 405
            aload 0 /* this */
            aload 1 /* value */
            checkcast com.oracle.truffle.api.object.DynamicObject
            iload 2 /* useSharedBuffer */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueTypeJSObject:(Lcom/oracle/truffle/api/object/DynamicObject;Z)I
            ireturn
        16: .line 406
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isForeignObject:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 407
            aload 0 /* this */
            aload 1 /* value */
            checkcast com.oracle.truffle.api.interop.TruffleObject
            iload 2 /* useSharedBuffer */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueTypeForeignObject:(Lcom/oracle/truffle/api/interop/TruffleObject;Z)I
            ireturn
        18: .line 408
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 409
            bipush 13
            ireturn
        20: .line 410
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            instanceof com.oracle.truffle.js.runtime.Symbol
            ifeq 22
        21: .line 411
            bipush 16
            ireturn
        22: .line 412
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            instanceof com.oracle.truffle.js.runtime.BigInt
            ifeq 24
        23: .line 413
            bipush 31
            ireturn
        24: .line 414
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            instanceof java.lang.Boolean
            ifeq 28
        25: .line 415
            aload 1 /* value */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 26
            iconst_3
            goto 27
      StackMap locals:
      StackMap stack:
        26: iconst_4
      StackMap locals:
      StackMap stack: int
        27: ireturn
        28: .line 417
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            instanceof java.lang.Throwable
            ifeq 30
        29: .line 418
            aload 1 /* value */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.valueTypeError:(Ljava/lang/Object;)V
        30: .line 420
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 2 // boolean useSharedBuffer
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   31     1            value  Ljava/lang/Object;
            0   31     2  useSharedBuffer  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                 Name  Flags
      value            
      useSharedBuffer  

  private int valueTypeForeignObject(com.oracle.truffle.api.interop.TruffleObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.api.interop.TruffleObject value
        start local 2 // boolean useSharedBuffer
         0: .line 424
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 3 /* interop */
        start local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
         1: .line 425
            aload 3 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isExecutable:(Ljava/lang/Object;)Z
            ifne 2
            aload 3 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isInstantiable:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 426
      StackMap locals: com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack:
            bipush 8
            ireturn
         3: .line 427
      StackMap locals:
      StackMap stack:
            aload 3 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 428
            iconst_2
            ireturn
         5: .line 429
      StackMap locals:
      StackMap stack:
            aload 3 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isBoolean:(Ljava/lang/Object;)Z
            ifeq 12
         6: .line 431
            aload 3 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asBoolean:(Ljava/lang/Object;)Z
            ifeq 7
            iconst_3
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_4
      StackMap locals:
      StackMap stack: int
         8: ireturn
         9: .line 432
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            pop
        10: .line 433
            aload 1 /* value */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.valueTypeError:(Ljava/lang/Object;)V
        11: .line 434
            iconst_m1
            ireturn
        12: .line 436
      StackMap locals:
      StackMap stack:
            aload 3 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 437
            iconst_5
            ireturn
        14: .line 438
      StackMap locals:
      StackMap stack:
            aload 3 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNumber:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 439
            aload 0 /* this */
            aload 1 /* value */
            aload 3 /* interop */
            iload 2 /* useSharedBuffer */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueTypeForeignNumber:(Lcom/oracle/truffle/api/interop/TruffleObject;Lcom/oracle/truffle/api/interop/InteropLibrary;Z)I
            ireturn
        16: .line 441
      StackMap locals:
      StackMap stack:
            bipush 12
            ireturn
        end local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 2 // boolean useSharedBuffer
        end local 1 // com.oracle.truffle.api.interop.TruffleObject value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   17     1            value  Lcom/oracle/truffle/api/interop/TruffleObject;
            0   17     2  useSharedBuffer  Z
            1   17     3          interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
      Exception table:
        from    to  target  type
           6     8       9  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
                 Name  Flags
      value            
      useSharedBuffer  

  public int valueTypeForeignNumber(com.oracle.truffle.api.interop.TruffleObject, com.oracle.truffle.api.interop.InteropLibrary, boolean);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;Lcom/oracle/truffle/api/interop/InteropLibrary;Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.api.interop.TruffleObject value
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        start local 3 // boolean useSharedBuffer
         0: .line 447
            aload 0 /* this */
            aload 2 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDouble:(Ljava/lang/Object;)D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            iload 3 /* useSharedBuffer */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueType:(Ljava/lang/Object;Z)I
         1: ireturn
         2: .line 448
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            pop
         3: .line 449
            aload 2 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInLong:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 451
            aload 0 /* this */
            aload 2 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asLong:(Ljava/lang/Object;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iload 3 /* useSharedBuffer */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueType:(Ljava/lang/Object;Z)I
         5: ireturn
         6: .line 452
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            pop
         7: .line 457
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.valueTypeError:(Ljava/lang/Object;)V
         8: .line 458
            iconst_m1
            ireturn
        end local 3 // boolean useSharedBuffer
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // com.oracle.truffle.api.interop.TruffleObject value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    9     1            value  Lcom/oracle/truffle/api/interop/TruffleObject;
            0    9     2          interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
            0    9     3  useSharedBuffer  Z
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.api.interop.UnsupportedMessageException
           4     5       6  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
                 Name  Flags
      value            
      interop          
      useSharedBuffer  

  private int valueTypeJSObject(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
        start local 2 // boolean useSharedBuffer
         0: .line 462
            aload 1 /* obj */
            invokestatic com.oracle.truffle.trufflenode.JSExternal.isJSExternalObject:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 463
            bipush 7
            ireturn
         2: .line 464
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 465
            bipush 8
            ireturn
         4: .line 466
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.isJSArray:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 467
            bipush 9
            ireturn
         6: .line 468
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDate.isJSDate:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 469
            bipush 10
            ireturn
         8: .line 470
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.isJSRegExp:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 471
            bipush 11
            ireturn
        10: .line 472
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.isJSArrayBufferView:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 473
            aload 0 /* this */
            aload 1 /* obj */
            iload 2 /* useSharedBuffer */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueTypeArrayBufferView:(Lcom/oracle/truffle/api/object/DynamicObject;Z)I
            ireturn
        12: .line 474
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBuffer.isJSDirectArrayBuffer:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 475
            bipush 15
            ireturn
        14: .line 476
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDataView.isJSDataView:(Ljava/lang/Object;)Z
            ifeq 20
        15: .line 477
            iload 2 /* useSharedBuffer */
            ifeq 19
        16: .line 478
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
        17: .line 479
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            aload 3 /* context */
            aload 1 /* obj */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.arrayBufferViewByteLength:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        18: .line 480
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            aload 3 /* context */
            aload 1 /* obj */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.arrayBufferViewByteOffset:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        19: .line 482
      StackMap locals:
      StackMap stack:
            bipush 30
            ireturn
        20: .line 483
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSMap.isJSMap:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 484
            bipush 26
            ireturn
        22: .line 485
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSet.isJSSet:(Ljava/lang/Object;)Z
            ifeq 24
        23: .line 486
            bipush 27
            ireturn
        24: .line 487
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSPromise.isJSPromise:(Ljava/lang/Object;)Z
            ifeq 26
        25: .line 488
            bipush 28
            ireturn
        26: .line 489
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
            ifeq 28
        27: .line 490
            bipush 29
            ireturn
        28: .line 492
      StackMap locals:
      StackMap stack:
            bipush 12
            ireturn
        end local 2 // boolean useSharedBuffer
        end local 1 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   29     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   29     1              obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   29     2  useSharedBuffer  Z
           17   19     3          context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
                 Name  Flags
      obj              
      useSharedBuffer  

  private int valueTypeArrayBufferView(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
        start local 2 // boolean useSharedBuffer
         0: .line 497
            iload 2 /* useSharedBuffer */
            ifeq 4
         1: .line 498
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
         2: .line 499
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            aload 3 /* context */
            aload 1 /* obj */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.arrayBufferViewByteLength:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 500
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            aload 3 /* context */
            aload 1 /* obj */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.arrayBufferViewByteOffset:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
         4: .line 502
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 3 /* array */
        start local 3 // com.oracle.truffle.js.runtime.array.ScriptArray array
         5: .line 503
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectUint8Array
            ifeq 7
         6: .line 504
            bipush 17
            ireturn
         7: .line 505
      StackMap locals: com.oracle.truffle.js.runtime.array.ScriptArray
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectUint8ClampedArray
            ifeq 9
         8: .line 506
            bipush 18
            ireturn
         9: .line 507
      StackMap locals:
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectInt8Array
            ifeq 11
        10: .line 508
            bipush 20
            ireturn
        11: .line 509
      StackMap locals:
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectUint16Array
            ifeq 13
        12: .line 510
            bipush 21
            ireturn
        13: .line 511
      StackMap locals:
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectInt16Array
            ifeq 15
        14: .line 512
            bipush 22
            ireturn
        15: .line 513
      StackMap locals:
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectUint32Array
            ifeq 17
        16: .line 514
            bipush 19
            ireturn
        17: .line 515
      StackMap locals:
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectInt32Array
            ifeq 19
        18: .line 516
            bipush 23
            ireturn
        19: .line 517
      StackMap locals:
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectFloat32Array
            ifeq 21
        20: .line 518
            bipush 24
            ireturn
        21: .line 519
      StackMap locals:
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectFloat64Array
            ifeq 23
        22: .line 520
            bipush 25
            ireturn
        23: .line 521
      StackMap locals:
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectBigInt64Array
            ifeq 25
        24: .line 522
            bipush 32
            ireturn
        25: .line 523
      StackMap locals:
      StackMap stack:
            aload 3 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$DirectBigUint64Array
            ifeq 27
        26: .line 524
            bipush 33
            ireturn
        27: .line 526
      StackMap locals:
      StackMap stack:
            bipush 14
            ireturn
        end local 3 // com.oracle.truffle.js.runtime.array.ScriptArray array
        end local 2 // boolean useSharedBuffer
        end local 1 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   28     1              obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   28     2  useSharedBuffer  Z
            2    4     3          context  Lcom/oracle/truffle/js/runtime/JSContext;
            5   28     3            array  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    MethodParameters:
                 Name  Flags
      obj              
      useSharedBuffer  

  public static void valueTypeError(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 532
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "unknown type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* value */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals: java.lang.Object
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
         1: aload 0 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
      StackMap locals: java.lang.Object
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
         2: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 533
            return
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      value  

  public double valueDouble(java.lang.Object);
    descriptor: (Ljava/lang/Object;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object obj
         0: .line 536
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toDouble:(Ljava/lang/Object;)D
            dreturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public long valueExternal(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object obj
         0: .line 540
            aload 1 /* obj */
            checkcast com.oracle.truffle.trufflenode.JSExternalObject
            invokevirtual com.oracle.truffle.trufflenode.JSExternalObject.getPointer:()J
            lreturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.String valueUnknown(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object obj
         0: .line 544
            aload 1 /* obj */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.Object valueToObject(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object value
         0: .line 548
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toObject:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/TruffleObject;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2    value  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      value    

  public java.lang.Object valueToInteger(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 552
            aload 1 /* value */
            instanceof java.lang.Double
            ifeq 4
         1: .line 553
            aload 1 /* value */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dstore 2 /* doubleValue */
        start local 2 // double doubleValue
         2: .line 554
            dload 2 /* doubleValue */
            ldc -9.223372036854776E18
            dcmpg
            iflt 3
            ldc 9.223372036854776E18
            dload 2 /* doubleValue */
            dcmpg
            iflt 3
            dload 2 /* doubleValue */
            dconst_0
            dcmpl
            ifne 4
         3: .line 555
      StackMap locals: double
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 2 // double doubleValue
         4: .line 558
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toInteger:(Ljava/lang/Object;)J
            lstore 2 /* integer */
        start local 2 // long integer
         5: .line 559
            lload 2 /* integer */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.longIsRepresentableAsInt:(J)Z
            ifeq 7
         6: .line 560
            lload 2 /* integer */
            l2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         7: .line 562
      StackMap locals: long
      StackMap stack:
            lload 2 /* integer */
            l2d
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        end local 2 // long integer
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1        value  Ljava/lang/Object;
            2    4     2  doubleValue  D
            5    8     2      integer  J
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object valueToInt32(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 567
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toInt32:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object valueToUint32(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 571
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toUInt32:(Ljava/lang/Object;)J
            l2d
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public java.lang.String valueToString(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 575
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public boolean valueToBoolean(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 579
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toBoolean:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object valueToNumber(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 583
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toNumber:(Ljava/lang/Object;)Ljava/lang/Number;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object valueToArrayIndex(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 587
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/Object;)Z
            ifeq 7
         1: .line 588
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toDouble:(Ljava/lang/Object;)D
            dstore 2 /* index */
        start local 2 // double index
         2: .line 589
            dload 2 /* index */
            dconst_0
            dcmpl
            ifne 4
         3: .line 590
            dconst_0
            dstore 2 /* index */
         4: .line 592
      StackMap locals: double
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         5: .line 593
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            dload 2 /* index */
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
         6: .line 594
            dload 2 /* index */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        end local 2 // double index
         7: .line 596
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1  value  Ljava/lang/Object;
            2    7     2  index  D
    MethodParameters:
       Name  Flags
      value  

  public int valueInt32Value(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 601
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toInt32:(Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public double valueUint32Value(java.lang.Object);
    descriptor: (Ljava/lang/Object;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 605
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toUInt32:(Ljava/lang/Object;)J
            l2d
            dreturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public long valueIntegerValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 609
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toInteger:(Ljava/lang/Object;)J
            lreturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public boolean valueIsNativeError(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 613
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSError.isJSError:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsSetIterator(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 617
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 618
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 2 /* dynamicObject */
        start local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         2: .line 619
            aload 2 /* dynamicObject */
            getstatic com.oracle.truffle.js.runtime.JSRuntime.ITERATED_OBJECT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* iteratedObj */
        start local 3 // java.lang.Object iteratedObj
         3: .line 620
            aload 3 /* iteratedObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSet.isJSSet:(Ljava/lang/Object;)Z
            ireturn
        end local 3 // java.lang.Object iteratedObj
        end local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         4: .line 622
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1         object  Ljava/lang/Object;
            2    4     2  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            3    4     3    iteratedObj  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsMapIterator(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 626
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 627
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 2 /* dynamicObject */
        start local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         2: .line 628
            aload 2 /* dynamicObject */
            getstatic com.oracle.truffle.js.runtime.JSRuntime.ITERATED_OBJECT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* iteratedObj */
        start local 3 // java.lang.Object iteratedObj
         3: .line 629
            aload 3 /* iteratedObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSMap.isJSMap:(Ljava/lang/Object;)Z
            ireturn
        end local 3 // java.lang.Object iteratedObj
        end local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         4: .line 631
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1         object  Ljava/lang/Object;
            2    4     2  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            3    4     3    iteratedObj  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsSharedArrayBuffer(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 635
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSharedArrayBuffer.isJSSharedArrayBuffer:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsArgumentsObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 639
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArgumentsArray.isJSArgumentsObject:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsBooleanObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 643
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSBoolean.isJSBoolean:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsNumberObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 647
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSNumber.isJSNumber:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsStringObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 651
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSString.isJSString:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsSymbolObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 655
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSymbol.isJSSymbol:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsBigIntObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 659
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSBigInt.isJSBigInt:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsWeakMap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 663
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSWeakMap.isJSWeakMap:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsWeakSet(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 667
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSWeakSet.isJSWeakSet:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsAsyncFunction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 671
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 1
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isAsync:()Z
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsGeneratorFunction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 675
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 1
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isGenerator:()Z
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsGeneratorObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 679
            aload 1 /* object */
            instanceof com.oracle.truffle.api.object.DynamicObject
            ifeq 1
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.GENERATOR_STATE_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.containsKey:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueIsModuleNamespaceObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 683
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSModuleNamespace.isJSModuleNamespace:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean valueEquals(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object left
        start local 2 // java.lang.Object right
         0: .line 687
            aload 1 /* left */
            aload 2 /* right */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.Object right
        end local 1 // java.lang.Object left
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1   left  Ljava/lang/Object;
            0    1     2  right  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      left   
      right  

  public boolean valueStrictEquals(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object left
        start local 2 // java.lang.Object right
         0: .line 691
            aload 1 /* left */
            aload 2 /* right */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.identical:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.Object right
        end local 1 // java.lang.Object left
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1   left  Ljava/lang/Object;
            0    1     2  right  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      left   
      right  

  public boolean valueInstanceOf(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object left
        start local 2 // java.lang.Object right
         0: .line 695
            aload 1 /* left */
            instanceof com.oracle.truffle.api.object.DynamicObject
            ifeq 9
         1: .line 696
            aload 2 /* right */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 3 /* function */
        start local 3 // com.oracle.truffle.api.object.DynamicObject function
         2: .line 697
            aload 3 /* function */
            getstatic com.oracle.truffle.js.runtime.Symbol.SYMBOL_HAS_INSTANCE:Lcom/oracle/truffle/js/runtime/Symbol;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* hasInstance */
        start local 4 // java.lang.Object hasInstance
         3: .line 698
            aload 4 /* hasInstance */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 8
         4: .line 699
            aload 3 /* function */
            ldc "prototype"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* prototype */
        start local 5 // java.lang.Object prototype
         5: .line 700
            aload 5 /* prototype */
            instanceof com.oracle.truffle.api.object.DynamicObject
            ifeq 7
         6: .line 701
            aload 1 /* left */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 5 /* prototype */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPrototypeOf:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
         7: .line 703
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object
      StackMap stack:
            ldc "prototype is not an Object"
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 5 // java.lang.Object prototype
         8: .line 706
      StackMap locals:
      StackMap stack:
            aload 4 /* hasInstance */
            aload 3 /* function */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* left */
            aastore
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.call:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toBoolean:(Ljava/lang/Object;)Z
            ireturn
        end local 4 // java.lang.Object hasInstance
        end local 3 // com.oracle.truffle.api.object.DynamicObject function
         9: .line 709
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.Object right
        end local 1 // java.lang.Object left
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   10     1         left  Ljava/lang/Object;
            0   10     2        right  Ljava/lang/Object;
            2    9     3     function  Lcom/oracle/truffle/api/object/DynamicObject;
            3    9     4  hasInstance  Ljava/lang/Object;
            5    8     5    prototype  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      left   
      right  

  public java.lang.String valueTypeOf(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 714
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.typeof:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object objectNew(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
         0: .line 718
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            astore 2 /* jsRealm */
        start local 2 // com.oracle.truffle.js.runtime.JSRealm jsRealm
         1: .line 719
            aload 2 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* jsRealm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.JSRealm jsRealm
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  context  Ljava/lang/Object;
            1    2     2  jsRealm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
         Name  Flags
      context  

  public boolean objectSet(java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
        start local 3 // java.lang.Object value
         0: .line 723
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 4 /* dynamicObject */
        start local 4 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 724
            aload 2 /* key */
            instanceof com.oracle.truffle.api.object.HiddenKey
            ifeq 4
         2: .line 725
            aload 4 /* dynamicObject */
            aload 2 /* key */
            aload 3 /* value */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 726
            goto 5
         4: .line 727
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 4 /* dynamicObject */
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toPropertyKey:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* value */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
         5: .line 729
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1         object  Ljava/lang/Object;
            0    6     2            key  Ljava/lang/Object;
            0    6     3          value  Ljava/lang/Object;
            1    6     4  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
        Name  Flags
      object  
      key     
      value   

  public boolean objectSetIndex(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // int index
        start local 3 // java.lang.Object value
         0: .line 733
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            iload 2 /* index */
            i2l
            aload 3 /* value */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Z
            pop
         1: .line 734
            iconst_1
            ireturn
        end local 3 // java.lang.Object value
        end local 2 // int index
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  object  Ljava/lang/Object;
            0    2     2   index  I
            0    2     3   value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      index   
      value   

  public boolean objectForceSet(java.lang.Object, java.lang.Object, java.lang.Object, int);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
        start local 3 // java.lang.Object value
        start local 4 // int attributes
         0: .line 738
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toPropertyKey:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* propertyKey */
        start local 5 // java.lang.Object propertyKey
         1: .line 739
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 5 /* propertyKey */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            pop
         2: .line 740
            iload 4 /* attributes */
            aload 3 /* value */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.propertyDescriptor:(ILjava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 6 /* descriptor */
        start local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
         3: .line 741
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 5 /* propertyKey */
            aload 6 /* descriptor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;)Z
            ireturn
        end local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        end local 5 // java.lang.Object propertyKey
        end local 4 // int attributes
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1       object  Ljava/lang/Object;
            0    4     2          key  Ljava/lang/Object;
            0    4     3        value  Ljava/lang/Object;
            0    4     4   attributes  I
            1    4     5  propertyKey  Ljava/lang/Object;
            3    4     6   descriptor  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    MethodParameters:
            Name  Flags
      object      
      key         
      value       
      attributes  

  public boolean objectSetPrivate(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object object
        start local 3 // java.lang.Object key
        start local 4 // java.lang.Object value
         0: .line 745
            aload 2 /* object */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifeq 7
         1: .line 746
            aload 2 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 5 /* dynamicObject */
        start local 5 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         2: .line 747
            aload 5 /* dynamicObject */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.PRIVATE_VALUES_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* privateValues */
        start local 6 // java.lang.Object privateValues
         3: .line 748
            aload 6 /* privateValues */
            ifnonnull 6
         4: .line 749
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.objectNew:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* privateValues */
         5: .line 750
            aload 5 /* dynamicObject */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.PRIVATE_VALUES_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 6 /* privateValues */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 752
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.Object
      StackMap stack:
            aload 6 /* privateValues */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 3 /* key */
            aload 4 /* value */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.Object privateValues
        end local 5 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         7: .line 754
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // java.lang.Object value
        end local 3 // java.lang.Object key
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1        context  Ljava/lang/Object;
            0    8     2         object  Ljava/lang/Object;
            0    8     3            key  Ljava/lang/Object;
            0    8     4          value  Ljava/lang/Object;
            2    7     5  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            3    7     6  privateValues  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      object   
      key      
      value    

  public java.lang.Object objectGetPrivate(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 758
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 759
            aconst_null
            areturn
         2: .line 761
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 3 /* dynamicObject */
        start local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         3: .line 762
            aload 3 /* dynamicObject */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.PRIVATE_VALUES_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 4 /* privateValues */
        start local 4 // com.oracle.truffle.api.object.DynamicObject privateValues
         4: .line 763
            aload 4 /* privateValues */
            ifnonnull 6
         5: .line 764
            aconst_null
            areturn
         6: .line 765
      StackMap locals: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 4 /* privateValues */
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ifeq 8
         7: .line 766
            aload 4 /* privateValues */
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         8: .line 768
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject privateValues
        end local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    9     1         object  Ljava/lang/Object;
            0    9     2            key  Ljava/lang/Object;
            3    9     3  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            4    9     4  privateValues  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
        Name  Flags
      object  
      key     

  public boolean objectDeletePrivate(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 773
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 774
            iconst_1
            ireturn
         2: .line 776
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 3 /* dynamicObject */
        start local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         3: .line 777
            aload 3 /* dynamicObject */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.PRIVATE_VALUES_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* privateValues */
        start local 4 // java.lang.Object privateValues
         4: .line 778
            aload 4 /* privateValues */
            ifnonnull 6
         5: .line 779
            iconst_1
            ireturn
         6: .line 781
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.Object
      StackMap stack:
            aload 4 /* privateValues */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 4 // java.lang.Object privateValues
        end local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    7     1         object  Ljava/lang/Object;
            0    7     2            key  Ljava/lang/Object;
            3    7     3  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            4    7     4  privateValues  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      key     

  public java.lang.Object objectGet(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 787
            aload 1 /* object */
            instanceof com.oracle.truffle.api.interop.TruffleObject
            ifeq 3
         1: .line 788
            aload 1 /* object */
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 3 /* truffleObject */
        start local 3 // com.oracle.truffle.api.interop.TruffleObject truffleObject
         2: .line 789
            goto 4
        end local 3 // com.oracle.truffle.api.interop.TruffleObject truffleObject
         3: .line 790
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toObject:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/TruffleObject;
            astore 3 /* truffleObject */
        start local 3 // com.oracle.truffle.api.interop.TruffleObject truffleObject
         4: .line 793
      StackMap locals: com.oracle.truffle.api.interop.TruffleObject
      StackMap stack:
            aload 2 /* key */
            instanceof com.oracle.truffle.api.object.HiddenKey
            ifeq 14
         5: .line 794
            aload 3 /* truffleObject */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* hiddenValue */
        start local 5 // java.lang.Object hiddenValue
         6: .line 795
            aload 5 /* hiddenValue */
            ifnonnull 12
         7: .line 796
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSPromise.isJSPromise:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 797
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         9: .line 798
            goto 15
        end local 4 // java.lang.Object value
        10: .line 799
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object com.oracle.truffle.api.interop.TruffleObject top java.lang.Object
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            astore 4 /* value */
        start local 4 // java.lang.Object value
        11: .line 801
            goto 15
        end local 4 // java.lang.Object value
        12: .line 802
      StackMap locals:
      StackMap stack:
            aload 5 /* hiddenValue */
            astore 4 /* value */
        end local 5 // java.lang.Object hiddenValue
        start local 4 // java.lang.Object value
        13: .line 804
            goto 15
        end local 4 // java.lang.Object value
        14: .line 805
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object com.oracle.truffle.api.interop.TruffleObject
      StackMap stack:
            aload 3 /* truffleObject */
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toPropertyKey:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
        15: .line 807
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 4 /* value */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueFlatten:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* flatten */
        start local 5 // java.lang.Object flatten
        16: .line 808
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
        17: .line 809
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            invokestatic com.oracle.truffle.js.runtime.util.BufferUtil.asBaseBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
            iconst_4
            invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
            pop
        18: .line 810
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            iconst_0
            aload 0 /* this */
            aload 5 /* flatten */
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueType:(Ljava/lang/Object;Z)I
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
        19: .line 811
            aload 5 /* flatten */
            areturn
        end local 5 // java.lang.Object flatten
        end local 4 // java.lang.Object value
        end local 3 // com.oracle.truffle.api.interop.TruffleObject truffleObject
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   20     1         object  Ljava/lang/Object;
            0   20     2            key  Ljava/lang/Object;
            2    3     3  truffleObject  Lcom/oracle/truffle/api/interop/TruffleObject;
            4   20     3  truffleObject  Lcom/oracle/truffle/api/interop/TruffleObject;
            9   10     4          value  Ljava/lang/Object;
           11   12     4          value  Ljava/lang/Object;
           13   14     4          value  Ljava/lang/Object;
           15   20     4          value  Ljava/lang/Object;
            6   13     5    hiddenValue  Ljava/lang/Object;
           16   20     5        flatten  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      key     

  public java.lang.Object objectGetIndex(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // int index
         0: .line 815
            aload 0 /* this */
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            iload 2 /* index */
            i2l
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;J)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueFlatten:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         1: .line 816
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         2: .line 817
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            invokestatic com.oracle.truffle.js.runtime.util.BufferUtil.asBaseBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
            iconst_4
            invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
            pop
         3: .line 818
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            iconst_0
            aload 0 /* this */
            aload 3 /* value */
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueType:(Ljava/lang/Object;Z)I
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
         4: .line 819
            aload 3 /* value */
            areturn
        end local 3 // java.lang.Object value
        end local 2 // int index
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1  object  Ljava/lang/Object;
            0    5     2   index  I
            1    5     3   value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      index   

  public java.lang.Object objectGetOwnPropertyDescriptor(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 823
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 3 /* dynamicObject */
        start local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 824
            aload 3 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* context */
        start local 4 // com.oracle.truffle.js.runtime.JSContext context
         2: .line 825
            aload 3 /* dynamicObject */
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 5 /* desc */
        start local 5 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
         3: .line 826
            aload 5 /* desc */
            aload 4 /* context */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.fromPropertyDescriptor:(Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 5 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 4 // com.oracle.truffle.js.runtime.JSContext context
        end local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1         object  Ljava/lang/Object;
            0    4     2            key  Ljava/lang/Object;
            1    4     3  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            2    4     4        context  Lcom/oracle/truffle/js/runtime/JSContext;
            3    4     5           desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    MethodParameters:
        Name  Flags
      object  
      key     

  public boolean objectDefineProperty(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, boolean, boolean, boolean, boolean, boolean, boolean);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZZZZZZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=14, args_size=12
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
        start local 3 // java.lang.Object value
        start local 4 // java.lang.Object get
        start local 5 // java.lang.Object set
        start local 6 // boolean hasEnumerable
        start local 7 // boolean enumerable
        start local 8 // boolean hasConfigurable
        start local 9 // boolean configurable
        start local 10 // boolean hasWritable
        start local 11 // boolean writable
         0: .line 834
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 12 /* dynamicObject */
        start local 12 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 835
            invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createEmpty:()Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 13 /* descriptor */
        start local 13 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
         2: .line 836
            aload 3 /* value */
            ifnull 4
         3: .line 837
            aload 13 /* descriptor */
            aload 3 /* value */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setValue:(Ljava/lang/Object;)V
         4: .line 839
      StackMap locals: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
            aload 4 /* get */
            ifnull 6
         5: .line 840
            aload 13 /* descriptor */
            aload 4 /* get */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setGet:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         6: .line 842
      StackMap locals:
      StackMap stack:
            aload 5 /* set */
            ifnull 8
         7: .line 843
            aload 13 /* descriptor */
            aload 5 /* set */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setSet:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         8: .line 845
      StackMap locals:
      StackMap stack:
            iload 6 /* hasEnumerable */
            ifeq 10
         9: .line 846
            aload 13 /* descriptor */
            iload 7 /* enumerable */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setEnumerable:(Z)V
        10: .line 848
      StackMap locals:
      StackMap stack:
            iload 8 /* hasConfigurable */
            ifeq 12
        11: .line 849
            aload 13 /* descriptor */
            iload 9 /* configurable */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setConfigurable:(Z)V
        12: .line 851
      StackMap locals:
      StackMap stack:
            iload 10 /* hasWritable */
            ifeq 14
        13: .line 852
            aload 13 /* descriptor */
            iload 11 /* writable */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setWritable:(Z)V
        14: .line 854
      StackMap locals:
      StackMap stack:
            aload 12 /* dynamicObject */
            aload 2 /* key */
            aload 13 /* descriptor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;)Z
            ireturn
        end local 13 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        end local 12 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 11 // boolean writable
        end local 10 // boolean hasWritable
        end local 9 // boolean configurable
        end local 8 // boolean hasConfigurable
        end local 7 // boolean enumerable
        end local 6 // boolean hasEnumerable
        end local 5 // java.lang.Object set
        end local 4 // java.lang.Object get
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   15     1           object  Ljava/lang/Object;
            0   15     2              key  Ljava/lang/Object;
            0   15     3            value  Ljava/lang/Object;
            0   15     4              get  Ljava/lang/Object;
            0   15     5              set  Ljava/lang/Object;
            0   15     6    hasEnumerable  Z
            0   15     7       enumerable  Z
            0   15     8  hasConfigurable  Z
            0   15     9     configurable  Z
            0   15    10      hasWritable  Z
            0   15    11         writable  Z
            1   15    12    dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            2   15    13       descriptor  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    MethodParameters:
                 Name  Flags
      object           
      key              
      value            
      get              
      set              
      hasEnumerable    
      enumerable       
      hasConfigurable  
      configurable     
      hasWritable      
      writable         

  public java.lang.Object valueFlatten(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 858
            aload 1 /* value */
            instanceof java.lang.String
            ifeq 2
         1: .line 859
            aload 1 /* value */
            areturn
         2: .line 860
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            instanceof com.oracle.truffle.js.runtime.objects.JSLazyString
            ifeq 4
         3: .line 861
            aload 1 /* value */
            checkcast com.oracle.truffle.js.runtime.objects.JSLazyString
            invokevirtual com.oracle.truffle.js.runtime.objects.JSLazyString.toString:()Ljava/lang/String;
            areturn
         4: .line 862
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isForeignObject:(Ljava/lang/Object;)Z
            ifeq 11
         5: .line 863
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 2 /* interop */
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
         6: .line 864
            aload 2 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
            ifeq 10
         7: .line 866
            aload 2 /* interop */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
         8: areturn
         9: .line 867
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            pop
        10: .line 870
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        11: .line 872
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   12     1    value  Ljava/lang/Object;
            6   11     2  interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
      Exception table:
        from    to  target  type
           7     8       9  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
       Name  Flags
      value  

  public boolean objectHas(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 877
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toPropertyKey:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
            0    1     2     key  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      key     

  public boolean objectHasOwnProperty(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 881
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
            0    1     2     key  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      key     

  public boolean objectHasRealNamedProperty(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 885
            aload 1 /* object */
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         1: .line 886
            aload 3 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 887
            aload 3 /* obj */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.getTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            astore 3 /* obj */
         3: .line 889
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 3 /* obj */
            aload 2 /* key */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.objectHasOwnProperty:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 3 // java.lang.Object obj
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1  object  Ljava/lang/Object;
            0    4     2     key  Ljava/lang/Object;
            1    4     3     obj  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      key     

  public boolean objectDelete(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 893
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toPropertyKey:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
            0    1     2     key  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      key     

  public boolean objectDelete(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // long index
         0: .line 897
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            lload 2 /* index */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.delete:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ireturn
        end local 2 // long index
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
            0    1     2   index  J
    MethodParameters:
        Name  Flags
      object  
      index   

  public boolean objectSetAccessor(java.lang.Object, java.lang.Object, long, long, java.lang.Object, int);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;JJLjava/lang/Object;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=17, args_size=7
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object name
        start local 3 // long getterPtr
        start local 5 // long setterPtr
        start local 7 // java.lang.Object data
        start local 8 // int attributes
         0: .line 902
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 9 /* dynamicObject */
        start local 9 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 903
            aload 9 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 10 /* context */
        start local 10 // com.oracle.truffle.js.runtime.JSContext context
         2: .line 904
            iload 8 /* attributes */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.propertyAttributes:(I)I
            istore 11 /* flags */
        start local 11 // int flags
         3: .line 905
            new com.oracle.truffle.trufflenode.info.Accessor
            dup
            aload 0 /* this */
            aload 2 /* name */
            lload 3 /* getterPtr */
            lload 5 /* setterPtr */
            aload 7 /* data */
            aconst_null
            iload 11 /* flags */
            invokespecial com.oracle.truffle.trufflenode.info.Accessor.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Ljava/lang/Object;JJLjava/lang/Object;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;I)V
            astore 12 /* accessor */
        start local 12 // com.oracle.truffle.trufflenode.info.Accessor accessor
         4: .line 906
            aload 12 /* accessor */
            aload 10 /* context */
            invokevirtual com.oracle.truffle.trufflenode.info.Accessor.getFunctions:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/util/Pair;
            astore 13 /* accessorFunctions */
        start local 13 // com.oracle.truffle.js.runtime.util.Pair accessorFunctions
         5: .line 907
            aload 10 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 14 /* realm */
        start local 14 // com.oracle.truffle.js.runtime.JSRealm realm
         6: .line 908
            aload 14 /* realm */
            aload 13 /* accessorFunctions */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData
            aload 9 /* dynamicObject */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromFunctionData:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 15 /* getter */
        start local 15 // com.oracle.truffle.api.object.DynamicObject getter
         7: .line 909
            aload 14 /* realm */
            aload 13 /* accessorFunctions */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getSecond:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData
            aload 9 /* dynamicObject */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromFunctionData:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 16 /* setter */
        start local 16 // com.oracle.truffle.api.object.DynamicObject setter
         8: .line 910
            aload 10 /* context */
            aload 9 /* dynamicObject */
            aload 12 /* accessor */
            invokevirtual com.oracle.truffle.trufflenode.info.Accessor.getName:()Ljava/lang/String;
            aload 15 /* getter */
            aload 16 /* setter */
            iload 11 /* flags */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putAccessorProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;I)V
         9: .line 911
            iconst_1
            ireturn
        end local 16 // com.oracle.truffle.api.object.DynamicObject setter
        end local 15 // com.oracle.truffle.api.object.DynamicObject getter
        end local 14 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 13 // com.oracle.truffle.js.runtime.util.Pair accessorFunctions
        end local 12 // com.oracle.truffle.trufflenode.info.Accessor accessor
        end local 11 // int flags
        end local 10 // com.oracle.truffle.js.runtime.JSContext context
        end local 9 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 8 // int attributes
        end local 7 // java.lang.Object data
        end local 5 // long setterPtr
        end local 3 // long getterPtr
        end local 2 // java.lang.Object name
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   10     1             object  Ljava/lang/Object;
            0   10     2               name  Ljava/lang/Object;
            0   10     3          getterPtr  J
            0   10     5          setterPtr  J
            0   10     7               data  Ljava/lang/Object;
            0   10     8         attributes  I
            1   10     9      dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            2   10    10            context  Lcom/oracle/truffle/js/runtime/JSContext;
            3   10    11              flags  I
            4   10    12           accessor  Lcom/oracle/truffle/trufflenode/info/Accessor;
            5   10    13  accessorFunctions  Lcom/oracle/truffle/js/runtime/util/Pair<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;>;
            6   10    14              realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            7   10    15             getter  Lcom/oracle/truffle/api/object/DynamicObject;
            8   10    16             setter  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      object      
      name        
      getterPtr   
      setterPtr   
      data        
      attributes  

  public java.lang.Object objectClone(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 918
            aload 1 /* object */
            instanceof com.oracle.truffle.js.runtime.objects.JSCopyableObject
            ifeq 2
         1: .line 919
            aload 1 /* object */
            checkcast com.oracle.truffle.js.runtime.objects.JSCopyableObject
            invokeinterface com.oracle.truffle.js.runtime.objects.JSCopyableObject.copy:()Lcom/oracle/truffle/js/runtime/objects/JSObject;
            areturn
         2: .line 921
      StackMap locals:
      StackMap stack:
            ldc "Cannot copy %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.safeToString:(Ljava/lang/Object;)Ljava/lang/String;
            aastore
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorFormat:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean objectSetPrototype(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object prototype
         0: .line 926
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 2 /* prototype */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.setPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 2 // java.lang.Object prototype
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1     object  Ljava/lang/Object;
            0    1     2  prototype  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      object     
      prototype  

  public java.lang.Object objectGetPrototype(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 930
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public java.lang.String objectGetConstructorName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 934
            ldc "Object"
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 935
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 7
         2: .line 936
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 3 /* dynamicObject */
        start local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         3: .line 937
            aload 3 /* dynamicObject */
            ldc "constructor"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* constructor */
        start local 4 // java.lang.Object constructor
         4: .line 938
            aload 4 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 15
         5: .line 939
            aload 4 /* constructor */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getName:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            astore 2 /* name */
        end local 4 // java.lang.Object constructor
        end local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         6: .line 941
            goto 15
         7: .line 942
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* object */
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
            astore 3 /* interop */
        start local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
         8: .line 943
            aload 3 /* interop */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMetaObject:(Ljava/lang/Object;)Z
            ifeq 15
         9: .line 945
            aload 3 /* interop */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMetaObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* metaObject */
        start local 4 // java.lang.Object metaObject
        10: .line 946
            aload 4 /* metaObject */
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 4 /* metaObject */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMetaSimpleName:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* interopName */
        start local 5 // java.lang.Object interopName
        11: .line 947
            aload 5 /* interopName */
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 5 /* interopName */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* name */
        end local 5 // java.lang.Object interopName
        end local 4 // java.lang.Object metaObject
        12: .line 948
            goto 15
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.String com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
        13: astore 4 /* ex */
        start local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException ex
        14: .line 949
            aload 4 /* ex */
            invokestatic com.oracle.truffle.js.runtime.Errors.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException ex
        end local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
        15: .line 953
      StackMap locals:
      StackMap stack:
            aload 2 /* name */
            areturn
        end local 2 // java.lang.String name
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   16     1         object  Ljava/lang/Object;
            1   16     2           name  Ljava/lang/String;
            3    6     3  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            4    6     4    constructor  Ljava/lang/Object;
            8   15     3        interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
           10   12     4     metaObject  Ljava/lang/Object;
           11   12     5    interopName  Ljava/lang/Object;
           14   15     4             ex  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           9    12      13  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
        Name  Flags
      object  

  private static java.lang.String foreignStringToString(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object foreignString
         0: .line 957
            aload 0 /* foreignString */
            instanceof java.lang.String
            ifeq 2
         1: .line 958
            aload 0 /* foreignString */
            checkcast java.lang.String
            areturn
         2: .line 960
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 0 /* foreignString */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            aload 0 /* foreignString */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object foreignString
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0  foreignString  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
               Name  Flags
      foreignString  

  public java.lang.Object objectGetOwnPropertyNames(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 966
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 6
         1: .line 967
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 3 /* dynamicObject */
        start local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         2: .line 968
            aload 3 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.enumerableOwnNames:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
            astore 4 /* names */
        start local 4 // java.util.List names
         3: .line 969
            aload 4 /* names */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            astore 2 /* namesArray */
        start local 2 // java.lang.Object[] namesArray
         4: .line 970
            aload 0 /* this */
            aload 2 /* namesArray */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.convertArrayIndicesToNumbers:([Ljava/lang/Object;)V
        end local 4 // java.util.List names
        end local 3 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         5: .line 971
            goto 31
        end local 2 // java.lang.Object[] namesArray
         6: .line 972
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 7
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isForeignObject:(Ljava/lang/Object;)Z
            ifne 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 974
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* names */
        start local 3 // java.util.List names
         8: .line 975
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 4 /* library */
        start local 4 // com.oracle.truffle.api.interop.InteropLibrary library
         9: .line 976
            aload 4 /* library */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
            ifeq 19
        10: .line 977
            aload 4 /* library */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* members */
        start local 5 // java.lang.Object members
        11: .line 978
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 5 /* members */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 6 /* membersLibrary */
        start local 6 // com.oracle.truffle.api.interop.InteropLibrary membersLibrary
        12: .line 979
            aload 6 /* membersLibrary */
            aload 5 /* members */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
            lstore 7 /* size */
        start local 7 // long size
        13: .line 980
            lconst_0
            lstore 9 /* i */
        start local 9 // long i
        14: goto 18
        15: .line 981
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object top java.util.List com.oracle.truffle.api.interop.InteropLibrary java.lang.Object com.oracle.truffle.api.interop.InteropLibrary long long
      StackMap stack:
            aload 6 /* membersLibrary */
            aload 5 /* members */
            lload 9 /* i */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
            astore 11 /* key */
        start local 11 // java.lang.Object key
        16: .line 982
            aload 3 /* names */
            aload 11 /* key */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.foreignStringToString:(Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.Object key
        17: .line 980
            lload 9 /* i */
            lconst_1
            ladd
            lstore 9 /* i */
      StackMap locals:
      StackMap stack:
        18: lload 9 /* i */
            lload 7 /* size */
            lcmp
            iflt 15
        end local 9 // long i
        end local 7 // long size
        end local 6 // com.oracle.truffle.api.interop.InteropLibrary membersLibrary
        end local 5 // java.lang.Object members
        19: .line 985
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object top java.util.List com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack:
            aload 4 /* library */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
            ifeq 27
        20: .line 986
            aload 4 /* library */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
            lstore 5 /* size */
        start local 5 // long size
        21: .line 987
            lconst_0
            lstore 7 /* i */
        start local 7 // long i
        22: goto 26
        23: .line 988
      StackMap locals: long long
      StackMap stack:
            aload 4 /* library */
            aload 1 /* object */
            lload 7 /* i */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isArrayElementExisting:(Ljava/lang/Object;J)Z
            ifeq 25
        24: .line 989
            aload 3 /* names */
            lload 7 /* i */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.longToIntOrDouble:(J)Ljava/lang/Number;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 987
      StackMap locals:
      StackMap stack:
            lload 7 /* i */
            lconst_1
            ladd
            lstore 7 /* i */
      StackMap locals:
      StackMap stack:
        26: lload 7 /* i */
            lload 5 /* size */
            lcmp
            iflt 23
        end local 7 // long i
        end local 5 // long size
        27: .line 993
      StackMap locals:
      StackMap stack:
            aload 3 /* names */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            astore 2 /* namesArray */
        end local 4 // com.oracle.truffle.api.interop.InteropLibrary library
        end local 3 // java.util.List names
        start local 2 // java.lang.Object[] namesArray
        28: .line 994
            goto 31
        end local 2 // java.lang.Object[] namesArray
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object
      StackMap stack: com.oracle.truffle.api.interop.InteropException
        29: pop
        30: .line 995
            iconst_0
            anewarray java.lang.Object
            astore 2 /* namesArray */
        start local 2 // java.lang.Object[] namesArray
        31: .line 998
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* namesArray */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createConstantObjectArray:(Lcom/oracle/truffle/js/runtime/JSContext;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // java.lang.Object[] namesArray
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   32     1          object  Ljava/lang/Object;
            4    6     2      namesArray  [Ljava/lang/Object;
           28   29     2      namesArray  [Ljava/lang/Object;
           31   32     2      namesArray  [Ljava/lang/Object;
            2    5     3   dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            3    5     4           names  Ljava/util/List<Ljava/lang/String;>;
            8   28     3           names  Ljava/util/List<Ljava/lang/Object;>;
            9   28     4         library  Lcom/oracle/truffle/api/interop/InteropLibrary;
           11   19     5         members  Ljava/lang/Object;
           12   19     6  membersLibrary  Lcom/oracle/truffle/api/interop/InteropLibrary;
           13   19     7            size  J
           14   19     9               i  J
           16   17    11             key  Ljava/lang/Object;
           21   27     5            size  J
           22   27     7               i  J
      Exception table:
        from    to  target  type
           7    28      29  Class com.oracle.truffle.api.interop.UnsupportedMessageException
           7    28      29  Class com.oracle.truffle.api.interop.InvalidArrayIndexException
    MethodParameters:
        Name  Flags
      object  

  public java.lang.Object objectGetPropertyNames(java.lang.Object, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
    descriptor: (Ljava/lang/Object;ZZZZZZZZ)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=21, args_size=10
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // boolean ownOnly
        start local 3 // boolean enumerableOnly
        start local 4 // boolean configurableOnly
        start local 5 // boolean writableOnly
        start local 6 // boolean skipIndices
        start local 7 // boolean skipSymbols
        start local 8 // boolean skipStrings
        start local 9 // boolean keepNumbers
         0: .line 1006
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 32
         1: .line 1007
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 11 /* keys */
        start local 11 // java.util.Set keys
         2: .line 1008
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 12 /* dynamicObject */
        start local 12 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         3: .line 1010
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int int int int int int int top java.util.Set com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 12 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            astore 13 /* jsclass */
        start local 13 // com.oracle.truffle.js.runtime.builtins.JSClass jsclass
         4: .line 1011
            aload 13 /* jsclass */
            aload 12 /* dynamicObject */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.ownPropertyKeys:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
            astore 14 /* ownKeys */
        start local 14 // java.lang.Iterable ownKeys
         5: .line 1012
            aload 14 /* ownKeys */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 16
            goto 27
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int int int int int int int top java.util.Set com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.builtins.JSClass java.lang.Iterable top java.util.Iterator
      StackMap stack:
         6: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 15 /* key */
        start local 15 // java.lang.Object key
         7: .line 1013
            aload 15 /* key */
            astore 17 /* keyToStore */
        start local 17 // java.lang.Object keyToStore
         8: .line 1014
            aload 15 /* key */
            instanceof java.lang.String
            ifeq 18
         9: .line 1015
            iload 8 /* skipStrings */
            ifeq 11
        10: .line 1016
            goto 27
        11: .line 1018
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int int int int int int int top java.util.Set com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.builtins.JSClass java.lang.Iterable java.lang.Object java.util.Iterator java.lang.Object
      StackMap stack:
            aload 15 /* key */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/String;)Z
            istore 18 /* index */
        start local 18 // boolean index
        12: .line 1019
            iload 18 /* index */
            ifeq 21
        13: .line 1020
            iload 6 /* skipIndices */
            ifeq 15
        14: .line 1021
            goto 27
        15: .line 1023
      StackMap locals: int
      StackMap stack:
            iload 9 /* keepNumbers */
            ifeq 21
        16: .line 1024
            aload 15 /* key */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.stringToNumber:(Ljava/lang/String;)Ljava/lang/Number;
            astore 17 /* keyToStore */
        end local 18 // boolean index
        17: .line 1027
            goto 21
        18: .line 1028
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 19
            aload 15 /* key */
            instanceof com.oracle.truffle.js.runtime.Symbol
            ifne 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 1029
      StackMap locals:
      StackMap stack:
            iload 7 /* skipSymbols */
            ifeq 21
        20: .line 1030
            goto 27
        21: .line 1033
      StackMap locals:
      StackMap stack:
            aload 13 /* jsclass */
            aload 12 /* dynamicObject */
            aload 15 /* key */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 18 /* desc */
        start local 18 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        22: .line 1034
            iload 3 /* enumerableOnly */
            ifeq 23
            aload 18 /* desc */
            ifnull 27
            aload 18 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getEnumerable:()Z
            ifeq 27
      StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
        23: iload 4 /* configurableOnly */
            ifeq 24
            aload 18 /* desc */
            ifnull 27
            aload 18 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getConfigurable:()Z
            ifeq 27
        24: .line 1035
      StackMap locals:
      StackMap stack:
            iload 5 /* writableOnly */
            ifeq 26
            aload 18 /* desc */
            ifnull 27
            aload 18 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
            ifne 26
        25: .line 1036
            goto 27
        26: .line 1038
      StackMap locals:
      StackMap stack:
            aload 11 /* keys */
            aload 17 /* keyToStore */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 18 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 17 // java.lang.Object keyToStore
        end local 15 // java.lang.Object key
        27: .line 1012
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int int int int int int int top java.util.Set com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.builtins.JSClass java.lang.Iterable top java.util.Iterator
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        28: .line 1040
            aload 12 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 12 /* dynamicObject */
        end local 14 // java.lang.Iterable ownKeys
        end local 13 // com.oracle.truffle.js.runtime.builtins.JSClass jsclass
        29: .line 1041
            iload 2 /* ownOnly */
            ifne 30
            aload 12 /* dynamicObject */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 3
        30: .line 1042
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int int int int int int int top java.util.Set com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 11 /* keys */
            invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
            astore 10 /* propertyNames */
        end local 12 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 11 // java.util.Set keys
        start local 10 // java.lang.Object[] propertyNames
        31: .line 1043
            goto 64
        end local 10 // java.lang.Object[] propertyNames
        32: .line 1044
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int int int int int int int
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 33
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isForeignObject:(Ljava/lang/Object;)Z
            ifne 33
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 1046
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* keys */
        start local 11 // java.util.List keys
        34: .line 1047
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 12 /* library */
        start local 12 // com.oracle.truffle.api.interop.InteropLibrary library
        35: .line 1048
            iload 8 /* skipStrings */
            ifne 47
            aload 12 /* library */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
            ifeq 47
        36: .line 1049
            aload 12 /* library */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* members */
        start local 13 // java.lang.Object members
        37: .line 1050
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 13 /* members */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 14 /* membersLibrary */
        start local 14 // com.oracle.truffle.api.interop.InteropLibrary membersLibrary
        38: .line 1051
            aload 14 /* membersLibrary */
            aload 13 /* members */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
            lstore 15 /* size */
        start local 15 // long size
        39: .line 1052
            lconst_0
            lstore 17 /* i */
        start local 17 // long i
        40: goto 46
        41: .line 1053
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int int int int int int int top java.util.List com.oracle.truffle.api.interop.InteropLibrary java.lang.Object com.oracle.truffle.api.interop.InteropLibrary long long
      StackMap stack:
            aload 14 /* membersLibrary */
            aload 13 /* members */
            lload 17 /* i */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
            astore 19 /* key */
        start local 19 // java.lang.Object key
        42: .line 1054
            aload 19 /* key */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.foreignStringToString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 20 /* stringKey */
        start local 20 // java.lang.String stringKey
        43: .line 1055
            iload 5 /* writableOnly */
            ifeq 44
            aload 12 /* library */
            aload 1 /* object */
            aload 20 /* stringKey */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberWritable:(Ljava/lang/Object;Ljava/lang/String;)Z
            ifeq 45
        44: .line 1056
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            aload 11 /* keys */
            aload 20 /* stringKey */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 20 // java.lang.String stringKey
        end local 19 // java.lang.Object key
        45: .line 1052
      StackMap locals:
      StackMap stack:
            lload 17 /* i */
            lconst_1
            ladd
            lstore 17 /* i */
      StackMap locals:
      StackMap stack:
        46: lload 17 /* i */
            lload 15 /* size */
            lcmp
            iflt 41
        end local 17 // long i
        end local 15 // long size
        end local 14 // com.oracle.truffle.api.interop.InteropLibrary membersLibrary
        end local 13 // java.lang.Object members
        47: .line 1060
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int int int int int int int top java.util.List com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack:
            iload 6 /* skipIndices */
            ifne 60
            aload 12 /* library */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
            ifeq 60
        48: .line 1061
            aload 12 /* library */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
            lstore 13 /* size */
        start local 13 // long size
        49: .line 1062
            lconst_0
            lstore 15 /* i */
        start local 15 // long i
        50: goto 59
        51: .line 1063
      StackMap locals: long long
      StackMap stack:
            aload 12 /* library */
            aload 1 /* object */
            lload 15 /* i */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isArrayElementExisting:(Ljava/lang/Object;J)Z
            ifeq 58
        52: .line 1065
            iload 9 /* keepNumbers */
            ifeq 55
        53: .line 1066
            lload 15 /* i */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.longToIntOrDouble:(J)Ljava/lang/Number;
            astore 17 /* key */
        start local 17 // java.lang.Object key
        54: .line 1067
            goto 56
        end local 17 // java.lang.Object key
        55: .line 1068
      StackMap locals:
      StackMap stack:
            lload 15 /* i */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            astore 17 /* key */
        start local 17 // java.lang.Object key
        56: .line 1070
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 5 /* writableOnly */
            ifeq 57
            aload 12 /* library */
            aload 1 /* object */
            lload 15 /* i */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isArrayElementWritable:(Ljava/lang/Object;J)Z
            ifeq 58
        57: .line 1071
      StackMap locals:
      StackMap stack:
            aload 11 /* keys */
            aload 17 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 17 // java.lang.Object key
        58: .line 1062
      StackMap locals:
      StackMap stack:
            lload 15 /* i */
            lconst_1
            ladd
            lstore 15 /* i */
      StackMap locals:
      StackMap stack:
        59: lload 15 /* i */
            lload 13 /* size */
            lcmp
            iflt 51
        end local 15 // long i
        end local 13 // long size
        60: .line 1076
      StackMap locals:
      StackMap stack:
            aload 11 /* keys */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            astore 10 /* propertyNames */
        end local 12 // com.oracle.truffle.api.interop.InteropLibrary library
        end local 11 // java.util.List keys
        start local 10 // java.lang.Object[] propertyNames
        61: .line 1077
            goto 64
        end local 10 // java.lang.Object[] propertyNames
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int int int int int int int
      StackMap stack: com.oracle.truffle.api.interop.InteropException
        62: pop
        63: .line 1078
            iconst_0
            anewarray java.lang.Object
            astore 10 /* propertyNames */
        start local 10 // java.lang.Object[] propertyNames
        64: .line 1081
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 10 /* propertyNames */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createConstantObjectArray:(Lcom/oracle/truffle/js/runtime/JSContext;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 10 // java.lang.Object[] propertyNames
        end local 9 // boolean keepNumbers
        end local 8 // boolean skipStrings
        end local 7 // boolean skipSymbols
        end local 6 // boolean skipIndices
        end local 5 // boolean writableOnly
        end local 4 // boolean configurableOnly
        end local 3 // boolean enumerableOnly
        end local 2 // boolean ownOnly
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   65     0              this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   65     1            object  Ljava/lang/Object;
            0   65     2           ownOnly  Z
            0   65     3    enumerableOnly  Z
            0   65     4  configurableOnly  Z
            0   65     5      writableOnly  Z
            0   65     6       skipIndices  Z
            0   65     7       skipSymbols  Z
            0   65     8       skipStrings  Z
            0   65     9       keepNumbers  Z
           31   32    10     propertyNames  [Ljava/lang/Object;
           61   62    10     propertyNames  [Ljava/lang/Object;
           64   65    10     propertyNames  [Ljava/lang/Object;
            2   31    11              keys  Ljava/util/Set<Ljava/lang/Object;>;
            3   31    12     dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            4   29    13           jsclass  Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            5   29    14           ownKeys  Ljava/lang/Iterable<Ljava/lang/Object;>;
            7   27    15               key  Ljava/lang/Object;
            8   27    17        keyToStore  Ljava/lang/Object;
           12   17    18             index  Z
           22   27    18              desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
           34   61    11              keys  Ljava/util/List<Ljava/lang/Object;>;
           35   61    12           library  Lcom/oracle/truffle/api/interop/InteropLibrary;
           37   47    13           members  Ljava/lang/Object;
           38   47    14    membersLibrary  Lcom/oracle/truffle/api/interop/InteropLibrary;
           39   47    15              size  J
           40   47    17                 i  J
           42   45    19               key  Ljava/lang/Object;
           43   45    20         stringKey  Ljava/lang/String;
           49   60    13              size  J
           50   60    15                 i  J
           54   55    17               key  Ljava/lang/Object;
           56   58    17               key  Ljava/lang/Object;
      Exception table:
        from    to  target  type
          33    61      62  Class com.oracle.truffle.api.interop.UnsupportedMessageException
          33    61      62  Class com.oracle.truffle.api.interop.InvalidArrayIndexException
    MethodParameters:
                  Name  Flags
      object            
      ownOnly           
      enumerableOnly    
      configurableOnly  
      writableOnly      
      skipIndices       
      skipSymbols       
      skipStrings       
      keepNumbers       

  private void convertArrayIndicesToNumbers(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object[] namesArray
         0: .line 1085
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 6
         2: .line 1086
      StackMap locals: int
      StackMap stack:
            aload 1 /* namesArray */
            iload 2 /* i */
            aaload
            astore 3 /* name */
        start local 3 // java.lang.Object name
         3: .line 1087
            aload 3 /* name */
            instanceof java.lang.String
            ifeq 5
            aload 3 /* name */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 1088
            aload 1 /* namesArray */
            iload 2 /* i */
            aload 3 /* name */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.stringToNumber:(Ljava/lang/String;)Ljava/lang/Number;
            aastore
        end local 3 // java.lang.Object name
         5: .line 1085
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 1 /* namesArray */
            arraylength
            if_icmplt 2
        end local 2 // int i
         7: .line 1091
            return
        end local 1 // java.lang.Object[] namesArray
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1  namesArray  [Ljava/lang/Object;
            1    7     2           i  I
            3    5     3        name  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      namesArray  

  public java.lang.Object objectGetRealNamedProperty(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 1094
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toPropertyKey:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* propertyKey */
        start local 3 // java.lang.Object propertyKey
         1: .line 1095
            aload 1 /* object */
            astore 4 /* current */
        start local 4 // java.lang.Object current
         2: .line 1096
            goto 10
         3: .line 1097
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 4 /* current */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 5 /* currentDO */
        start local 5 // com.oracle.truffle.api.object.DynamicObject currentDO
         4: .line 1098
            aload 5 /* currentDO */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 1099
            aload 5 /* currentDO */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.getTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            astore 4 /* current */
         6: .line 1100
            goto 10
         7: .line 1101
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 5 /* currentDO */
            aload 3 /* propertyKey */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ifeq 9
         8: .line 1102
            aload 5 /* currentDO */
            aload 3 /* propertyKey */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         9: .line 1104
      StackMap locals:
      StackMap stack:
            aload 5 /* currentDO */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* current */
        end local 5 // com.oracle.truffle.api.object.DynamicObject currentDO
        10: .line 1096
      StackMap locals:
      StackMap stack:
            aload 4 /* current */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifne 3
        11: .line 1107
            aconst_null
            areturn
        end local 4 // java.lang.Object current
        end local 3 // java.lang.Object propertyKey
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   12     1       object  Ljava/lang/Object;
            0   12     2          key  Ljava/lang/Object;
            1   12     3  propertyKey  Ljava/lang/Object;
            2   12     4      current  Ljava/lang/Object;
            4   10     5    currentDO  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
        Name  Flags
      object  
      key     

  public int objectGetRealNamedPropertyAttributes(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object key
         0: .line 1111
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toPropertyKey:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* propertyKey */
        start local 3 // java.lang.Object propertyKey
         1: .line 1112
            aload 1 /* object */
            astore 4 /* current */
        start local 4 // java.lang.Object current
         2: .line 1113
            goto 18
         3: .line 1114
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 4 /* current */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 5 /* currentDO */
        start local 5 // com.oracle.truffle.api.object.DynamicObject currentDO
         4: .line 1115
            aload 5 /* currentDO */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 1116
            aload 5 /* currentDO */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.getTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            astore 4 /* current */
         6: .line 1117
            goto 18
         7: .line 1118
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 5 /* currentDO */
            aload 3 /* propertyKey */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 6 /* descriptor */
        start local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
         8: .line 1119
            aload 6 /* descriptor */
            ifnull 17
         9: .line 1120
            iconst_0
            istore 7 /* attributes */
        start local 7 // int attributes
        10: .line 1121
            aload 6 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isAccessorDescriptor:()Z
            ifne 12
            aload 6 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
            ifne 12
        11: .line 1122
            iload 7 /* attributes */
            iconst_1
            ior
            istore 7 /* attributes */
        12: .line 1124
      StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor int
      StackMap stack:
            aload 6 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getEnumerable:()Z
            ifne 14
        13: .line 1125
            iload 7 /* attributes */
            iconst_2
            ior
            istore 7 /* attributes */
        14: .line 1127
      StackMap locals:
      StackMap stack:
            aload 6 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getConfigurable:()Z
            ifne 16
        15: .line 1128
            iload 7 /* attributes */
            iconst_4
            ior
            istore 7 /* attributes */
        16: .line 1130
      StackMap locals:
      StackMap stack:
            iload 7 /* attributes */
            ireturn
        end local 7 // int attributes
        17: .line 1132
      StackMap locals:
      StackMap stack:
            aload 5 /* currentDO */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* current */
        end local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        end local 5 // com.oracle.truffle.api.object.DynamicObject currentDO
        18: .line 1113
      StackMap locals:
      StackMap stack:
            aload 4 /* current */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifne 3
        19: .line 1135
            iconst_m1
            ireturn
        end local 4 // java.lang.Object current
        end local 3 // java.lang.Object propertyKey
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   20     1       object  Ljava/lang/Object;
            0   20     2          key  Ljava/lang/Object;
            1   20     3  propertyKey  Ljava/lang/Object;
            2   20     4      current  Ljava/lang/Object;
            4   18     5    currentDO  Lcom/oracle/truffle/api/object/DynamicObject;
            8   18     6   descriptor  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
           10   17     7   attributes  I
    MethodParameters:
        Name  Flags
      object  
      key     

  public java.lang.Object objectCreationContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 1139
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 2 /* dynamicObject */
        start local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 1140
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 1141
            aload 2 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
            areturn
         3: .line 1143
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 0 /* this */
            aload 2 /* dynamicObject */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.objectCreationContextFromConstructor:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            areturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1         object  Ljava/lang/Object;
            1    4     2  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
        Name  Flags
      object  

  private java.lang.Object objectCreationContextFromConstructor(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         0: .line 1150
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
            ifne 6
         1: .line 1151
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* prototype */
        start local 2 // com.oracle.truffle.api.object.DynamicObject prototype
         2: .line 1152
            aload 2 /* prototype */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 8
         3: .line 1153
            aload 2 /* prototype */
            ldc "constructor"
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.getDataProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* constructor */
        start local 3 // java.lang.Object constructor
         4: .line 1154
            aload 3 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 8
         5: .line 1155
            aload 3 /* constructor */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
            areturn
        end local 3 // java.lang.Object constructor
        end local 2 // com.oracle.truffle.api.object.DynamicObject prototype
         6: .line 1158
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isCallableProxy:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 8
         7: .line 1160
            aload 0 /* this */
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.getTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.objectCreationContext:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         8: .line 1162
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot get creation context for this object"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    9     1       object  Lcom/oracle/truffle/api/object/DynamicObject;
            2    6     2    prototype  Lcom/oracle/truffle/api/object/DynamicObject;
            4    6     3  constructor  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public void objectSetIntegrityLevel(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // boolean freeze
         0: .line 1166
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1167
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            iload 2 /* freeze */
            iconst_1
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.setIntegrityLevel:(Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Z
            pop
         2: .line 1169
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean freeze
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  object  Ljava/lang/Object;
            0    3     2  freeze  Z
    MethodParameters:
        Name  Flags
      object  
      freeze  

  public java.lang.Object arrayNew(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // int length
         0: .line 1172
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            iload 2 /* length */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createConstantEmptyArray:(Lcom/oracle/truffle/js/runtime/JSContext;I)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // int length
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2   length  I
    MethodParameters:
         Name  Flags
      context  
      length   

  public long arrayLength(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 1176
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.arrayGetLength:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lreturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public java.lang.Object arrayBufferNew(java.lang.Object, java.lang.Object, long);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object buffer
        start local 3 // long pointer
         0: .line 1180
            aload 2 /* buffer */
            checkcast java.nio.ByteBuffer
            astore 5 /* byteBuffer */
        start local 5 // java.nio.ByteBuffer byteBuffer
         1: .line 1181
            lload 3 /* pointer */
            lconst_0
            lcmp
            ifeq 3
         2: .line 1182
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.deallocator:Lcom/oracle/truffle/trufflenode/Deallocator;
            aload 5 /* byteBuffer */
            lload 3 /* pointer */
            invokevirtual com.oracle.truffle.trufflenode.Deallocator.register:(Ljava/nio/ByteBuffer;J)V
         3: .line 1184
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 5 /* byteBuffer */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBuffer.createDirectArrayBuffer:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/nio/ByteBuffer;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 6 /* arrayBuffer */
        start local 6 // com.oracle.truffle.api.object.DynamicObject arrayBuffer
         4: .line 1185
            aload 6 /* arrayBuffer */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.EXTERNALIZED_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            lload 3 /* pointer */
            lconst_0
            lcmp
            ifne 5
            iconst_1
            goto 6
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object long java.nio.ByteBuffer com.oracle.truffle.api.object.DynamicObject
      StackMap stack: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.HiddenKey
         5: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object long java.nio.ByteBuffer com.oracle.truffle.api.object.DynamicObject
      StackMap stack: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.HiddenKey int
         6: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 1186
            aload 6 /* arrayBuffer */
            areturn
        end local 6 // com.oracle.truffle.api.object.DynamicObject arrayBuffer
        end local 5 // java.nio.ByteBuffer byteBuffer
        end local 3 // long pointer
        end local 2 // java.lang.Object buffer
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1      context  Ljava/lang/Object;
            0    8     2       buffer  Ljava/lang/Object;
            0    8     3      pointer  J
            1    8     5   byteBuffer  Ljava/nio/ByteBuffer;
            4    8     6  arrayBuffer  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      context  
      buffer   
      pointer  

  public java.lang.Object arrayBufferNew(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // int byteLength
         0: .line 1190
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            iload 2 /* byteLength */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBuffer.createDirectArrayBuffer:(Lcom/oracle/truffle/js/runtime/JSContext;I)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // int byteLength
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1     context  Ljava/lang/Object;
            0    1     2  byteLength  I
    MethodParameters:
            Name  Flags
      context     
      byteLength  

  public java.lang.Object arrayBufferGetContents(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
         0: .line 1194
            aload 1 /* arrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBuffer.getDirectByteBuffer:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/nio/ByteBuffer;
            areturn
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      arrayBuffer  

  public java.lang.Object arrayBufferViewBuffer(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBufferView
         0: .line 1198
            aload 1 /* arrayBufferView */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 2 /* dynamicObject */
        start local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 1199
            aload 1 /* arrayBufferView */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDataView.isJSDataView:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 1200
            aload 2 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDataView.getArrayBuffer:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
         3: .line 1202
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 2 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.getArrayBuffer:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 1 // java.lang.Object arrayBufferView
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1  arrayBufferView  Ljava/lang/Object;
            1    4     2    dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                 Name  Flags
      arrayBufferView  

  public int arrayBufferViewByteLength(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBufferView
         0: .line 1207
            aload 1 /* arrayBufferView */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 2 /* dynamicObject */
        start local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 1208
            aload 2 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* dynamicObject */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.arrayBufferViewByteLength:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)I
            ireturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 1 // java.lang.Object arrayBufferView
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  arrayBufferView  Ljava/lang/Object;
            1    2     2    dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                 Name  Flags
      arrayBufferView  

  public boolean arrayBufferIsExternal(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
         0: .line 1212
            aload 1 /* arrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.EXTERNALIZED_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  arrayBuffer  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      arrayBuffer  

  public void arrayBufferExternalize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
         0: .line 1216
            aload 1 /* arrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 2 /* dynamicObject */
        start local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 1217
            aload 2 /* dynamicObject */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.EXTERNALIZED_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 1218
            return
        end local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1    arrayBuffer  Ljava/lang/Object;
            1    3     2  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
             Name  Flags
      arrayBuffer  

  public void arrayBufferDetach(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
         0: .line 1221
            aload 1 /* arrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBuffer.detachArrayBuffer:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 1222
            return
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  arrayBuffer  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      arrayBuffer  

  public static int arrayBufferViewByteLength(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.object.DynamicObject arrayBufferView
         0: .line 1225
            aload 1 /* arrayBufferView */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDataView.isJSDataView:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1226
            aload 1 /* arrayBufferView */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDataView.typedArrayGetLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            ireturn
         2: .line 1228
      StackMap locals:
      StackMap stack:
            aload 1 /* arrayBufferView */
            aload 0 /* context */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.getByteLength:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSContext;)I
            ireturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject arrayBufferView
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0          context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    3     1  arrayBufferView  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                 Name  Flags
      context          
      arrayBufferView  

  public int arrayBufferViewByteOffset(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBufferView
         0: .line 1233
            aload 1 /* arrayBufferView */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 2 /* dynamicObject */
        start local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 1234
            aload 2 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* dynamicObject */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.arrayBufferViewByteOffset:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)I
            ireturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 1 // java.lang.Object arrayBufferView
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  arrayBufferView  Ljava/lang/Object;
            1    2     2    dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                 Name  Flags
      arrayBufferView  

  public static int arrayBufferViewByteOffset(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.object.DynamicObject arrayBufferView
         0: .line 1238
            aload 1 /* arrayBufferView */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDataView.isJSDataView:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1239
            aload 1 /* arrayBufferView */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDataView.typedArrayGetOffset:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            ireturn
         2: .line 1241
      StackMap locals:
      StackMap stack:
            aload 1 /* arrayBufferView */
            aload 0 /* context */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.getByteOffset:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSContext;)I
            ireturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject arrayBufferView
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0          context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    3     1  arrayBufferView  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                 Name  Flags
      context          
      arrayBufferView  

  private static void pollAgentWaiterListQueue();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 1260
            goto 3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList ref
         1: .line 1261
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.agentWaiterListMap:Ljava/util/Map;
            aload 0 /* ref */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList.pointer:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            ifnonnull 3
         2: .line 1262
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.agentWaiterListMap:Ljava/util/Map;
            aload 0 /* ref */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList.pointer:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList ref
         3: .line 1260
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.agentWaiterListQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            checkcast com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList
            dup
            astore 0 /* ref */
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList ref
         4: ifnonnull 1
         5: .line 1265
            return
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList ref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    3     0   ref  Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakAgentWaiterList;
            4    6     0   ref  Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakAgentWaiterList;

  private static void updateWaiterList(com.oracle.truffle.api.object.DynamicObject, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;J)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject sharedArrayBuffer
        start local 1 // long pointer
         0: .line 1268
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.agentWaiterListMap:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         1: .line 1269
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.pollAgentWaiterListQueue:()V
         2: .line 1270
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 3
            aload 0 /* sharedArrayBuffer */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSharedArrayBuffer.isJSSharedArrayBuffer:(Ljava/lang/Object;)Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 1271
      StackMap locals: java.util.Map
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 4
            lload 1 /* pointer */
            lconst_0
            lcmp
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1272
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.agentWaiterListMap:Ljava/util/Map;
            lload 1 /* pointer */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            astore 4 /* ref */
        start local 4 // java.lang.ref.WeakReference ref
         5: .line 1273
            aload 4 /* ref */
            ifnonnull 6
            aconst_null
            goto 7
      StackMap locals: java.lang.ref.WeakReference
      StackMap stack:
         6: aload 4 /* ref */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.JSAgentWaiterList
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.runtime.JSAgentWaiterList
         7: astore 5 /* wl */
        start local 5 // com.oracle.truffle.js.runtime.JSAgentWaiterList wl
         8: .line 1274
            aload 5 /* wl */
            ifnonnull 12
         9: .line 1276
            new com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList
            dup
            aload 0 /* sharedArrayBuffer */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSharedArrayBuffer.getWaiterList:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSAgentWaiterList;
            lload 1 /* pointer */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList.<init>:(Lcom/oracle/truffle/js/runtime/JSAgentWaiterList;J)V
            astore 4 /* ref */
        10: .line 1277
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.agentWaiterListMap:Ljava/util/Map;
            lload 1 /* pointer */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 4 /* ref */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 1278
            goto 13
        12: .line 1280
      StackMap locals: com.oracle.truffle.js.runtime.JSAgentWaiterList
      StackMap stack:
            aload 0 /* sharedArrayBuffer */
            aload 5 /* wl */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSharedArrayBuffer.setWaiterList:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSAgentWaiterList;)V
        end local 5 // com.oracle.truffle.js.runtime.JSAgentWaiterList wl
        end local 4 // java.lang.ref.WeakReference ref
        13: .line 1268
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 3
            monitorexit
        16: athrow
        17: .line 1283
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long pointer
        end local 0 // com.oracle.truffle.api.object.DynamicObject sharedArrayBuffer
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   18     0  sharedArrayBuffer  Lcom/oracle/truffle/api/object/DynamicObject;
            0   18     1            pointer  J
            5   13     4                ref  Ljava/lang/ref/WeakReference<Lcom/oracle/truffle/js/runtime/JSAgentWaiterList;>;
            8   13     5                 wl  Lcom/oracle/truffle/js/runtime/JSAgentWaiterList;
      Exception table:
        from    to  target  type
           1    14      15  any
          15    16      15  any
    MethodParameters:
                   Name  Flags
      sharedArrayBuffer  
      pointer            

  public java.lang.Object sharedArrayBufferNew(java.lang.Object, java.lang.Object, long, boolean);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;JZ)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object buffer
        start local 3 // long pointer
        start local 5 // boolean externalized
         0: .line 1286
            aload 2 /* buffer */
            checkcast java.nio.ByteBuffer
            astore 6 /* byteBuffer */
        start local 6 // java.nio.ByteBuffer byteBuffer
         1: .line 1287
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 6 /* byteBuffer */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSharedArrayBuffer.createSharedArrayBuffer:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/nio/ByteBuffer;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* sharedArrayBuffer */
        start local 7 // com.oracle.truffle.api.object.DynamicObject sharedArrayBuffer
         2: .line 1288
            aload 7 /* sharedArrayBuffer */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.EXTERNALIZED_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            iload 5 /* externalized */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 1289
            iload 5 /* externalized */
            ifeq 6
         4: .line 1290
            aload 7 /* sharedArrayBuffer */
            lload 3 /* pointer */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.updateWaiterList:(Lcom/oracle/truffle/api/object/DynamicObject;J)V
         5: .line 1291
            goto 7
         6: .line 1292
      StackMap locals: java.nio.ByteBuffer com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.deallocator:Lcom/oracle/truffle/trufflenode/Deallocator;
            aload 6 /* byteBuffer */
            lload 3 /* pointer */
            invokevirtual com.oracle.truffle.trufflenode.Deallocator.register:(Ljava/nio/ByteBuffer;J)V
         7: .line 1294
      StackMap locals:
      StackMap stack:
            aload 7 /* sharedArrayBuffer */
            areturn
        end local 7 // com.oracle.truffle.api.object.DynamicObject sharedArrayBuffer
        end local 6 // java.nio.ByteBuffer byteBuffer
        end local 5 // boolean externalized
        end local 3 // long pointer
        end local 2 // java.lang.Object buffer
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1            context  Ljava/lang/Object;
            0    8     2             buffer  Ljava/lang/Object;
            0    8     3            pointer  J
            0    8     5       externalized  Z
            1    8     6         byteBuffer  Ljava/nio/ByteBuffer;
            2    8     7  sharedArrayBuffer  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
              Name  Flags
      context       
      buffer        
      pointer       
      externalized  

  public boolean sharedArrayBufferIsExternal(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object sharedArrayBuffer
         0: .line 1298
            aload 1 /* sharedArrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.EXTERNALIZED_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object sharedArrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  sharedArrayBuffer  Ljava/lang/Object;
    MethodParameters:
                   Name  Flags
      sharedArrayBuffer  

  public java.lang.Object sharedArrayBufferGetContents(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object sharedArrayBuffer
         0: .line 1302
            aload 1 /* sharedArrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSharedArrayBuffer.getDirectByteBuffer:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/nio/ByteBuffer;
            areturn
        end local 1 // java.lang.Object sharedArrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  sharedArrayBuffer  Ljava/lang/Object;
    MethodParameters:
                   Name  Flags
      sharedArrayBuffer  

  public void sharedArrayBufferExternalize(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object sharedArrayBuffer
        start local 2 // long pointer
         0: .line 1306
            aload 1 /* sharedArrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 4 /* dynamicObject */
        start local 4 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 1307
            aload 4 /* dynamicObject */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.EXTERNALIZED_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 1308
            aload 4 /* dynamicObject */
            lload 2 /* pointer */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.updateWaiterList:(Lcom/oracle/truffle/api/object/DynamicObject;J)V
         3: .line 1309
            return
        end local 4 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 2 // long pointer
        end local 1 // java.lang.Object sharedArrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1  sharedArrayBuffer  Ljava/lang/Object;
            0    4     2            pointer  J
            1    4     4      dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                   Name  Flags
      sharedArrayBuffer  
      pointer            

  public int typedArrayLength(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object typedArray
         0: .line 1312
            aload 1 /* typedArray */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.typedArrayGetLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            ireturn
        end local 1 // java.lang.Object typedArray
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  typedArray  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      typedArray  

  private java.lang.Object typedArrayNew(java.lang.Object, int, int, com.oracle.truffle.js.runtime.array.TypedArrayFactory);
    descriptor: (Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
        start local 4 // com.oracle.truffle.js.runtime.array.TypedArrayFactory factory
         0: .line 1316
            aload 4 /* factory */
            iconst_1
            iload 2 /* offset */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int com.oracle.truffle.js.runtime.array.TypedArrayFactory
      StackMap stack: com.oracle.truffle.js.runtime.array.TypedArrayFactory int
         1: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object int int com.oracle.truffle.js.runtime.array.TypedArrayFactory
      StackMap stack: com.oracle.truffle.js.runtime.array.TypedArrayFactory int int
         2: invokevirtual com.oracle.truffle.js.runtime.array.TypedArrayFactory.createArrayType:(ZZ)Lcom/oracle/truffle/js/runtime/array/TypedArray;
            astore 5 /* arrayType */
        start local 5 // com.oracle.truffle.js.runtime.array.TypedArray arrayType
         3: .line 1317
            aload 1 /* arrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 6 /* dynamicObject */
        start local 6 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         4: .line 1318
            aload 6 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 7 /* context */
        start local 7 // com.oracle.truffle.js.runtime.JSContext context
         5: .line 1319
            aload 7 /* context */
            aload 6 /* dynamicObject */
            aload 5 /* arrayType */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.createArrayBufferView:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/TypedArray;II)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 7 // com.oracle.truffle.js.runtime.JSContext context
        end local 6 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 5 // com.oracle.truffle.js.runtime.array.TypedArray arrayType
        end local 4 // com.oracle.truffle.js.runtime.array.TypedArrayFactory factory
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1    arrayBuffer  Ljava/lang/Object;
            0    6     2         offset  I
            0    6     3         length  I
            0    6     4        factory  Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            3    6     5      arrayType  Lcom/oracle/truffle/js/runtime/array/TypedArray;
            4    6     6  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            5    6     7        context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       
      factory      

  public java.lang.Object uint8ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1323
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.Uint8Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object uint8ClampedArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1327
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.Uint8ClampedArray:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object int8ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1331
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.Int8Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object uint16ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1335
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.Uint16Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object int16ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1339
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.Int16Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object uint32ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1343
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.Uint32Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object int32ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1347
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.Int32Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object float32ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1351
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.Float32Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object float64ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1355
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.Float64Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object bigInt64ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1359
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.BigInt64Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object bigUint64ArrayNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1363
            aload 0 /* this */
            aload 1 /* arrayBuffer */
            iload 2 /* offset */
            iload 3 /* length */
            getstatic com.oracle.truffle.js.runtime.array.TypedArrayFactory.BigUint64Array:Lcom/oracle/truffle/js/runtime/array/TypedArrayFactory;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.typedArrayNew:(Ljava/lang/Object;IILcom/oracle/truffle/js/runtime/array/TypedArrayFactory;)Ljava/lang/Object;
            areturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  arrayBuffer  Ljava/lang/Object;
            0    1     2       offset  I
            0    1     3       length  I
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object dataViewNew(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object arrayBuffer
        start local 2 // int offset
        start local 3 // int length
         0: .line 1367
            aload 1 /* arrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 4 /* dynamicObject */
        start local 4 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 1368
            aload 4 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 5 /* context */
        start local 5 // com.oracle.truffle.js.runtime.JSContext context
         2: .line 1369
            aload 5 /* context */
            aload 4 /* dynamicObject */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDataView.createDataView:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;II)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 5 // com.oracle.truffle.js.runtime.JSContext context
        end local 4 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.lang.Object arrayBuffer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1    arrayBuffer  Ljava/lang/Object;
            0    3     2         offset  I
            0    3     3         length  I
            1    3     4  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            2    3     5        context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
             Name  Flags
      arrayBuffer  
      offset       
      length       

  public java.lang.Object externalNew(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // long pointer
         0: .line 1373
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            lload 2 /* pointer */
            invokestatic com.oracle.truffle.trufflenode.JSExternal.create:(Lcom/oracle/truffle/js/runtime/JSContext;J)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // long pointer
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2  pointer  J
    MethodParameters:
         Name  Flags
      context  
      pointer  

  public java.lang.Object integerNew(long);
    descriptor: (J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // long value
         0: .line 1377
            lload 1 /* value */
            l2d
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        end local 1 // long value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  J
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object numberNew(double);
    descriptor: (D)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // double value
         0: .line 1381
            dload 1 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        end local 1 // double value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  D
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object dateNew(java.lang.Object, double);
    descriptor: (Ljava/lang/Object;D)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // double value
         0: .line 1385
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            dload 2 /* value */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDate.create:(Lcom/oracle/truffle/js/runtime/JSContext;D)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // double value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2    value  D
    MethodParameters:
         Name  Flags
      context  
      value    

  public double dateValueOf(java.lang.Object);
    descriptor: (Ljava/lang/Object;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object date
         0: .line 1389
            aload 1 /* date */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSDate.getTimeMillisField:(Lcom/oracle/truffle/api/object/DynamicObject;)D
            dreturn
        end local 1 // java.lang.Object date
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  date  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      date  

  public java.lang.Object symbolNew(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object name
         0: .line 1393
            aload 1 /* name */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.Symbol.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/Symbol;
            areturn
        end local 1 // java.lang.Object name
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  name  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      name  

  public java.lang.Object symbolName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object symbol
         0: .line 1397
            aload 1 /* symbol */
            checkcast com.oracle.truffle.js.runtime.Symbol
            invokevirtual com.oracle.truffle.js.runtime.Symbol.getDescription:()Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object symbol
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  symbol  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      symbol  

  public java.lang.Object symbolGetIterator();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 1401
            getstatic com.oracle.truffle.js.runtime.Symbol.SYMBOL_ITERATOR:Lcom/oracle/truffle/js/runtime/Symbol;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public java.lang.Object functionNewInstance(java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object[] arguments
         0: .line 1405
            aload 1 /* function */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 3 /* functionObject */
        start local 3 // com.oracle.truffle.api.object.DynamicObject functionObject
         1: .line 1406
            aload 3 /* functionObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 4 /* functionData */
        start local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         2: .line 1407
            aconst_null
            aload 1 /* function */
            aload 2 /* arguments */
            invokestatic com.oracle.truffle.js.runtime.JSArguments.create:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
            astore 5 /* callArguments */
        start local 5 // java.lang.Object[] callArguments
         3: .line 1408
            aload 4 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getConstructTarget:()Lcom/oracle/truffle/api/CallTarget;
            aload 5 /* callArguments */
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.Object[] callArguments
        end local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 3 // com.oracle.truffle.api.object.DynamicObject functionObject
        end local 2 // java.lang.Object[] arguments
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1        function  Ljava/lang/Object;
            0    4     2       arguments  [Ljava/lang/Object;
            1    4     3  functionObject  Lcom/oracle/truffle/api/object/DynamicObject;
            2    4     4    functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            3    4     5   callArguments  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      function   
      arguments  

  public void functionSetName(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.String name
         0: .line 1412
            aload 1 /* function */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 3 /* functionObject */
        start local 3 // com.oracle.truffle.api.object.DynamicObject functionObject
         1: .line 1413
            aload 3 /* functionObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 4 /* functionData */
        start local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         2: .line 1414
            aload 4 /* functionData */
            aload 2 /* name */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setName:(Ljava/lang/String;)V
         3: .line 1415
            return
        end local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 3 // com.oracle.truffle.api.object.DynamicObject functionObject
        end local 2 // java.lang.String name
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1        function  Ljava/lang/Object;
            0    4     2            name  Ljava/lang/String;
            1    4     3  functionObject  Lcom/oracle/truffle/api/object/DynamicObject;
            2    4     4    functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
          Name  Flags
      function  
      name      

  public java.lang.String functionGetName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
         0: .line 1418
            aload 1 /* function */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 2 /* functionObject */
        start local 2 // com.oracle.truffle.api.object.DynamicObject functionObject
         1: .line 1419
            aload 2 /* functionObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 3 /* functionData */
        start local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         2: .line 1420
            aload 3 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
            areturn
        end local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 2 // com.oracle.truffle.api.object.DynamicObject functionObject
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1        function  Ljava/lang/Object;
            1    3     2  functionObject  Lcom/oracle/truffle/api/object/DynamicObject;
            2    3     3    functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
          Name  Flags
      function  

  public java.lang.Object functionCall(java.lang.Object, java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object[] arguments
         0: .line 1424
            aload 1 /* function */
            aload 2 /* receiver */
            aload 3 /* arguments */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.call:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         1: .line 1425
            aload 0 /* this */
            aload 4 /* value */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueFlatten:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* flatten */
        start local 5 // java.lang.Object flatten
         2: .line 1426
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         3: .line 1427
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            invokestatic com.oracle.truffle.js.runtime.util.BufferUtil.asBaseBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
            iconst_4
            invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
            pop
         4: .line 1428
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            iconst_0
            aload 0 /* this */
            aload 5 /* flatten */
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.valueType:(Ljava/lang/Object;Z)I
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
         5: .line 1429
            aload 5 /* flatten */
            areturn
        end local 5 // java.lang.Object flatten
        end local 4 // java.lang.Object value
        end local 3 // java.lang.Object[] arguments
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1   function  Ljava/lang/Object;
            0    6     2   receiver  Ljava/lang/Object;
            0    6     3  arguments  [Ljava/lang/Object;
            1    6     4      value  Ljava/lang/Object;
            2    6     5    flatten  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      function   
      receiver   
      arguments  

  public java.lang.Object functionCall0(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
         0: .line 1433
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            getstatic com.oracle.truffle.js.runtime.JSArguments.EMPTY_ARGUMENTS_ARRAY:[Ljava/lang/Object;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  

  public java.lang.Object functionCall1(java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object arg0
         0: .line 1437
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* arg0 */
            aastore
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object arg0
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
            0    1     3      arg0  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  
      arg0      

  public java.lang.Object functionCall2(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object arg0
        start local 4 // java.lang.Object arg1
         0: .line 1441
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* arg0 */
            aastore
            dup
            iconst_1
            aload 4 /* arg1 */
            aastore
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object arg1
        end local 3 // java.lang.Object arg0
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
            0    1     3      arg0  Ljava/lang/Object;
            0    1     4      arg1  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  
      arg0      
      arg1      

  public java.lang.Object functionCall3(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object arg0
        start local 4 // java.lang.Object arg1
        start local 5 // java.lang.Object arg2
         0: .line 1445
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* arg0 */
            aastore
            dup
            iconst_1
            aload 4 /* arg1 */
            aastore
            dup
            iconst_2
            aload 5 /* arg2 */
            aastore
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.Object arg2
        end local 4 // java.lang.Object arg1
        end local 3 // java.lang.Object arg0
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
            0    1     3      arg0  Ljava/lang/Object;
            0    1     4      arg1  Ljava/lang/Object;
            0    1     5      arg2  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  
      arg0      
      arg1      
      arg2      

  public java.lang.Object functionCall4(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object arg0
        start local 4 // java.lang.Object arg1
        start local 5 // java.lang.Object arg2
        start local 6 // java.lang.Object arg3
         0: .line 1449
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* arg0 */
            aastore
            dup
            iconst_1
            aload 4 /* arg1 */
            aastore
            dup
            iconst_2
            aload 5 /* arg2 */
            aastore
            dup
            iconst_3
            aload 6 /* arg3 */
            aastore
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // java.lang.Object arg3
        end local 5 // java.lang.Object arg2
        end local 4 // java.lang.Object arg1
        end local 3 // java.lang.Object arg0
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
            0    1     3      arg0  Ljava/lang/Object;
            0    1     4      arg1  Ljava/lang/Object;
            0    1     5      arg2  Ljava/lang/Object;
            0    1     6      arg3  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  
      arg0      
      arg1      
      arg2      
      arg3      

  public java.lang.Object functionCall5(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=8
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object arg0
        start local 4 // java.lang.Object arg1
        start local 5 // java.lang.Object arg2
        start local 6 // java.lang.Object arg3
        start local 7 // java.lang.Object arg4
         0: .line 1453
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* arg0 */
            aastore
            dup
            iconst_1
            aload 4 /* arg1 */
            aastore
            dup
            iconst_2
            aload 5 /* arg2 */
            aastore
            dup
            iconst_3
            aload 6 /* arg3 */
            aastore
            dup
            iconst_4
            aload 7 /* arg4 */
            aastore
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 7 // java.lang.Object arg4
        end local 6 // java.lang.Object arg3
        end local 5 // java.lang.Object arg2
        end local 4 // java.lang.Object arg1
        end local 3 // java.lang.Object arg0
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
            0    1     3      arg0  Ljava/lang/Object;
            0    1     4      arg1  Ljava/lang/Object;
            0    1     5      arg2  Ljava/lang/Object;
            0    1     6      arg3  Ljava/lang/Object;
            0    1     7      arg4  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  
      arg0      
      arg1      
      arg2      
      arg3      
      arg4      

  public java.lang.Object functionCall6(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=9
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object arg0
        start local 4 // java.lang.Object arg1
        start local 5 // java.lang.Object arg2
        start local 6 // java.lang.Object arg3
        start local 7 // java.lang.Object arg4
        start local 8 // java.lang.Object arg5
         0: .line 1457
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* arg0 */
            aastore
            dup
            iconst_1
            aload 4 /* arg1 */
            aastore
            dup
            iconst_2
            aload 5 /* arg2 */
            aastore
            dup
            iconst_3
            aload 6 /* arg3 */
            aastore
            dup
            iconst_4
            aload 7 /* arg4 */
            aastore
            dup
            iconst_5
            aload 8 /* arg5 */
            aastore
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 8 // java.lang.Object arg5
        end local 7 // java.lang.Object arg4
        end local 6 // java.lang.Object arg3
        end local 5 // java.lang.Object arg2
        end local 4 // java.lang.Object arg1
        end local 3 // java.lang.Object arg0
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
            0    1     3      arg0  Ljava/lang/Object;
            0    1     4      arg1  Ljava/lang/Object;
            0    1     5      arg2  Ljava/lang/Object;
            0    1     6      arg3  Ljava/lang/Object;
            0    1     7      arg4  Ljava/lang/Object;
            0    1     8      arg5  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  
      arg0      
      arg1      
      arg2      
      arg3      
      arg4      
      arg5      

  public java.lang.Object functionCall7(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=10
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object arg0
        start local 4 // java.lang.Object arg1
        start local 5 // java.lang.Object arg2
        start local 6 // java.lang.Object arg3
        start local 7 // java.lang.Object arg4
        start local 8 // java.lang.Object arg5
        start local 9 // java.lang.Object arg6
         0: .line 1461
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* arg0 */
            aastore
            dup
            iconst_1
            aload 4 /* arg1 */
            aastore
            dup
            iconst_2
            aload 5 /* arg2 */
            aastore
            dup
            iconst_3
            aload 6 /* arg3 */
            aastore
            dup
            iconst_4
            aload 7 /* arg4 */
            aastore
            dup
            iconst_5
            aload 8 /* arg5 */
            aastore
            dup
            bipush 6
            aload 9 /* arg6 */
            aastore
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 9 // java.lang.Object arg6
        end local 8 // java.lang.Object arg5
        end local 7 // java.lang.Object arg4
        end local 6 // java.lang.Object arg3
        end local 5 // java.lang.Object arg2
        end local 4 // java.lang.Object arg1
        end local 3 // java.lang.Object arg0
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
            0    1     3      arg0  Ljava/lang/Object;
            0    1     4      arg1  Ljava/lang/Object;
            0    1     5      arg2  Ljava/lang/Object;
            0    1     6      arg3  Ljava/lang/Object;
            0    1     7      arg4  Ljava/lang/Object;
            0    1     8      arg5  Ljava/lang/Object;
            0    1     9      arg6  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  
      arg0      
      arg1      
      arg2      
      arg3      
      arg4      
      arg5      
      arg6      

  public java.lang.Object functionCall8(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=11
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object arg0
        start local 4 // java.lang.Object arg1
        start local 5 // java.lang.Object arg2
        start local 6 // java.lang.Object arg3
        start local 7 // java.lang.Object arg4
        start local 8 // java.lang.Object arg5
        start local 9 // java.lang.Object arg6
        start local 10 // java.lang.Object arg7
         0: .line 1465
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            bipush 8
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* arg0 */
            aastore
            dup
            iconst_1
            aload 4 /* arg1 */
            aastore
            dup
            iconst_2
            aload 5 /* arg2 */
            aastore
            dup
            iconst_3
            aload 6 /* arg3 */
            aastore
            dup
            iconst_4
            aload 7 /* arg4 */
            aastore
            dup
            iconst_5
            aload 8 /* arg5 */
            aastore
            dup
            bipush 6
            aload 9 /* arg6 */
            aastore
            dup
            bipush 7
            aload 10 /* arg7 */
            aastore
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 10 // java.lang.Object arg7
        end local 9 // java.lang.Object arg6
        end local 8 // java.lang.Object arg5
        end local 7 // java.lang.Object arg4
        end local 6 // java.lang.Object arg3
        end local 5 // java.lang.Object arg2
        end local 4 // java.lang.Object arg1
        end local 3 // java.lang.Object arg0
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
            0    1     3      arg0  Ljava/lang/Object;
            0    1     4      arg1  Ljava/lang/Object;
            0    1     5      arg2  Ljava/lang/Object;
            0    1     6      arg3  Ljava/lang/Object;
            0    1     7      arg4  Ljava/lang/Object;
            0    1     8      arg5  Ljava/lang/Object;
            0    1     9      arg6  Ljava/lang/Object;
            0    1    10      arg7  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  
      arg0      
      arg1      
      arg2      
      arg3      
      arg4      
      arg5      
      arg6      
      arg7      

  public java.lang.Object functionCall9(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=12
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object arg0
        start local 4 // java.lang.Object arg1
        start local 5 // java.lang.Object arg2
        start local 6 // java.lang.Object arg3
        start local 7 // java.lang.Object arg4
        start local 8 // java.lang.Object arg5
        start local 9 // java.lang.Object arg6
        start local 10 // java.lang.Object arg7
        start local 11 // java.lang.Object arg8
         0: .line 1469
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* receiver */
            bipush 9
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* arg0 */
            aastore
            dup
            iconst_1
            aload 4 /* arg1 */
            aastore
            dup
            iconst_2
            aload 5 /* arg2 */
            aastore
            dup
            iconst_3
            aload 6 /* arg3 */
            aastore
            dup
            iconst_4
            aload 7 /* arg4 */
            aastore
            dup
            iconst_5
            aload 8 /* arg5 */
            aastore
            dup
            bipush 6
            aload 9 /* arg6 */
            aastore
            dup
            bipush 7
            aload 10 /* arg7 */
            aastore
            dup
            bipush 8
            aload 11 /* arg8 */
            aastore
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionCall:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 11 // java.lang.Object arg8
        end local 10 // java.lang.Object arg7
        end local 9 // java.lang.Object arg6
        end local 8 // java.lang.Object arg5
        end local 7 // java.lang.Object arg4
        end local 6 // java.lang.Object arg3
        end local 5 // java.lang.Object arg2
        end local 4 // java.lang.Object arg1
        end local 3 // java.lang.Object arg0
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  function  Ljava/lang/Object;
            0    1     2  receiver  Ljava/lang/Object;
            0    1     3      arg0  Ljava/lang/Object;
            0    1     4      arg1  Ljava/lang/Object;
            0    1     5      arg2  Ljava/lang/Object;
            0    1     6      arg3  Ljava/lang/Object;
            0    1     7      arg4  Ljava/lang/Object;
            0    1     8      arg5  Ljava/lang/Object;
            0    1     9      arg6  Ljava/lang/Object;
            0    1    10      arg7  Ljava/lang/Object;
            0    1    11      arg8  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  
      receiver  
      arg0      
      arg1      
      arg2      
      arg3      
      arg4      
      arg5      
      arg6      
      arg7      
      arg8      

  private static com.oracle.truffle.api.source.SourceSection functionGetSourceSection(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.lang.Object function
         0: .line 1473
            aload 0 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 5
         1: .line 1474
            aload 0 /* function */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getCallTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/CallTarget;
            astore 1 /* callTarget */
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
         2: .line 1475
            aload 1 /* callTarget */
            instanceof com.oracle.truffle.api.RootCallTarget
            ifeq 5
         3: .line 1476
            aload 1 /* callTarget */
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 2 /* rootNode */
        start local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
         4: .line 1477
            aload 2 /* rootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            areturn
        end local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
         5: .line 1480
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.Object function
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0    function  Ljava/lang/Object;
            2    5     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
            4    5     2    rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
          Name  Flags
      function  

  public java.lang.Object functionResourceName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
         0: .line 1484
            aload 1 /* function */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionGetSourceSection:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            astore 2 /* sourceSection */
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
         1: .line 1485
            aload 2 /* sourceSection */
            ifnonnull 3
         2: .line 1486
            aconst_null
            areturn
         3: .line 1488
      StackMap locals: com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 3 /* source */
        start local 3 // com.oracle.truffle.api.source.Source source
         4: .line 1489
            aload 3 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            areturn
        end local 3 // com.oracle.truffle.api.source.Source source
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1       function  Ljava/lang/Object;
            1    5     2  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            4    5     3         source  Lcom/oracle/truffle/api/source/Source;
    MethodParameters:
          Name  Flags
      function  

  public int functionGetScriptLineNumber(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
         0: .line 1494
            aload 1 /* function */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionGetSourceSection:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            astore 2 /* sourceSection */
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
         1: .line 1495
            aload 2 /* sourceSection */
            ifnonnull 3
         2: .line 1496
            iconst_m1
            ireturn
         3: .line 1498
      StackMap locals: com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            iconst_1
            isub
            ireturn
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1       function  Ljava/lang/Object;
            1    4     2  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    MethodParameters:
          Name  Flags
      function  

  public int functionGetScriptColumnNumber(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object function
         0: .line 1503
            aload 1 /* function */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionGetSourceSection:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            astore 2 /* sourceSection */
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
         1: .line 1504
            aload 2 /* sourceSection */
            ifnonnull 3
         2: .line 1505
            iconst_m1
            ireturn
         3: .line 1507
      StackMap locals: com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 3 /* code */
        start local 3 // java.lang.String code
         4: .line 1508
            aload 3 /* code */
            bipush 40
            invokevirtual java.lang.String.indexOf:(I)I
            istore 4 /* idx */
        start local 4 // int idx
         5: .line 1509
            iload 4 /* idx */
            iconst_m1
            if_icmpne 6
            iconst_0
            goto 7
      StackMap locals: java.lang.String int
      StackMap stack:
         6: iload 4 /* idx */
      StackMap locals:
      StackMap stack: int
         7: istore 5 /* delta */
        start local 5 // int delta
         8: .line 1510
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartColumn:()I
            iload 5 /* delta */
            iadd
            iconst_1
            isub
            ireturn
        end local 5 // int delta
        end local 4 // int idx
        end local 3 // java.lang.String code
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    9     1       function  Ljava/lang/Object;
            1    9     2  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            4    9     3           code  Ljava/lang/String;
            5    9     4            idx  I
            8    9     5          delta  I
    MethodParameters:
          Name  Flags
      function  

  public java.lang.Object exceptionError(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object object
         0: .line 1515
            aload 0 /* this */
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            getstatic com.oracle.truffle.js.runtime.JSErrorType.Error:Lcom/oracle/truffle/js/runtime/JSErrorType;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exceptionCreate:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2   object  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      object   

  public java.lang.Object exceptionTypeError(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object object
         0: .line 1519
            aload 0 /* this */
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            getstatic com.oracle.truffle.js.runtime.JSErrorType.TypeError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exceptionCreate:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2   object  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      object   

  public java.lang.Object exceptionSyntaxError(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object object
         0: .line 1523
            aload 0 /* this */
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            getstatic com.oracle.truffle.js.runtime.JSErrorType.SyntaxError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exceptionCreate:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2   object  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      object   

  public java.lang.Object exceptionRangeError(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object object
         0: .line 1527
            aload 0 /* this */
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            getstatic com.oracle.truffle.js.runtime.JSErrorType.RangeError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exceptionCreate:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2   object  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      object   

  public java.lang.Object exceptionReferenceError(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object object
         0: .line 1531
            aload 0 /* this */
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            getstatic com.oracle.truffle.js.runtime.JSErrorType.ReferenceError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            aload 2 /* object */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exceptionCreate:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2   object  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      object   

  private java.lang.Object exceptionCreate(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.runtime.JSErrorType, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 2 // com.oracle.truffle.js.runtime.JSErrorType errorType
        start local 3 // java.lang.Object message
         0: .line 1535
            aload 2 /* errorType */
            aload 1 /* realm */
            aload 3 /* message */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSError.create:(Lcom/oracle/truffle/js/runtime/JSErrorType;Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* error */
        start local 4 // com.oracle.truffle.api.object.DynamicObject error
         1: .line 1536
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 2
            aload 4 /* error */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSError.getException:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/GraalJSException;
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1537
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 4 /* error */
            areturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject error
        end local 3 // java.lang.Object message
        end local 2 // com.oracle.truffle.js.runtime.JSErrorType errorType
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1      realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    3     2  errorType  Lcom/oracle/truffle/js/runtime/JSErrorType;
            0    3     3    message  Ljava/lang/Object;
            1    3     4      error  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
           Name  Flags
      realm      
      errorType  
      message    

  public java.lang.Object exceptionCreateMessage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exceptionObject
         0: .line 1541
            aload 0 /* this */
            aload 1 /* exceptionObject */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exceptionObjectToException:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/GraalJSException;
            areturn
        end local 1 // java.lang.Object exceptionObject
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  exceptionObject  Ljava/lang/Object;
    MethodParameters:
                 Name  Flags
      exceptionObject  

  private com.oracle.truffle.js.runtime.GraalJSException exceptionObjectToException(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/GraalJSException;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exceptionObject
         0: .line 1545
            aload 1 /* exceptionObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 1546
            aload 1 /* exceptionObject */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSError.getException:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/GraalJSException;
            astore 2 /* exception */
        start local 2 // com.oracle.truffle.js.runtime.GraalJSException exception
         2: .line 1547
            aload 2 /* exception */
            ifnull 4
         3: .line 1548
            aload 2 /* exception */
            areturn
        end local 2 // com.oracle.truffle.js.runtime.GraalJSException exception
         4: .line 1551
      StackMap locals:
      StackMap stack:
            aload 1 /* exceptionObject */
            invokestatic com.oracle.truffle.js.runtime.UserScriptException.create:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/UserScriptException;
            areturn
        end local 1 // java.lang.Object exceptionObject
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1  exceptionObject  Ljava/lang/Object;
            2    4     2        exception  Lcom/oracle/truffle/js/runtime/GraalJSException;
    MethodParameters:
                 Name  Flags
      exceptionObject  

  public void isolateThrowException(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exceptionObject
         0: .line 1555
            aload 0 /* this */
            aload 1 /* exceptionObject */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exceptionObjectToException:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/GraalJSException;
            athrow
        end local 1 // java.lang.Object exceptionObject
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  exceptionObject  Ljava/lang/Object;
    MethodParameters:
                 Name  Flags
      exceptionObject  

  public void templateSet(java.lang.Object, java.lang.Object, java.lang.Object, int);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
        start local 2 // java.lang.Object name
        start local 3 // java.lang.Object value
        start local 4 // int attributes
         0: .line 1560
            aload 1 /* templateObj */
            instanceof com.oracle.truffle.trufflenode.info.FunctionTemplate
            ifeq 3
         1: .line 1561
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getFunctionObjectTemplate:()Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            astore 5 /* template */
        start local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
         2: .line 1562
            goto 4
        end local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
         3: .line 1563
      StackMap locals:
      StackMap stack:
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.ObjectTemplate
            astore 5 /* template */
        start local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
         4: .line 1565
      StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate
      StackMap stack:
            aload 5 /* template */
            new com.oracle.truffle.trufflenode.info.Value
            dup
            aload 2 /* name */
            aload 3 /* value */
            iload 4 /* attributes */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.propertyAttributes:(I)I
            invokespecial com.oracle.truffle.trufflenode.info.Value.<init>:(Ljava/lang/Object;Ljava/lang/Object;I)V
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.addValue:(Lcom/oracle/truffle/trufflenode/info/Value;)V
         5: .line 1566
            return
        end local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        end local 4 // int attributes
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object name
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1  templateObj  Ljava/lang/Object;
            0    6     2         name  Ljava/lang/Object;
            0    6     3        value  Ljava/lang/Object;
            0    6     4   attributes  I
            2    3     5     template  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            4    6     5     template  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
    MethodParameters:
             Name  Flags
      templateObj  
      name         
      value        
      attributes   

  public void templateSetAccessorProperty(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
        start local 2 // java.lang.Object name
        start local 3 // java.lang.Object getter
        start local 4 // java.lang.Object setter
        start local 5 // int attributes
         0: .line 1569
            aload 0 /* this */
            aload 1 /* templateObj */
            aload 2 /* name */
            new com.oracle.truffle.js.runtime.util.Pair
            dup
            aload 3 /* getter */
            aload 4 /* setter */
            invokespecial com.oracle.truffle.js.runtime.util.Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            iload 5 /* attributes */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.templateSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;I)V
         1: .line 1570
            return
        end local 5 // int attributes
        end local 4 // java.lang.Object setter
        end local 3 // java.lang.Object getter
        end local 2 // java.lang.Object name
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  templateObj  Ljava/lang/Object;
            0    2     2         name  Ljava/lang/Object;
            0    2     3       getter  Ljava/lang/Object;
            0    2     4       setter  Ljava/lang/Object;
            0    2     5   attributes  I
    MethodParameters:
             Name  Flags
      templateObj  
      name         
      getter       
      setter       
      attributes   

  public java.lang.Object functionTemplateNew(int, long, java.lang.Object, java.lang.Object, int, boolean, boolean);
    descriptor: (IJLjava/lang/Object;Ljava/lang/Object;IZZ)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=10, args_size=8
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // int id
        start local 2 // long pointer
        start local 4 // java.lang.Object additionalData
        start local 5 // java.lang.Object signature
        start local 6 // int length
        start local 7 // boolean isConstructor
        start local 8 // boolean singleFunctionTemplate
         0: .line 1573
            new com.oracle.truffle.trufflenode.info.FunctionTemplate
            dup
            iload 1 /* id */
            lload 2 /* pointer */
            aload 4 /* additionalData */
            aload 5 /* signature */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            iload 6 /* length */
            iload 7 /* isConstructor */
            iload 8 /* singleFunctionTemplate */
            invokespecial com.oracle.truffle.trufflenode.info.FunctionTemplate.<init>:(IJLjava/lang/Object;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;IZZ)V
            astore 9 /* template */
        start local 9 // com.oracle.truffle.trufflenode.info.FunctionTemplate template
         1: .line 1574
            aload 9 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getInstanceTemplate:()Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            aload 9 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.setParentFunctionTemplate:(Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;)V
         2: .line 1575
            aload 9 /* template */
            areturn
        end local 9 // com.oracle.truffle.trufflenode.info.FunctionTemplate template
        end local 8 // boolean singleFunctionTemplate
        end local 7 // boolean isConstructor
        end local 6 // int length
        end local 5 // java.lang.Object signature
        end local 4 // java.lang.Object additionalData
        end local 2 // long pointer
        end local 1 // int id
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1                      id  I
            0    3     2                 pointer  J
            0    3     4          additionalData  Ljava/lang/Object;
            0    3     5               signature  Ljava/lang/Object;
            0    3     6                  length  I
            0    3     7           isConstructor  Z
            0    3     8  singleFunctionTemplate  Z
            1    3     9                template  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    MethodParameters:
                        Name  Flags
      id                      
      pointer                 
      additionalData          
      signature               
      length                  
      isConstructor           
      singleFunctionTemplate  

  public void functionTemplateSetCallHandler(java.lang.Object, long, java.lang.Object);
    descriptor: (Ljava/lang/Object;JLjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
        start local 2 // long funcPointer
        start local 4 // java.lang.Object additionalData
         0: .line 1579
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            astore 5 /* functionTemplate */
        start local 5 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
         1: .line 1580
            aload 5 /* functionTemplate */
            lload 2 /* funcPointer */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.setFunctionPointer:(J)V
         2: .line 1581
            aload 5 /* functionTemplate */
            aload 4 /* additionalData */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.setAdditionalData:(Ljava/lang/Object;)V
         3: .line 1582
            return
        end local 5 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
        end local 4 // java.lang.Object additionalData
        end local 2 // long funcPointer
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1       templateObj  Ljava/lang/Object;
            0    4     2       funcPointer  J
            0    4     4    additionalData  Ljava/lang/Object;
            1    4     5  functionTemplate  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    MethodParameters:
                Name  Flags
      templateObj     
      funcPointer     
      additionalData  

  public void functionTemplateInherit(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
        start local 2 // java.lang.Object parent
         0: .line 1585
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            astore 3 /* functionTemplate */
        start local 3 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
         1: .line 1586
            aload 3 /* functionTemplate */
            aload 2 /* parent */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.setParent:(Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;)V
         2: .line 1587
            return
        end local 3 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
        end local 2 // java.lang.Object parent
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1       templateObj  Ljava/lang/Object;
            0    3     2            parent  Ljava/lang/Object;
            1    3     3  functionTemplate  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    MethodParameters:
             Name  Flags
      templateObj  
      parent       

  public void functionTemplateSetClassName(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
        start local 2 // java.lang.Object name
         0: .line 1590
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            astore 3 /* functionTemplate */
        start local 3 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
         1: .line 1591
            aload 3 /* functionTemplate */
            aload 2 /* name */
            checkcast java.lang.String
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.setClassName:(Ljava/lang/String;)V
         2: .line 1592
            aload 3 /* functionTemplate */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getInstanceTemplate:()Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            astore 4 /* instanceTemplate */
        start local 4 // com.oracle.truffle.trufflenode.info.ObjectTemplate instanceTemplate
         3: .line 1593
            aload 4 /* instanceTemplate */
            new com.oracle.truffle.trufflenode.info.Value
            dup
            getstatic com.oracle.truffle.js.runtime.Symbol.SYMBOL_TO_STRING_TAG:Lcom/oracle/truffle/js/runtime/Symbol;
            aload 2 /* name */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokespecial com.oracle.truffle.trufflenode.info.Value.<init>:(Ljava/lang/Object;Ljava/lang/Object;I)V
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.addValue:(Lcom/oracle/truffle/trufflenode/info/Value;)V
         4: .line 1594
            return
        end local 4 // com.oracle.truffle.trufflenode.info.ObjectTemplate instanceTemplate
        end local 3 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
        end local 2 // java.lang.Object name
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1       templateObj  Ljava/lang/Object;
            0    5     2              name  Ljava/lang/Object;
            1    5     3  functionTemplate  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            3    5     4  instanceTemplate  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
    MethodParameters:
             Name  Flags
      templateObj  
      name         

  public java.lang.Object functionTemplateInstanceTemplate(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
         0: .line 1597
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            astore 2 /* functionTemplate */
        start local 2 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
         1: .line 1598
            aload 2 /* functionTemplate */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getInstanceTemplate:()Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            areturn
        end local 2 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1       templateObj  Ljava/lang/Object;
            1    2     2  functionTemplate  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    MethodParameters:
             Name  Flags
      templateObj  

  public java.lang.Object functionTemplatePrototypeTemplate(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
         0: .line 1602
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            astore 2 /* functionTemplate */
        start local 2 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
         1: .line 1603
            aload 2 /* functionTemplate */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getPrototypeTemplate:()Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            areturn
        end local 2 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1       templateObj  Ljava/lang/Object;
            1    2     2  functionTemplate  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    MethodParameters:
             Name  Flags
      templateObj  

  public java.lang.Object functionTemplateGetFunction(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object realm
        start local 2 // java.lang.Object templateObj
         0: .line 1607
            aload 1 /* realm */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            astore 3 /* jsRealm */
        start local 3 // com.oracle.truffle.js.runtime.JSRealm jsRealm
         1: .line 1608
            aload 3 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* jsContext */
        start local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
         2: .line 1609
            aload 2 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            astore 5 /* template */
        start local 5 // com.oracle.truffle.trufflenode.info.FunctionTemplate template
         3: .line 1611
            aload 5 /* template */
            aload 3 /* jsRealm */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getFunctionObject:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            ifnonnull 18
         4: .line 1612
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         5: .line 1613
            aload 0 /* this */
            aload 4 /* jsContext */
            aload 3 /* jsRealm */
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateCreateCallback:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 6 /* obj */
        start local 6 // com.oracle.truffle.api.object.DynamicObject obj
         6: .line 1614
            aload 0 /* this */
            aload 3 /* jsRealm */
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getFunctionObjectTemplate:()Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            aload 6 /* obj */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.objectTemplateInstantiate:(Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 1616
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getPrototypeTemplate:()Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            astore 7 /* prototypeTemplate */
        start local 7 // com.oracle.truffle.trufflenode.info.ObjectTemplate prototypeTemplate
         8: .line 1617
            aload 7 /* prototypeTemplate */
            ifnull 18
         9: .line 1618
            aload 4 /* jsContext */
            aload 3 /* jsRealm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 8 /* proto */
        start local 8 // com.oracle.truffle.api.object.DynamicObject proto
        10: .line 1619
            aload 0 /* this */
            aload 3 /* jsRealm */
            aload 7 /* prototypeTemplate */
            aload 8 /* proto */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.objectTemplateInstantiate:(Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 1620
            aload 4 /* jsContext */
            aload 8 /* proto */
            aload 6 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putConstructorProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
        12: .line 1621
            aload 6 /* obj */
            ldc "prototype"
            aload 8 /* proto */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        13: .line 1623
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getParent:()Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            astore 9 /* parentTemplate */
        start local 9 // com.oracle.truffle.trufflenode.info.FunctionTemplate parentTemplate
        14: .line 1624
            aload 9 /* parentTemplate */
            ifnull 18
        15: .line 1625
            aload 0 /* this */
            aload 1 /* realm */
            aload 9 /* parentTemplate */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateGetFunction:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 10 /* parentFunction */
        start local 10 // com.oracle.truffle.api.object.DynamicObject parentFunction
        16: .line 1626
            aload 10 /* parentFunction */
            ldc "prototype"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 11 /* parentProto */
        start local 11 // com.oracle.truffle.api.object.DynamicObject parentProto
        17: .line 1627
            aload 8 /* proto */
            aload 11 /* parentProto */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.setPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            pop
        end local 11 // com.oracle.truffle.api.object.DynamicObject parentProto
        end local 10 // com.oracle.truffle.api.object.DynamicObject parentFunction
        end local 9 // com.oracle.truffle.trufflenode.info.FunctionTemplate parentTemplate
        end local 8 // com.oracle.truffle.api.object.DynamicObject proto
        end local 7 // com.oracle.truffle.trufflenode.info.ObjectTemplate prototypeTemplate
        end local 6 // com.oracle.truffle.api.object.DynamicObject obj
        18: .line 1632
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.info.FunctionTemplate
      StackMap stack:
            aload 5 /* template */
            aload 3 /* jsRealm */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getFunctionObject:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 5 // com.oracle.truffle.trufflenode.info.FunctionTemplate template
        end local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 3 // com.oracle.truffle.js.runtime.JSRealm jsRealm
        end local 2 // java.lang.Object templateObj
        end local 1 // java.lang.Object realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   19     1              realm  Ljava/lang/Object;
            0   19     2        templateObj  Ljava/lang/Object;
            1   19     3            jsRealm  Lcom/oracle/truffle/js/runtime/JSRealm;
            2   19     4          jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
            3   19     5           template  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            6   18     6                obj  Lcom/oracle/truffle/api/object/DynamicObject;
            8   18     7  prototypeTemplate  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
           10   18     8              proto  Lcom/oracle/truffle/api/object/DynamicObject;
           14   18     9     parentTemplate  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
           16   18    10     parentFunction  Lcom/oracle/truffle/api/object/DynamicObject;
           17   18    11        parentProto  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
             Name  Flags
      realm        
      templateObj  

  private com.oracle.truffle.api.object.DynamicObject functionTemplateCreateCallback(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.trufflenode.info.FunctionTemplate);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=11, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 3 // com.oracle.truffle.trufflenode.info.FunctionTemplate template
         0: .line 1636
            ldc "do not create function template in compiled code"
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         1: .line 1637
            aload 1 /* context */
            aload 3 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getLength:()I
            aload 3 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getClassName:()Ljava/lang/String;
            aload 3 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getPrototypeTemplate:()Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.trufflenode.info.FunctionTemplate
      StackMap stack: com.oracle.truffle.js.runtime.JSContext int java.lang.String
         2: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.trufflenode.info.FunctionTemplate
      StackMap stack: com.oracle.truffle.js.runtime.JSContext int java.lang.String int
         3: iconst_0
            iconst_0
            iconst_0
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.create:(Lcom/oracle/truffle/js/runtime/JSContext;ILjava/lang/String;ZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 4 /* functionData */
        start local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         4: .line 1638
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode$NativeFunctionRootNode
            dup
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* template */
            iconst_0
            iconst_0
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode$NativeFunctionRootNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;ZZ)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 5 /* callTarget */
        start local 5 // com.oracle.truffle.api.CallTarget callTarget
         5: .line 1639
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode$NativeFunctionRootNode
            dup
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* template */
            iconst_1
            iconst_0
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode$NativeFunctionRootNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;ZZ)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 6 /* newCallTarget */
        start local 6 // com.oracle.truffle.api.CallTarget newCallTarget
         6: .line 1640
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode$NativeFunctionRootNode
            dup
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* template */
            iconst_1
            iconst_1
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode$NativeFunctionRootNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;ZZ)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 7 /* newTargetCallTarget */
        start local 7 // com.oracle.truffle.api.CallTarget newTargetCallTarget
         7: .line 1641
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 4 /* functionData */
            aload 6 /* newCallTarget */
            iconst_0
            invokestatic com.oracle.truffle.js.nodes.function.ConstructorRootNode.create:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;Z)Lcom/oracle/truffle/js/nodes/function/ConstructorRootNode;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 8 /* constructTarget */
        start local 8 // com.oracle.truffle.api.CallTarget constructTarget
         8: .line 1642
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 4 /* functionData */
            aload 7 /* newTargetCallTarget */
            iconst_1
            invokestatic com.oracle.truffle.js.nodes.function.ConstructorRootNode.create:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;Z)Lcom/oracle/truffle/js/nodes/function/ConstructorRootNode;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 9 /* constructNewTarget */
        start local 9 // com.oracle.truffle.api.CallTarget constructNewTarget
         9: .line 1643
            aload 4 /* functionData */
            aload 5 /* callTarget */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setCallTarget:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            pop
        10: .line 1644
            aload 4 /* functionData */
            aload 8 /* constructTarget */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setConstructTarget:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            pop
        11: .line 1645
            aload 4 /* functionData */
            aload 9 /* constructNewTarget */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setConstructNewTarget:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            pop
        12: .line 1646
            aload 2 /* realm */
            aload 4 /* functionData */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 10 /* functionObject */
        start local 10 // com.oracle.truffle.api.object.DynamicObject functionObject
        13: .line 1647
            aload 3 /* template */
            aload 2 /* realm */
            aload 10 /* functionObject */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.setFunctionObject:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)V
        14: .line 1651
            aload 10 /* functionObject */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.FUNCTION_TEMPLATE_DATA_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 3 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getAdditionalData:()Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
        15: .line 1653
            aload 10 /* functionObject */
            areturn
        end local 10 // com.oracle.truffle.api.object.DynamicObject functionObject
        end local 9 // com.oracle.truffle.api.CallTarget constructNewTarget
        end local 8 // com.oracle.truffle.api.CallTarget constructTarget
        end local 7 // com.oracle.truffle.api.CallTarget newTargetCallTarget
        end local 6 // com.oracle.truffle.api.CallTarget newCallTarget
        end local 5 // com.oracle.truffle.api.CallTarget callTarget
        end local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 3 // com.oracle.truffle.trufflenode.info.FunctionTemplate template
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   16     0                 this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   16     1              context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   16     2                realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0   16     3             template  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            4   16     4         functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            5   16     5           callTarget  Lcom/oracle/truffle/api/CallTarget;
            6   16     6        newCallTarget  Lcom/oracle/truffle/api/CallTarget;
            7   16     7  newTargetCallTarget  Lcom/oracle/truffle/api/CallTarget;
            8   16     8      constructTarget  Lcom/oracle/truffle/api/CallTarget;
            9   16     9   constructNewTarget  Lcom/oracle/truffle/api/CallTarget;
           13   16    10       functionObject  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
          Name  Flags
      context   
      realm     
      template  

  public boolean functionTemplateHasInstance(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object functionTemplate
        start local 2 // java.lang.Object instance
         0: .line 1657
            aload 2 /* instance */
            instanceof com.oracle.truffle.api.object.DynamicObject
            ifeq 10
         1: .line 1658
            aload 2 /* instance */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.trufflenode.info.FunctionTemplate.CONSTRUCTOR:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* constructor */
        start local 3 // java.lang.Object constructor
         2: .line 1659
            aload 3 /* constructor */
            instanceof com.oracle.truffle.trufflenode.info.FunctionTemplate
            ifne 4
         3: .line 1660
            iconst_0
            ireturn
         4: .line 1662
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* constructor */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            astore 4 /* instanceTemplate */
        start local 4 // com.oracle.truffle.trufflenode.info.FunctionTemplate instanceTemplate
         5: .line 1663
            goto 9
         6: .line 1664
      StackMap locals: com.oracle.truffle.trufflenode.info.FunctionTemplate
      StackMap stack:
            aload 4 /* instanceTemplate */
            aload 1 /* functionTemplate */
            if_acmpne 8
         7: .line 1665
            iconst_1
            ireturn
         8: .line 1667
      StackMap locals:
      StackMap stack:
            aload 4 /* instanceTemplate */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getParent:()Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            astore 4 /* instanceTemplate */
         9: .line 1663
      StackMap locals:
      StackMap stack:
            aload 4 /* instanceTemplate */
            ifnonnull 6
        end local 4 // com.oracle.truffle.trufflenode.info.FunctionTemplate instanceTemplate
        end local 3 // java.lang.Object constructor
        10: .line 1671
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.Object instance
        end local 1 // java.lang.Object functionTemplate
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   11     1  functionTemplate  Ljava/lang/Object;
            0   11     2          instance  Ljava/lang/Object;
            2   10     3       constructor  Ljava/lang/Object;
            5   10     4  instanceTemplate  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    MethodParameters:
                  Name  Flags
      functionTemplate  
      instance          

  public java.lang.Object objectTemplateNew();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 1675
            new com.oracle.truffle.trufflenode.info.ObjectTemplate
            dup
            invokespecial com.oracle.truffle.trufflenode.info.ObjectTemplate.<init>:()V
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public java.lang.Object objectTemplateNewInstance(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object realm
        start local 2 // java.lang.Object templateObj
         0: .line 1680
            aload 1 /* realm */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            astore 3 /* jsRealm */
        start local 3 // com.oracle.truffle.js.runtime.JSRealm jsRealm
         1: .line 1681
            aload 3 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* jsContext */
        start local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
         2: .line 1682
            aload 2 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.ObjectTemplate
            astore 5 /* template */
        start local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
         3: .line 1683
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.getFunctionHandler:()Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            astore 6 /* functionHandler */
        start local 6 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionHandler
         4: .line 1685
            aload 6 /* functionHandler */
            ifnonnull 14
         5: .line 1686
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.getParentFunctionTemplate:()Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            astore 8 /* parentFunctionTemplate */
        start local 8 // com.oracle.truffle.trufflenode.info.FunctionTemplate parentFunctionTemplate
         6: .line 1687
            aload 8 /* parentFunctionTemplate */
            ifnonnull 9
         7: .line 1688
            aload 4 /* jsContext */
            aload 3 /* jsRealm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* instance */
        start local 7 // com.oracle.truffle.api.object.DynamicObject instance
         8: .line 1689
            goto 15
        end local 7 // com.oracle.truffle.api.object.DynamicObject instance
         9: .line 1690
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.trufflenode.info.FunctionTemplate top com.oracle.truffle.trufflenode.info.FunctionTemplate
      StackMap stack:
            aload 0 /* this */
            aload 1 /* realm */
            aload 8 /* parentFunctionTemplate */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateGetFunction:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 9 /* function */
        start local 9 // com.oracle.truffle.api.object.DynamicObject function
        10: .line 1691
            aload 9 /* function */
            ldc "prototype"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 10 /* prototype */
        start local 10 // com.oracle.truffle.api.object.DynamicObject prototype
        11: .line 1692
            aload 10 /* prototype */
            aload 4 /* jsContext */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.createWithPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* instance */
        start local 7 // com.oracle.truffle.api.object.DynamicObject instance
        12: .line 1693
            aload 7 /* instance */
            getstatic com.oracle.truffle.trufflenode.info.FunctionTemplate.CONSTRUCTOR:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 8 /* parentFunctionTemplate */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 10 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 9 // com.oracle.truffle.api.object.DynamicObject function
        end local 8 // com.oracle.truffle.trufflenode.info.FunctionTemplate parentFunctionTemplate
        13: .line 1695
            goto 15
        end local 7 // com.oracle.truffle.api.object.DynamicObject instance
        14: .line 1696
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.trufflenode.info.FunctionTemplate
      StackMap stack:
            aload 0 /* this */
            aload 4 /* jsContext */
            aload 3 /* jsRealm */
            aload 6 /* functionHandler */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateCreateCallback:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* instance */
        start local 7 // com.oracle.truffle.api.object.DynamicObject instance
        15: .line 1698
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 0 /* this */
            aload 3 /* jsRealm */
            aload 2 /* templateObj */
            aload 7 /* instance */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.objectTemplateInstantiate:(Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;Ljava/lang/Object;)V
        16: .line 1699
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.hasPropertyHandler:()Z
            ifeq 18
        17: .line 1700
            aload 0 /* this */
            aload 4 /* jsContext */
            aload 3 /* jsRealm */
            aload 5 /* template */
            aload 7 /* instance */
            iconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.propertyHandlerInstantiate:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Lcom/oracle/truffle/api/object/DynamicObject;Z)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* instance */
        18: .line 1702
      StackMap locals:
      StackMap stack:
            aload 7 /* instance */
            areturn
        end local 7 // com.oracle.truffle.api.object.DynamicObject instance
        end local 6 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionHandler
        end local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        end local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 3 // com.oracle.truffle.js.runtime.JSRealm jsRealm
        end local 2 // java.lang.Object templateObj
        end local 1 // java.lang.Object realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   19     0                    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   19     1                   realm  Ljava/lang/Object;
            0   19     2             templateObj  Ljava/lang/Object;
            1   19     3                 jsRealm  Lcom/oracle/truffle/js/runtime/JSRealm;
            2   19     4               jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
            3   19     5                template  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            4   19     6         functionHandler  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            8    9     7                instance  Lcom/oracle/truffle/api/object/DynamicObject;
           12   14     7                instance  Lcom/oracle/truffle/api/object/DynamicObject;
           15   19     7                instance  Lcom/oracle/truffle/api/object/DynamicObject;
            6   13     8  parentFunctionTemplate  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
           10   13     9                function  Lcom/oracle/truffle/api/object/DynamicObject;
           11   13    10               prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
             Name  Flags
      realm        
      templateObj  

  public com.oracle.truffle.api.object.DynamicObject propertyHandlerInstantiate(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.trufflenode.info.ObjectTemplate, com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Lcom/oracle/truffle/api/object/DynamicObject;Z)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=19, args_size=6
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 3 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        start local 4 // com.oracle.truffle.api.object.DynamicObject target
        start local 5 // boolean global
         0: .line 1707
            aload 1 /* context */
            aload 2 /* realm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 6 /* handler */
        start local 6 // com.oracle.truffle.api.object.DynamicObject handler
         1: .line 1708
            aload 1 /* context */
            aload 4 /* target */
            aload 6 /* handler */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.create:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* proxy */
        start local 7 // com.oracle.truffle.api.object.DynamicObject proxy
         2: .line 1710
            aload 1 /* context */
            aload 2 /* realm */
            new com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode
            dup
         3: .line 1711
            aload 0 /* this */
         4: .line 1712
            aload 1 /* context */
         5: .line 1713
            aload 3 /* template */
         6: .line 1714
            aload 7 /* proxy */
         7: .line 1715
            getstatic com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode$Mode.GETTER:Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Ljava/lang/Object;Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;)V
            aload 7 /* proxy */
         8: .line 1710
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromRootNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 8 /* getter */
        start local 8 // com.oracle.truffle.api.object.DynamicObject getter
         9: .line 1716
            aload 6 /* handler */
            ldc "get"
            aload 8 /* getter */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        10: .line 1718
            aload 1 /* context */
            aload 2 /* realm */
            new com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode
            dup
        11: .line 1719
            aload 0 /* this */
        12: .line 1720
            aload 1 /* context */
        13: .line 1721
            aload 3 /* template */
        14: .line 1722
            aload 7 /* proxy */
        15: .line 1723
            getstatic com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode$Mode.SETTER:Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Ljava/lang/Object;Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;)V
            aload 7 /* proxy */
        16: .line 1718
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromRootNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 9 /* setter */
        start local 9 // com.oracle.truffle.api.object.DynamicObject setter
        17: .line 1724
            aload 6 /* handler */
            ldc "set"
            aload 9 /* setter */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        18: .line 1726
            aload 1 /* context */
            aload 2 /* realm */
            new com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode
            dup
        19: .line 1727
            aload 0 /* this */
        20: .line 1728
            aload 1 /* context */
        21: .line 1729
            aload 3 /* template */
        22: .line 1730
            aload 7 /* proxy */
        23: .line 1731
            getstatic com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode$Mode.QUERY:Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Ljava/lang/Object;Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;)V
            aload 7 /* proxy */
        24: .line 1726
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromRootNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 10 /* query */
        start local 10 // com.oracle.truffle.api.object.DynamicObject query
        25: .line 1732
            aload 6 /* handler */
            ldc "has"
            aload 10 /* query */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        26: .line 1734
            aload 1 /* context */
            aload 2 /* realm */
            new com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode
            dup
        27: .line 1735
            aload 0 /* this */
        28: .line 1736
            aload 1 /* context */
        29: .line 1737
            aload 3 /* template */
        30: .line 1738
            aload 7 /* proxy */
        31: .line 1739
            getstatic com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode$Mode.DELETER:Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Ljava/lang/Object;Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;)V
            aload 7 /* proxy */
        32: .line 1734
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromRootNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 11 /* deleter */
        start local 11 // com.oracle.truffle.api.object.DynamicObject deleter
        33: .line 1740
            aload 6 /* handler */
            ldc "deleteProperty"
            aload 11 /* deleter */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        34: .line 1742
            aload 1 /* context */
            aload 2 /* realm */
            new com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode
            dup
        35: .line 1743
            aload 0 /* this */
        36: .line 1744
            aload 1 /* context */
        37: .line 1745
            aload 3 /* template */
        38: .line 1746
            aload 7 /* proxy */
        39: .line 1747
            getstatic com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode$Mode.OWN_KEYS:Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Ljava/lang/Object;Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;)V
            aload 7 /* proxy */
        40: .line 1742
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromRootNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 12 /* ownKeys */
        start local 12 // com.oracle.truffle.api.object.DynamicObject ownKeys
        41: .line 1748
            aload 6 /* handler */
            ldc "ownKeys"
            aload 12 /* ownKeys */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        42: .line 1750
            aload 1 /* context */
            aload 2 /* realm */
            new com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode
            dup
        43: .line 1751
            aload 0 /* this */
        44: .line 1752
            aload 1 /* context */
        45: .line 1753
            aload 3 /* template */
        46: .line 1754
            aload 7 /* proxy */
        47: .line 1755
            getstatic com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode$Mode.GET_OWN_PROPERTY_DESCRIPTOR:Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Ljava/lang/Object;Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;)V
            aload 7 /* proxy */
        48: .line 1750
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromRootNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 13 /* getOwnPropertyDescriptor */
        start local 13 // com.oracle.truffle.api.object.DynamicObject getOwnPropertyDescriptor
        49: .line 1756
            aload 6 /* handler */
            ldc "getOwnPropertyDescriptor"
            aload 13 /* getOwnPropertyDescriptor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        50: .line 1758
            aload 1 /* context */
            aload 2 /* realm */
            new com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode
            dup
        51: .line 1759
            aload 0 /* this */
        52: .line 1760
            aload 1 /* context */
        53: .line 1761
            aload 3 /* template */
        54: .line 1762
            aload 7 /* proxy */
        55: .line 1763
            getstatic com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode$Mode.DEFINE_PROPERTY:Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;
            invokespecial com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Ljava/lang/Object;Lcom/oracle/truffle/trufflenode/node/ExecuteNativePropertyHandlerNode$Mode;)V
            aload 7 /* proxy */
        56: .line 1758
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromRootNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 14 /* defineProperty */
        start local 14 // com.oracle.truffle.api.object.DynamicObject defineProperty
        57: .line 1764
            aload 6 /* handler */
            ldc "defineProperty"
            aload 14 /* defineProperty */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        58: .line 1766
            aload 1 /* context */
            aload 2 /* realm */
            new com.oracle.truffle.trufflenode.GraalJSAccess$PropertyHandlerPrototypeNode
            dup
            iload 5 /* global */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$PropertyHandlerPrototypeNode.<init>:(Z)V
            aconst_null
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromRootNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 15 /* getPrototypeOf */
        start local 15 // com.oracle.truffle.api.object.DynamicObject getPrototypeOf
        59: .line 1767
            aload 6 /* handler */
            ldc "getPrototypeOf"
            aload 15 /* getPrototypeOf */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        60: .line 1769
            aload 3 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.getValues:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 65
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.api.object.DynamicObject int com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject top java.util.Iterator
      StackMap stack:
        61: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.info.Value
            astore 16 /* value */
        start local 16 // com.oracle.truffle.trufflenode.info.Value value
        62: .line 1770
            aload 16 /* value */
            invokevirtual com.oracle.truffle.trufflenode.info.Value.getName:()Ljava/lang/Object;
            astore 18 /* name */
        start local 18 // java.lang.Object name
        63: .line 1771
            aload 18 /* name */
            instanceof com.oracle.truffle.api.object.HiddenKey
            ifeq 65
        64: .line 1772
            aload 7 /* proxy */
            aload 18 /* name */
            aload 16 /* value */
            invokevirtual com.oracle.truffle.trufflenode.info.Value.getValue:()Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 18 // java.lang.Object name
        end local 16 // com.oracle.truffle.trufflenode.info.Value value
        65: .line 1769
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 61
        66: .line 1776
            aload 7 /* proxy */
            areturn
        end local 15 // com.oracle.truffle.api.object.DynamicObject getPrototypeOf
        end local 14 // com.oracle.truffle.api.object.DynamicObject defineProperty
        end local 13 // com.oracle.truffle.api.object.DynamicObject getOwnPropertyDescriptor
        end local 12 // com.oracle.truffle.api.object.DynamicObject ownKeys
        end local 11 // com.oracle.truffle.api.object.DynamicObject deleter
        end local 10 // com.oracle.truffle.api.object.DynamicObject query
        end local 9 // com.oracle.truffle.api.object.DynamicObject setter
        end local 8 // com.oracle.truffle.api.object.DynamicObject getter
        end local 7 // com.oracle.truffle.api.object.DynamicObject proxy
        end local 6 // com.oracle.truffle.api.object.DynamicObject handler
        end local 5 // boolean global
        end local 4 // com.oracle.truffle.api.object.DynamicObject target
        end local 3 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   67     0                      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   67     1                   context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   67     2                     realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0   67     3                  template  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            0   67     4                    target  Lcom/oracle/truffle/api/object/DynamicObject;
            0   67     5                    global  Z
            1   67     6                   handler  Lcom/oracle/truffle/api/object/DynamicObject;
            2   67     7                     proxy  Lcom/oracle/truffle/api/object/DynamicObject;
            9   67     8                    getter  Lcom/oracle/truffle/api/object/DynamicObject;
           17   67     9                    setter  Lcom/oracle/truffle/api/object/DynamicObject;
           25   67    10                     query  Lcom/oracle/truffle/api/object/DynamicObject;
           33   67    11                   deleter  Lcom/oracle/truffle/api/object/DynamicObject;
           41   67    12                   ownKeys  Lcom/oracle/truffle/api/object/DynamicObject;
           49   67    13  getOwnPropertyDescriptor  Lcom/oracle/truffle/api/object/DynamicObject;
           57   67    14            defineProperty  Lcom/oracle/truffle/api/object/DynamicObject;
           59   67    15            getPrototypeOf  Lcom/oracle/truffle/api/object/DynamicObject;
           62   65    16                     value  Lcom/oracle/truffle/trufflenode/info/Value;
           63   65    18                      name  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      context   
      realm     
      template  
      target    
      global    

  public void objectTemplateInstantiate(com.oracle.truffle.js.runtime.JSRealm, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=17, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 2 // java.lang.Object templateObj
        start local 3 // java.lang.Object targetObject
         0: .line 1781
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* context */
        start local 4 // com.oracle.truffle.js.runtime.JSContext context
         1: .line 1782
            aload 2 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.ObjectTemplate
            astore 5 /* template */
        start local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
         2: .line 1783
            aload 3 /* targetObject */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 6 /* obj */
        start local 6 // com.oracle.truffle.api.object.DynamicObject obj
         3: .line 1785
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.getAccessors:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 9
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess com.oracle.truffle.js.runtime.JSRealm java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.api.object.DynamicObject top java.util.Iterator
      StackMap stack:
         4: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.info.Accessor
            astore 7 /* accessor */
        start local 7 // com.oracle.truffle.trufflenode.info.Accessor accessor
         5: .line 1786
            aload 7 /* accessor */
            aload 4 /* context */
            invokevirtual com.oracle.truffle.trufflenode.info.Accessor.getFunctions:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/util/Pair;
            astore 9 /* accessorFunctions */
        start local 9 // com.oracle.truffle.js.runtime.util.Pair accessorFunctions
         6: .line 1787
            aload 1 /* realm */
            aload 9 /* accessorFunctions */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData
            aload 6 /* obj */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromFunctionData:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 10 /* getter */
        start local 10 // com.oracle.truffle.api.object.DynamicObject getter
         7: .line 1788
            aload 1 /* realm */
            aload 9 /* accessorFunctions */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getSecond:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData
            aload 6 /* obj */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromFunctionData:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 11 /* setter */
        start local 11 // com.oracle.truffle.api.object.DynamicObject setter
         8: .line 1789
            aload 4 /* context */
            aload 6 /* obj */
            aload 7 /* accessor */
            invokevirtual com.oracle.truffle.trufflenode.info.Accessor.getName:()Ljava/lang/String;
            aload 10 /* getter */
            aload 11 /* setter */
            aload 7 /* accessor */
            invokevirtual com.oracle.truffle.trufflenode.info.Accessor.getAttributes:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putAccessorProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;I)V
        end local 11 // com.oracle.truffle.api.object.DynamicObject setter
        end local 10 // com.oracle.truffle.api.object.DynamicObject getter
        end local 9 // com.oracle.truffle.js.runtime.util.Pair accessorFunctions
        end local 7 // com.oracle.truffle.trufflenode.info.Accessor accessor
         9: .line 1785
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 1792
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.getValues:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 38
      StackMap locals:
      StackMap stack:
        11: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.info.Value
            astore 7 /* value */
        start local 7 // com.oracle.truffle.trufflenode.info.Value value
        12: .line 1793
            aload 7 /* value */
            invokevirtual com.oracle.truffle.trufflenode.info.Value.getName:()Ljava/lang/Object;
            astore 9 /* name */
        start local 9 // java.lang.Object name
        13: .line 1794
            aload 7 /* value */
            invokevirtual com.oracle.truffle.trufflenode.info.Value.getValue:()Ljava/lang/Object;
            astore 10 /* processedValue */
        start local 10 // java.lang.Object processedValue
        14: .line 1795
            aload 7 /* value */
            invokevirtual com.oracle.truffle.trufflenode.info.Value.getAttributes:()I
            istore 11 /* attributes */
        start local 11 // int attributes
        15: .line 1796
            aload 10 /* processedValue */
            instanceof com.oracle.truffle.trufflenode.info.FunctionTemplate
            ifeq 18
        16: .line 1798
            aload 10 /* processedValue */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            astore 12 /* functionTempl */
        start local 12 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTempl
        17: .line 1799
            aload 0 /* this */
            aload 1 /* realm */
            aload 12 /* functionTempl */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateGetFunction:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* processedValue */
        end local 12 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionTempl
        18: .line 1801
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess com.oracle.truffle.js.runtime.JSRealm java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.trufflenode.info.Value java.util.Iterator java.lang.Object java.lang.Object int
      StackMap stack:
            aload 10 /* processedValue */
            instanceof com.oracle.truffle.js.runtime.util.Pair
            ifeq 30
        19: .line 1802
            aload 10 /* processedValue */
            checkcast com.oracle.truffle.js.runtime.util.Pair
            astore 12 /* pair */
        start local 12 // com.oracle.truffle.js.runtime.util.Pair pair
        20: .line 1803
            aload 12 /* pair */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
            astore 13 /* getterTemplate */
        start local 13 // java.lang.Object getterTemplate
        21: .line 1804
            aload 12 /* pair */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getSecond:()Ljava/lang/Object;
            astore 14 /* setterTemplate */
        start local 14 // java.lang.Object setterTemplate
        22: .line 1805
            aload 13 /* getterTemplate */
            ifnonnull 23
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            goto 24
      StackMap locals: com.oracle.truffle.js.runtime.util.Pair java.lang.Object java.lang.Object
      StackMap stack:
        23: aload 0 /* this */
            aload 1 /* realm */
            aload 13 /* getterTemplate */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateGetFunction:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
        24: astore 15 /* getter */
        start local 15 // java.lang.Object getter
        25: .line 1806
            aload 14 /* setterTemplate */
            ifnonnull 26
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            goto 27
      StackMap locals: java.lang.Object
      StackMap stack:
        26: aload 0 /* this */
            aload 1 /* realm */
            aload 14 /* setterTemplate */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateGetFunction:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
        27: astore 16 /* setter */
        start local 16 // java.lang.Object setter
        28: .line 1807
            aload 4 /* context */
            aload 6 /* obj */
            aload 9 /* name */
            aload 15 /* getter */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 16 /* setter */
            checkcast com.oracle.truffle.api.object.DynamicObject
            iload 11 /* attributes */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putAccessorProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;I)V
        end local 16 // java.lang.Object setter
        end local 15 // java.lang.Object getter
        end local 14 // java.lang.Object setterTemplate
        end local 13 // java.lang.Object getterTemplate
        end local 12 // com.oracle.truffle.js.runtime.util.Pair pair
        29: .line 1808
            goto 38
        30: .line 1809
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess com.oracle.truffle.js.runtime.JSRealm java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.trufflenode.info.Value java.util.Iterator java.lang.Object java.lang.Object int
      StackMap stack:
            aload 9 /* name */
            instanceof com.oracle.truffle.api.object.HiddenKey
            ifeq 34
        31: .line 1810
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.hasPropertyHandler:()Z
            ifne 38
        32: .line 1811
            aload 6 /* obj */
            aload 9 /* name */
            aload 10 /* processedValue */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
        33: .line 1813
            goto 38
      StackMap locals:
      StackMap stack:
        34: aload 6 /* obj */
            aload 9 /* name */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ifeq 37
        35: .line 1814
            aload 6 /* obj */
            aload 9 /* name */
            aload 10 /* processedValue */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        36: .line 1815
            goto 38
        37: .line 1816
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            aload 6 /* obj */
            aload 9 /* name */
            aload 10 /* processedValue */
            iload 11 /* attributes */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
        end local 11 // int attributes
        end local 10 // java.lang.Object processedValue
        end local 9 // java.lang.Object name
        end local 7 // com.oracle.truffle.trufflenode.info.Value value
        38: .line 1792
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess com.oracle.truffle.js.runtime.JSRealm java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.api.object.DynamicObject top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        39: .line 1820
            return
        end local 6 // com.oracle.truffle.api.object.DynamicObject obj
        end local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        end local 4 // com.oracle.truffle.js.runtime.JSContext context
        end local 3 // java.lang.Object targetObject
        end local 2 // java.lang.Object templateObj
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   40     0               this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   40     1              realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0   40     2        templateObj  Ljava/lang/Object;
            0   40     3       targetObject  Ljava/lang/Object;
            1   40     4            context  Lcom/oracle/truffle/js/runtime/JSContext;
            2   40     5           template  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            3   40     6                obj  Lcom/oracle/truffle/api/object/DynamicObject;
            5    9     7           accessor  Lcom/oracle/truffle/trufflenode/info/Accessor;
            6    9     9  accessorFunctions  Lcom/oracle/truffle/js/runtime/util/Pair<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;>;
            7    9    10             getter  Lcom/oracle/truffle/api/object/DynamicObject;
            8    9    11             setter  Lcom/oracle/truffle/api/object/DynamicObject;
           12   38     7              value  Lcom/oracle/truffle/trufflenode/info/Value;
           13   38     9               name  Ljava/lang/Object;
           14   38    10     processedValue  Ljava/lang/Object;
           15   38    11         attributes  I
           17   18    12      functionTempl  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
           20   29    12               pair  Lcom/oracle/truffle/js/runtime/util/Pair<**>;
           21   29    13     getterTemplate  Ljava/lang/Object;
           22   29    14     setterTemplate  Ljava/lang/Object;
           25   29    15             getter  Ljava/lang/Object;
           28   29    16             setter  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      realm         
      templateObj   
      targetObject  

  public void objectTemplateSetAccessor(java.lang.Object, java.lang.Object, long, long, java.lang.Object, java.lang.Object, int);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;JJLjava/lang/Object;Ljava/lang/Object;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=11, args_size=8
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
        start local 2 // java.lang.Object name
        start local 3 // long getterPtr
        start local 5 // long setterPtr
        start local 7 // java.lang.Object data
        start local 8 // java.lang.Object signature
        start local 9 // int attributes
         0: .line 1823
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.ObjectTemplate
            astore 10 /* template */
        start local 10 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
         1: .line 1824
            aload 10 /* template */
            new com.oracle.truffle.trufflenode.info.Accessor
            dup
            aload 0 /* this */
            aload 2 /* name */
            lload 3 /* getterPtr */
            lload 5 /* setterPtr */
            aload 7 /* data */
            aload 8 /* signature */
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            iload 9 /* attributes */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.propertyAttributes:(I)I
            invokespecial com.oracle.truffle.trufflenode.info.Accessor.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Ljava/lang/Object;JJLjava/lang/Object;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;I)V
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.addAccessor:(Lcom/oracle/truffle/trufflenode/info/Accessor;)V
         2: .line 1825
            return
        end local 10 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        end local 9 // int attributes
        end local 8 // java.lang.Object signature
        end local 7 // java.lang.Object data
        end local 5 // long setterPtr
        end local 3 // long getterPtr
        end local 2 // java.lang.Object name
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  templateObj  Ljava/lang/Object;
            0    3     2         name  Ljava/lang/Object;
            0    3     3    getterPtr  J
            0    3     5    setterPtr  J
            0    3     7         data  Ljava/lang/Object;
            0    3     8    signature  Ljava/lang/Object;
            0    3     9   attributes  I
            1    3    10     template  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
    MethodParameters:
             Name  Flags
      templateObj  
      name         
      getterPtr    
      setterPtr    
      data         
      signature    
      attributes   

  public void objectTemplateSetHandler(java.lang.Object, long, long, long, long, long, long, long, java.lang.Object, boolean, boolean);
    descriptor: (Ljava/lang/Object;JJJJJJJLjava/lang/Object;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=17, locals=21, args_size=12
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
        start local 2 // long getter
        start local 4 // long setter
        start local 6 // long query
        start local 8 // long deleter
        start local 10 // long enumerator
        start local 12 // long definer
        start local 14 // long descriptor
        start local 16 // java.lang.Object data
        start local 17 // boolean named
        start local 18 // boolean stringKeysOnly
         0: .line 1829
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.ObjectTemplate
            astore 19 /* template */
        start local 19 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
         1: .line 1830
            new com.oracle.truffle.trufflenode.info.PropertyHandler
            dup
            lload 2 /* getter */
            lload 4 /* setter */
            lload 6 /* query */
            lload 8 /* deleter */
            lload 10 /* enumerator */
            lload 12 /* definer */
            lload 14 /* descriptor */
            aload 16 /* data */
            invokespecial com.oracle.truffle.trufflenode.info.PropertyHandler.<init>:(JJJJJJJLjava/lang/Object;)V
            astore 20 /* handler */
        start local 20 // com.oracle.truffle.trufflenode.info.PropertyHandler handler
         2: .line 1831
            iload 17 /* named */
            ifeq 5
         3: .line 1832
            aload 19 /* template */
            aload 20 /* handler */
            iload 18 /* stringKeysOnly */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.setNamedPropertyHandler:(Lcom/oracle/truffle/trufflenode/info/PropertyHandler;Z)V
         4: .line 1833
            goto 6
         5: .line 1834
      StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate com.oracle.truffle.trufflenode.info.PropertyHandler
      StackMap stack:
            aload 19 /* template */
            aload 20 /* handler */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.setIndexedPropertyHandler:(Lcom/oracle/truffle/trufflenode/info/PropertyHandler;)V
         6: .line 1836
      StackMap locals:
      StackMap stack:
            return
        end local 20 // com.oracle.truffle.trufflenode.info.PropertyHandler handler
        end local 19 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        end local 18 // boolean stringKeysOnly
        end local 17 // boolean named
        end local 16 // java.lang.Object data
        end local 14 // long descriptor
        end local 12 // long definer
        end local 10 // long enumerator
        end local 8 // long deleter
        end local 6 // long query
        end local 4 // long setter
        end local 2 // long getter
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    7     1     templateObj  Ljava/lang/Object;
            0    7     2          getter  J
            0    7     4          setter  J
            0    7     6           query  J
            0    7     8         deleter  J
            0    7    10      enumerator  J
            0    7    12         definer  J
            0    7    14      descriptor  J
            0    7    16            data  Ljava/lang/Object;
            0    7    17           named  Z
            0    7    18  stringKeysOnly  Z
            1    7    19        template  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            2    7    20         handler  Lcom/oracle/truffle/trufflenode/info/PropertyHandler;
    MethodParameters:
                Name  Flags
      templateObj     
      getter          
      setter          
      query           
      deleter         
      enumerator      
      definer         
      descriptor      
      data            
      named           
      stringKeysOnly  

  public void objectTemplateSetCallAsFunctionHandler(java.lang.Object, int, long, java.lang.Object);
    descriptor: (Ljava/lang/Object;IJLjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=8, args_size=5
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
        start local 2 // int id
        start local 3 // long functionPointer
        start local 5 // java.lang.Object additionalData
         0: .line 1839
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.ObjectTemplate
            astore 6 /* template */
        start local 6 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
         1: .line 1840
            aload 0 /* this */
            iload 2 /* id */
            lload 3 /* functionPointer */
            aload 5 /* additionalData */
            aconst_null
            iconst_0
            iconst_1
            iconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.functionTemplateNew:(IJLjava/lang/Object;Ljava/lang/Object;IZZ)Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            astore 7 /* functionHandler */
        start local 7 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionHandler
         2: .line 1841
            aload 6 /* template */
            aload 7 /* functionHandler */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.setFunctionHandler:(Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;)V
         3: .line 1842
            return
        end local 7 // com.oracle.truffle.trufflenode.info.FunctionTemplate functionHandler
        end local 6 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        end local 5 // java.lang.Object additionalData
        end local 3 // long functionPointer
        end local 2 // int id
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1      templateObj  Ljava/lang/Object;
            0    4     2               id  I
            0    4     3  functionPointer  J
            0    4     5   additionalData  Ljava/lang/Object;
            1    4     6         template  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            2    4     7  functionHandler  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    MethodParameters:
                 Name  Flags
      templateObj      
      id               
      functionPointer  
      additionalData   

  public java.lang.Object scriptCompilerCompileFunctionInContext(java.lang.Object, java.lang.String, java.lang.String, java.lang.Object[], java.lang.Object[], java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=23, args_size=7
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.String sourceName
        start local 3 // java.lang.String body
        start local 4 // java.lang.Object[] arguments
        start local 5 // java.lang.Object[] exts
        start local 6 // java.lang.Object hostDefinedOptions
         0: .line 1845
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.VERBOSE:Z
            ifeq 2
         1: .line 1846
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "FUNCTION IN CONTEXT: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* sourceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 1848
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            astore 7 /* realm */
        start local 7 // com.oracle.truffle.js.runtime.JSRealm realm
         3: .line 1849
            aload 7 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 8 /* jsContext */
        start local 8 // com.oracle.truffle.js.runtime.JSContext jsContext
         4: .line 1850
            aload 8 /* jsContext */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            astore 9 /* nodeEvaluator */
        start local 9 // com.oracle.truffle.js.runtime.Evaluator nodeEvaluator
         5: .line 1851
            aload 0 /* this */
            aload 2 /* sourceName */
            aload 8 /* jsContext */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.getExtraArgumentOfInternalScript:(Ljava/lang/String;Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/Object;
            astore 10 /* extraArgument */
        start local 10 // java.lang.Object extraArgument
         6: .line 1853
            aconst_null
            astore 12 /* snapshot */
        start local 12 // java.nio.ByteBuffer snapshot
         7: .line 1854
            aload 10 /* extraArgument */
            ifnonnull 14
         8: .line 1855
            aload 5 /* exts */
            astore 11 /* extensions */
        start local 11 // java.lang.Object[] extensions
         9: .line 1856
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.USE_SNAPSHOTS:Z
            ifeq 18
            aload 6 /* hostDefinedOptions */
            ifnonnull 18
        10: .line 1857
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 12
            aload 5 /* exts */
            arraylength
            ifne 11
            aload 2 /* sourceName */
            invokestatic com.oracle.truffle.trufflenode.info.UnboundScript.isCoreModule:(Ljava/lang/String;)Z
            ifne 12
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.String java.lang.String java.lang.Object[] java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.Evaluator java.lang.Object java.lang.Object[] java.nio.ByteBuffer
      StackMap stack:
        11: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 1858
      StackMap locals:
      StackMap stack:
            aload 2 /* sourceName */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.getCoreModuleBinarySnapshot:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            astore 12 /* snapshot */
        13: .line 1860
            goto 18
        end local 11 // java.lang.Object[] extensions
        14: .line 1861
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.String java.lang.String java.lang.Object[] java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.Evaluator java.lang.Object top java.nio.ByteBuffer
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 15
            aload 5 /* exts */
            arraylength
            ifeq 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 1862
      StackMap locals:
      StackMap stack:
            aload 8 /* jsContext */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 13 /* graalExtension */
        start local 13 // com.oracle.truffle.api.object.DynamicObject graalExtension
        16: .line 1863
            aload 13 /* graalExtension */
            ldc "graalExtension"
            aload 10 /* extraArgument */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        17: .line 1864
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* graalExtension */
            aastore
            astore 11 /* extensions */
        end local 13 // com.oracle.truffle.api.object.DynamicObject graalExtension
        start local 11 // java.lang.Object[] extensions
        18: .line 1867
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.String java.lang.String java.lang.Object[] java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.Evaluator java.lang.Object java.lang.Object[] java.nio.ByteBuffer
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 13 /* params */
        start local 13 // java.lang.StringBuilder params
        19: .line 1868
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        20: goto 25
        21: .line 1869
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 14 /* i */
            ifeq 23
        22: .line 1870
            aload 13 /* params */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 1872
      StackMap locals:
      StackMap stack:
            aload 13 /* params */
            aload 4 /* arguments */
            iload 14 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        24: .line 1868
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 14 /* i */
            aload 4 /* arguments */
            arraylength
            if_icmplt 21
        end local 14 // int i
        26: .line 1874
            aload 13 /* params */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* parameterList */
        start local 14 // java.lang.String parameterList
        27: .line 1877
            aload 8 /* jsContext */
            aload 8 /* jsContext */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getParserOptions:()Lcom/oracle/truffle/js/runtime/JSParserOptions;
            aload 14 /* parameterList */
            aload 3 /* body */
            iconst_0
            iconst_0
            aload 2 /* sourceName */
            invokestatic com.oracle.truffle.js.parser.GraalJSParserHelper.checkFunctionSyntax:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSParserOptions;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;)V
        28: .line 1878
            goto 31
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.String java.lang.String java.lang.Object[] java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.Evaluator java.lang.Object java.lang.Object[] java.nio.ByteBuffer java.lang.StringBuilder java.lang.String
      StackMap stack: com.oracle.js.parser.ParserException
        29: pop
        30: .line 1880
            aload 9 /* nodeEvaluator */
            aload 8 /* jsContext */
            aload 14 /* parameterList */
            aload 3 /* body */
            iconst_0
            iconst_0
            aload 2 /* sourceName */
            invokeinterface com.oracle.truffle.js.runtime.Evaluator.parseFunction:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            pop
        31: .line 1883
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 15 /* code */
        start local 15 // java.lang.StringBuilder code
        32: .line 1885
            aload 11 /* extensions */
            arraylength
            ifle 33
            iconst_1
            goto 34
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: istore 16 /* anyExtension */
        start local 16 // boolean anyExtension
        35: .line 1886
            iload 16 /* anyExtension */
            ifeq 43
        36: .line 1887
            aload 15 /* code */
            ldc "(function () {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        37: .line 1889
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        38: goto 41
        39: .line 1890
      StackMap locals: int int
      StackMap stack:
            aload 15 /* code */
            ldc "with (arguments["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 17 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]) {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        40: .line 1889
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        41: iload 17 /* i */
            aload 11 /* extensions */
            arraylength
            if_icmplt 39
        end local 17 // int i
        42: .line 1893
            aload 15 /* code */
            ldc "return "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        43: .line 1896
      StackMap locals:
      StackMap stack:
            aload 15 /* code */
            ldc "(function ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        44: .line 1897
            aload 15 /* code */
            aload 14 /* parameterList */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        45: .line 1898
            aload 15 /* code */
            ldc ") {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        46: .line 1901
            aload 3 /* body */
            ldc "#!"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 48
        47: .line 1902
            aload 15 /* code */
            ldc "//"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        48: .line 1905
      StackMap locals:
      StackMap stack:
            aload 15 /* code */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 17 /* prefix */
        start local 17 // java.lang.String prefix
        49: .line 1907
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 15 /* code */
        50: .line 1908
            aload 15 /* code */
            ldc "\n});"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        51: .line 1910
            iload 16 /* anyExtension */
            ifeq 58
        52: .line 1911
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        53: goto 56
        54: .line 1912
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 15 /* code */
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        55: .line 1911
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        56: iload 18 /* i */
            aload 11 /* extensions */
            arraylength
            if_icmplt 54
        end local 18 // int i
        57: .line 1915
            aload 15 /* code */
            ldc ";})"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        58: .line 1918
      StackMap locals:
      StackMap stack:
            aload 15 /* code */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 18 /* suffix */
        start local 18 // java.lang.String suffix
        59: .line 1920
            aconst_null
            astore 19 /* source */
        start local 19 // com.oracle.truffle.api.source.Source source
        60: .line 1921
            aload 6 /* hostDefinedOptions */
            ifnonnull 63
        61: .line 1923
            ldc "js"
            aload 3 /* body */
            aload 2 /* sourceName */
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            aload 2 /* sourceName */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.isBootstrapSource:(Ljava/lang/String;)Z
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.internal:(Z)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            astore 19 /* source */
        62: .line 1924
            goto 73
        63: .line 1925
      StackMap locals: java.lang.String com.oracle.truffle.api.source.Source
      StackMap stack:
            aload 2 /* sourceName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 70
        64: .line 1927
            aload 7 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 2 /* sourceName */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 20 /* truffleFile */
        start local 20 // com.oracle.truffle.api.TruffleFile truffleFile
        65: .line 1928
            ldc "js"
            aload 20 /* truffleFile */
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/source/Source$SourceBuilder;
            aload 3 /* body */
            invokevirtual com.oracle.truffle.api.source.Source$SourceBuilder.content:(Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            aload 2 /* sourceName */
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.name:(Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            astore 19 /* source */
        end local 20 // com.oracle.truffle.api.TruffleFile truffleFile
        66: .line 1929
            goto 70
      StackMap locals:
      StackMap stack: java.nio.file.InvalidPathException
        67: pop
        68: .line 1930
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.VERBOSE:Z
            ifeq 70
        69: .line 1931
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "INVALID PATH: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* sourceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        70: .line 1935
      StackMap locals:
      StackMap stack:
            aload 19 /* source */
            ifnonnull 72
        71: .line 1936
            ldc "js"
            aload 3 /* body */
            aload 2 /* sourceName */
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            astore 19 /* source */
        72: .line 1938
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.hostDefinedOptionsMap:Ljava/util/Map;
            aload 19 /* source */
            aload 6 /* hostDefinedOptions */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        73: .line 1942
      StackMap locals:
      StackMap stack:
            aload 12 /* snapshot */
            ifnonnull 80
        74: .line 1943
            aload 9 /* nodeEvaluator */
            aload 8 /* jsContext */
            aload 19 /* source */
            aload 17 /* prefix */
            aload 18 /* suffix */
            invokeinterface com.oracle.truffle.js.runtime.Evaluator.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 21 /* scriptNode */
        start local 21 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        75: .line 1944
            aload 21 /* scriptNode */
            aload 7 /* realm */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.run:(Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 22 /* fn */
        start local 22 // com.oracle.truffle.api.object.DynamicObject fn
        76: .line 1945
            iload 16 /* anyExtension */
            ifeq 77
            aload 22 /* fn */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aload 11 /* extensions */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.call:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            goto 78
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.String java.lang.String java.lang.Object[] java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.Evaluator java.lang.Object java.lang.Object[] java.nio.ByteBuffer java.lang.StringBuilder java.lang.String java.lang.StringBuilder int java.lang.String java.lang.String com.oracle.truffle.api.source.Source top com.oracle.truffle.js.nodes.ScriptNode com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
        77: aload 22 /* fn */
      StackMap locals:
      StackMap stack: java.lang.Object
        78: astore 20 /* function */
        end local 22 // com.oracle.truffle.api.object.DynamicObject fn
        end local 21 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        start local 20 // java.lang.Object function
        79: .line 1946
            goto 82
        end local 20 // java.lang.Object function
        80: .line 1947
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.String java.lang.String java.lang.Object[] java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.Evaluator java.lang.Object java.lang.Object[] java.nio.ByteBuffer java.lang.StringBuilder java.lang.String java.lang.StringBuilder int java.lang.String java.lang.String com.oracle.truffle.api.source.Source
      StackMap stack:
            aload 0 /* this */
            aload 8 /* jsContext */
            aload 19 /* source */
            aload 17 /* prefix */
            aload 18 /* suffix */
            aload 12 /* snapshot */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.parseScriptFromSnapshot:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/lang/String;Ljava/lang/String;Ljava/nio/ByteBuffer;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 21 /* scriptNode */
        start local 21 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        81: .line 1948
            aload 21 /* scriptNode */
            aload 7 /* realm */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.run:(Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            astore 20 /* function */
        end local 21 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        start local 20 // java.lang.Object function
        82: .line 1950
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 83
            aload 20 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 83
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        83: .line 1952
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule
            dup
            aload 8 /* jsContext */
            aload 19 /* source */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;)V
            astore 21 /* scriptOrModule */
        start local 21 // com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule scriptOrModule
        84: .line 1954
            aload 20 /* function */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule.SCRIPT_OR_MODULE:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 21 /* scriptOrModule */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
        85: .line 1956
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 20 /* function */
            aastore
            dup
            iconst_1
            aload 21 /* scriptOrModule */
            aastore
            areturn
        end local 21 // com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule scriptOrModule
        end local 20 // java.lang.Object function
        end local 19 // com.oracle.truffle.api.source.Source source
        end local 18 // java.lang.String suffix
        end local 17 // java.lang.String prefix
        end local 16 // boolean anyExtension
        end local 15 // java.lang.StringBuilder code
        end local 14 // java.lang.String parameterList
        end local 13 // java.lang.StringBuilder params
        end local 12 // java.nio.ByteBuffer snapshot
        end local 11 // java.lang.Object[] extensions
        end local 10 // java.lang.Object extraArgument
        end local 9 // com.oracle.truffle.js.runtime.Evaluator nodeEvaluator
        end local 8 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 7 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 6 // java.lang.Object hostDefinedOptions
        end local 5 // java.lang.Object[] exts
        end local 4 // java.lang.Object[] arguments
        end local 3 // java.lang.String body
        end local 2 // java.lang.String sourceName
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   86     0                this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   86     1             context  Ljava/lang/Object;
            0   86     2          sourceName  Ljava/lang/String;
            0   86     3                body  Ljava/lang/String;
            0   86     4           arguments  [Ljava/lang/Object;
            0   86     5                exts  [Ljava/lang/Object;
            0   86     6  hostDefinedOptions  Ljava/lang/Object;
            3   86     7               realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            4   86     8           jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
            5   86     9       nodeEvaluator  Lcom/oracle/truffle/js/runtime/Evaluator;
            6   86    10       extraArgument  Ljava/lang/Object;
            9   14    11          extensions  [Ljava/lang/Object;
           18   86    11          extensions  [Ljava/lang/Object;
            7   86    12            snapshot  Ljava/nio/ByteBuffer;
           16   18    13      graalExtension  Lcom/oracle/truffle/api/object/DynamicObject;
           19   86    13              params  Ljava/lang/StringBuilder;
           20   26    14                   i  I
           27   86    14       parameterList  Ljava/lang/String;
           32   86    15                code  Ljava/lang/StringBuilder;
           35   86    16        anyExtension  Z
           38   42    17                   i  I
           49   86    17              prefix  Ljava/lang/String;
           53   57    18                   i  I
           59   86    18              suffix  Ljava/lang/String;
           60   86    19              source  Lcom/oracle/truffle/api/source/Source;
           65   66    20         truffleFile  Lcom/oracle/truffle/api/TruffleFile;
           79   80    20            function  Ljava/lang/Object;
           82   86    20            function  Ljava/lang/Object;
           75   79    21          scriptNode  Lcom/oracle/truffle/js/nodes/ScriptNode;
           76   79    22                  fn  Lcom/oracle/truffle/api/object/DynamicObject;
           81   82    21          scriptNode  Lcom/oracle/truffle/js/nodes/ScriptNode;
           84   86    21      scriptOrModule  Lcom/oracle/truffle/trufflenode/GraalJSAccess$NodeScriptOrModule;
      Exception table:
        from    to  target  type
          27    28      29  Class com.oracle.js.parser.ParserException
          64    66      67  Class java.nio.file.InvalidPathException
    MethodParameters:
                    Name  Flags
      context             
      sourceName          
      body                
      arguments           
      exts                
      hostDefinedOptions  

  private static boolean isBootstrapSource(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String sourceName
         0: .line 1960
            aload 0 /* sourceName */
            ldc "internal/per_context"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 1
            aload 0 /* sourceName */
            ldc "internal/bootstrap"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.lang.String sourceName
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  sourceName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      sourceName  

  public java.lang.Object scriptCompile(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object sourceCode
        start local 3 // java.lang.Object fileName
        start local 4 // java.lang.Object hostDefinedOptions
         0: .line 1964
            aload 0 /* this */
            aload 2 /* sourceCode */
            aload 3 /* fileName */
            aload 4 /* hostDefinedOptions */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.unboundScriptCompile:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.info.UnboundScript
            astore 5 /* unboundScript */
        start local 5 // com.oracle.truffle.trufflenode.info.UnboundScript unboundScript
         1: .line 1965
            aload 0 /* this */
            aload 1 /* context */
            aload 5 /* unboundScript */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.unboundScriptBindToContext:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // com.oracle.truffle.trufflenode.info.UnboundScript unboundScript
        end local 4 // java.lang.Object hostDefinedOptions
        end local 3 // java.lang.Object fileName
        end local 2 // java.lang.Object sourceCode
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1             context  Ljava/lang/Object;
            0    2     2          sourceCode  Ljava/lang/Object;
            0    2     3            fileName  Ljava/lang/Object;
            0    2     4  hostDefinedOptions  Ljava/lang/Object;
            1    2     5       unboundScript  Lcom/oracle/truffle/trufflenode/info/UnboundScript;
    MethodParameters:
                    Name  Flags
      context             
      sourceCode          
      fileName            
      hostDefinedOptions  

  public java.lang.Object scriptRun(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object script
         0: .line 1970
            aload 1 /* script */
            checkcast com.oracle.truffle.trufflenode.info.Script
            astore 2 /* boundScript */
        start local 2 // com.oracle.truffle.trufflenode.info.Script boundScript
         1: .line 1971
            aload 2 /* boundScript */
            invokevirtual com.oracle.truffle.trufflenode.info.Script.getScriptNode:()Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 3 /* scriptNode */
        start local 3 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
         2: .line 1972
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.VERBOSE:Z
            ifeq 5
         3: .line 1973
            aload 3 /* scriptNode */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 4 /* source */
        start local 4 // com.oracle.truffle.api.source.Source source
         4: .line 1974
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "EXECUTING: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // com.oracle.truffle.api.source.Source source
         5: .line 1976
      StackMap locals: com.oracle.truffle.trufflenode.info.Script com.oracle.truffle.js.nodes.ScriptNode
      StackMap stack:
            aload 2 /* boundScript */
            invokevirtual com.oracle.truffle.trufflenode.info.Script.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 4 /* realm */
        start local 4 // com.oracle.truffle.js.runtime.JSRealm realm
         6: .line 1977
            aload 3 /* scriptNode */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.argumentsToRun:(Lcom/oracle/truffle/js/runtime/JSRealm;)[Ljava/lang/Object;
            astore 5 /* arguments */
        start local 5 // java.lang.Object[] arguments
         7: .line 1978
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleContext.enter:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 6 /* prev */
        start local 6 // java.lang.Object prev
         8: .line 1981
            aload 2 /* boundScript */
            invokevirtual com.oracle.truffle.trufflenode.info.Script.isGraalInternal:()Z
            ifeq 11
         9: .line 1982
            aload 0 /* this */
            aload 3 /* scriptNode */
            aload 5 /* arguments */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.scriptRunInternal:(Lcom/oracle/truffle/js/nodes/ScriptNode;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* result */
        start local 7 // java.lang.Object result
        10: .line 1983
            goto 12
        end local 7 // java.lang.Object result
        11: .line 1984
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm java.lang.Object[] java.lang.Object
      StackMap stack:
            aload 3 /* scriptNode */
            aload 5 /* arguments */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.run:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* result */
        start local 7 // java.lang.Object result
        12: .line 1986
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 7 /* result */
            astore 9
        13: .line 1988
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            aload 6 /* prev */
            invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
        14: .line 1986
            aload 9
            areturn
        end local 7 // java.lang.Object result
        15: .line 1987
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object com.oracle.truffle.trufflenode.info.Script com.oracle.truffle.js.nodes.ScriptNode com.oracle.truffle.js.runtime.JSRealm java.lang.Object[] java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 8
        16: .line 1988
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            aload 6 /* prev */
            invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
        17: .line 1989
            aload 8
            athrow
        end local 6 // java.lang.Object prev
        end local 5 // java.lang.Object[] arguments
        end local 4 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 3 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        end local 2 // com.oracle.truffle.trufflenode.info.Script boundScript
        end local 1 // java.lang.Object script
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   18     1       script  Ljava/lang/Object;
            1   18     2  boundScript  Lcom/oracle/truffle/trufflenode/info/Script;
            2   18     3   scriptNode  Lcom/oracle/truffle/js/nodes/ScriptNode;
            4    5     4       source  Lcom/oracle/truffle/api/source/Source;
            6   18     4        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            7   18     5    arguments  [Ljava/lang/Object;
            8   18     6         prev  Ljava/lang/Object;
           10   11     7       result  Ljava/lang/Object;
           12   15     7       result  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           8    13      15  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      script  

  private java.lang.Object scriptRunInternal(com.oracle.truffle.js.nodes.ScriptNode, java.lang.Object[]);
    descriptor: (Lcom/oracle/truffle/js/nodes/ScriptNode;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        start local 2 // java.lang.Object[] arguments
         0: .line 1994
            aload 1 /* scriptNode */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
         1: .line 1995
            aload 3 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 4 /* realm */
        start local 4 // com.oracle.truffle.js.runtime.JSRealm realm
         2: .line 1996
            aload 1 /* scriptNode */
            aload 2 /* arguments */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.run:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 5 /* moduleFunction */
        start local 5 // com.oracle.truffle.api.object.DynamicObject moduleFunction
         3: .line 1998
            new com.oracle.truffle.trufflenode.GraalJSAccess$1
            dup
            aload 0 /* this */
            aload 5 /* moduleFunction */
            aload 1 /* scriptNode */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$1.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/ScriptNode;)V
            astore 6 /* wrapperNode */
        start local 6 // com.oracle.truffle.js.runtime.JavaScriptRootNode wrapperNode
         4: .line 2007
            aload 3 /* context */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 6 /* wrapperNode */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            iconst_5
            ldc ""
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 7 /* functionData */
        start local 7 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         5: .line 2008
            aload 4 /* realm */
            aload 7 /* functionData */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 7 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 6 // com.oracle.truffle.js.runtime.JavaScriptRootNode wrapperNode
        end local 5 // com.oracle.truffle.api.object.DynamicObject moduleFunction
        end local 4 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        end local 2 // java.lang.Object[] arguments
        end local 1 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1      scriptNode  Lcom/oracle/truffle/js/nodes/ScriptNode;
            0    6     2       arguments  [Ljava/lang/Object;
            1    6     3         context  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     4           realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            3    6     5  moduleFunction  Lcom/oracle/truffle/api/object/DynamicObject;
            4    6     6     wrapperNode  Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
            5    6     7    functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
            Name  Flags
      scriptNode  
      arguments   

  private java.lang.Object getExtraArgumentOfInternalScript(java.lang.String, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.String moduleName
        start local 2 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 2012
            aconst_null
            astore 3 /* extraArgument */
        start local 3 // java.lang.Object extraArgument
         1: .line 2013
            ldc "internal/graal/buffer.js"
            aload 1 /* moduleName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         2: .line 2016
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.USE_NIO_BUFFER:Z
            ifeq 3
            aload 2 /* context */
            invokestatic com.oracle.truffle.trufflenode.buffer.NIOBuffer.createInitFunction:(Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/Object;
            goto 4
      StackMap locals: java.lang.Object
      StackMap stack:
         3: getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
      StackMap locals:
      StackMap stack: java.lang.Object
         4: astore 3 /* extraArgument */
         5: .line 2017
            goto 20
      StackMap locals:
      StackMap stack:
         6: ldc "internal/graal/debug.js"
            aload 1 /* moduleName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         7: .line 2018
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 4 /* setBreakPointCallTarget */
        start local 4 // com.oracle.truffle.api.CallTarget setBreakPointCallTarget
         8: .line 2019
            aload 2 /* context */
            aload 4 /* setBreakPointCallTarget */
            iconst_3
            ldc "setBreakPoint"
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 5 /* setBreakPointData */
        start local 5 // com.oracle.truffle.js.runtime.builtins.JSFunctionData setBreakPointData
         9: .line 2020
            aload 2 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            aload 5 /* setBreakPointData */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 6 /* setBreakPoint */
        start local 6 // com.oracle.truffle.api.object.DynamicObject setBreakPoint
        10: .line 2021
            aload 6 /* setBreakPoint */
            astore 3 /* extraArgument */
        end local 6 // com.oracle.truffle.api.object.DynamicObject setBreakPoint
        end local 5 // com.oracle.truffle.js.runtime.builtins.JSFunctionData setBreakPointData
        end local 4 // com.oracle.truffle.api.CallTarget setBreakPointCallTarget
        11: .line 2022
            goto 20
      StackMap locals:
      StackMap stack:
        12: ldc "internal/worker/io.js"
            aload 1 /* moduleName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            ldc "internal/main/worker_thread.js"
            aload 1 /* moduleName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 2024
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* context */
            invokestatic com.oracle.truffle.trufflenode.threading.SharedMemMessagingBindings.createInitFunction:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/Object;
            astore 3 /* extraArgument */
        14: .line 2025
            goto 20
      StackMap locals:
      StackMap stack:
        15: ldc "inspector.js"
            aload 1 /* moduleName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        16: .line 2026
            aload 0 /* this */
            ldc "inspect"
            ldc Lcom/oracle/truffle/api/interop/TruffleObject;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.lookupInstrument:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 4 /* inspector */
        start local 4 // com.oracle.truffle.api.interop.TruffleObject inspector
        17: .line 2027
            aload 4 /* inspector */
            ifnonnull 18
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            goto 19
      StackMap locals: com.oracle.truffle.api.interop.TruffleObject
      StackMap stack:
        18: aload 4 /* inspector */
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.TruffleObject
        19: astore 3 /* extraArgument */
        end local 4 // com.oracle.truffle.api.interop.TruffleObject inspector
        20: .line 2029
      StackMap locals:
      StackMap stack:
            aload 3 /* extraArgument */
            areturn
        end local 3 // java.lang.Object extraArgument
        end local 2 // com.oracle.truffle.js.runtime.JSContext context
        end local 1 // java.lang.String moduleName
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   21     0                     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   21     1               moduleName  Ljava/lang/String;
            0   21     2                  context  Lcom/oracle/truffle/js/runtime/JSContext;
            1   21     3            extraArgument  Ljava/lang/Object;
            8   11     4  setBreakPointCallTarget  Lcom/oracle/truffle/api/CallTarget;
            9   11     5        setBreakPointData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
           10   11     6            setBreakPoint  Lcom/oracle/truffle/api/object/DynamicObject;
           17   20     4                inspector  Lcom/oracle/truffle/api/interop/TruffleObject;
    MethodParameters:
            Name  Flags
      moduleName  
      context     

  private java.lang.Object[] getInternalModuleUserArguments(java.lang.Object[], com.oracle.truffle.js.nodes.ScriptNode);
    descriptor: ([Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/ScriptNode;)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object[] args
        start local 2 // com.oracle.truffle.js.nodes.ScriptNode node
         0: .line 2034
            aload 1 /* args */
            invokestatic com.oracle.truffle.js.runtime.JSArguments.extractUserArguments:([Ljava/lang/Object;)[Ljava/lang/Object;
            astore 3 /* userArgs */
        start local 3 // java.lang.Object[] userArgs
         1: .line 2035
            aload 2 /* node */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            astore 4 /* moduleName */
        start local 4 // java.lang.String moduleName
         2: .line 2036
            aload 0 /* this */
            aload 4 /* moduleName */
            aload 2 /* node */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.getExtraArgumentOfInternalScript:(Ljava/lang/String;Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/Object;
            astore 5 /* extraArgument */
        start local 5 // java.lang.Object extraArgument
         3: .line 2037
            aload 5 /* extraArgument */
            ifnonnull 5
         4: .line 2038
            aload 3 /* userArgs */
            areturn
         5: .line 2040
      StackMap locals: java.lang.Object[] java.lang.String java.lang.Object
      StackMap stack:
            aload 3 /* userArgs */
            arraylength
            iconst_1
            iadd
            anewarray java.lang.Object
            astore 6 /* extendedArgs */
        start local 6 // java.lang.Object[] extendedArgs
         6: .line 2041
            aload 3 /* userArgs */
            iconst_0
            aload 6 /* extendedArgs */
            iconst_0
            aload 3 /* userArgs */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 2042
            aload 6 /* extendedArgs */
            aload 3 /* userArgs */
            arraylength
            aload 5 /* extraArgument */
            aastore
         8: .line 2043
            aload 6 /* extendedArgs */
            areturn
        end local 6 // java.lang.Object[] extendedArgs
        end local 5 // java.lang.Object extraArgument
        end local 4 // java.lang.String moduleName
        end local 3 // java.lang.Object[] userArgs
        end local 2 // com.oracle.truffle.js.nodes.ScriptNode node
        end local 1 // java.lang.Object[] args
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    9     1           args  [Ljava/lang/Object;
            0    9     2           node  Lcom/oracle/truffle/js/nodes/ScriptNode;
            1    9     3       userArgs  [Ljava/lang/Object;
            2    9     4     moduleName  Ljava/lang/String;
            3    9     5  extraArgument  Ljava/lang/Object;
            6    9     6   extendedArgs  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      args  
      node  

  public java.lang.Object scriptGetUnboundScript(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object script
         0: .line 2047
            new com.oracle.truffle.trufflenode.info.UnboundScript
            dup
            aload 1 /* script */
            checkcast com.oracle.truffle.trufflenode.info.Script
            invokespecial com.oracle.truffle.trufflenode.info.UnboundScript.<init>:(Lcom/oracle/truffle/trufflenode/info/Script;)V
            areturn
        end local 1 // java.lang.Object script
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  script  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      script  

  private static com.oracle.js.parser.ir.FunctionNode parseSource(com.oracle.truffle.api.source.Source, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/js/parser/ir/FunctionNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.source.Source source
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 2051
            aload 1 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEmbedderData:()Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.ContextData
            astore 2 /* contextData */
        start local 2 // com.oracle.truffle.trufflenode.ContextData contextData
         1: .line 2052
            aload 0 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 3 /* content */
        start local 3 // java.lang.String content
         2: .line 2053
            aload 2 /* contextData */
            invokevirtual com.oracle.truffle.trufflenode.ContextData.getFunctionNodeCache:()Ljava/util/Map;
            aload 3 /* content */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.FunctionNode
            astore 4 /* parseResult */
        start local 4 // com.oracle.js.parser.ir.FunctionNode parseResult
         3: .line 2054
            aload 4 /* parseResult */
            ifnonnull 6
         4: .line 2055
            aload 1 /* context */
            aload 0 /* source */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getParserOptions:()Lcom/oracle/truffle/js/runtime/JSParserOptions;
            invokestatic com.oracle.truffle.js.parser.GraalJSParserHelper.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/js/runtime/JSParserOptions;)Lcom/oracle/js/parser/ir/FunctionNode;
            astore 4 /* parseResult */
         5: .line 2056
            aload 2 /* contextData */
            invokevirtual com.oracle.truffle.trufflenode.ContextData.getFunctionNodeCache:()Ljava/util/Map;
            aload 3 /* content */
            aload 4 /* parseResult */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 2058
      StackMap locals: com.oracle.truffle.trufflenode.ContextData java.lang.String com.oracle.js.parser.ir.FunctionNode
      StackMap stack:
            aload 4 /* parseResult */
            areturn
        end local 4 // com.oracle.js.parser.ir.FunctionNode parseResult
        end local 3 // java.lang.String content
        end local 2 // com.oracle.truffle.trufflenode.ContextData contextData
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.api.source.Source source
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0       source  Lcom/oracle/truffle/api/source/Source;
            0    7     1      context  Lcom/oracle/truffle/js/runtime/JSContext;
            1    7     2  contextData  Lcom/oracle/truffle/trufflenode/ContextData;
            2    7     3      content  Ljava/lang/String;
            3    7     4  parseResult  Lcom/oracle/js/parser/ir/FunctionNode;
    MethodParameters:
         Name  Flags
      source   
      context  

  public java.lang.Object unboundScriptCompile(java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object sourceCode
        start local 2 // java.lang.Object fileName
        start local 3 // java.lang.Object hostDefinedOptions
         0: .line 2062
            aload 1 /* sourceCode */
            checkcast java.lang.String
            astore 4 /* sourceCodeStr */
        start local 4 // java.lang.String sourceCodeStr
         1: .line 2063
            aload 2 /* fileName */
            checkcast java.lang.String
            astore 5 /* fileNameStr */
        start local 5 // java.lang.String fileNameStr
         2: .line 2064
            aload 0 /* this */
            aload 4 /* sourceCodeStr */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.internSourceCode:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* fileNameStr */
            invokestatic com.oracle.truffle.trufflenode.info.UnboundScript.createSource:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source;
            astore 6 /* source */
        start local 6 // com.oracle.truffle.api.source.Source source
         3: .line 2066
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.hostDefinedOptionsMap:Ljava/util/Map;
            aload 6 /* source */
            aload 3 /* hostDefinedOptions */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 2068
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.USE_SNAPSHOTS:Z
            ifeq 8
            aload 5 /* fileNameStr */
            ifnull 8
            aload 5 /* fileNameStr */
            invokestatic com.oracle.truffle.trufflenode.info.UnboundScript.isCoreModule:(Ljava/lang/String;)Z
            ifeq 8
         5: .line 2069
            aload 5 /* fileNameStr */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.getCoreModuleBinarySnapshot:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            astore 7 /* snapshotBinary */
        start local 7 // java.nio.ByteBuffer snapshotBinary
         6: .line 2070
            aload 7 /* snapshotBinary */
            ifnull 8
         7: .line 2071
            new com.oracle.truffle.trufflenode.info.UnboundScript
            dup
            aload 6 /* source */
            aload 7 /* snapshotBinary */
            invokespecial com.oracle.truffle.trufflenode.info.UnboundScript.<init>:(Lcom/oracle/truffle/api/source/Source;Ljava/lang/Object;)V
            areturn
        end local 7 // java.nio.ByteBuffer snapshotBinary
         8: .line 2076
      StackMap locals: java.lang.String java.lang.String com.oracle.truffle.api.source.Source
      StackMap stack:
            aload 6 /* source */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.parseSource:(Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/js/parser/ir/FunctionNode;
            astore 7 /* functionNode */
        start local 7 // com.oracle.js.parser.ir.FunctionNode functionNode
         9: .line 2078
            new com.oracle.truffle.trufflenode.info.UnboundScript
            dup
            aload 6 /* source */
            aload 7 /* functionNode */
            invokespecial com.oracle.truffle.trufflenode.info.UnboundScript.<init>:(Lcom/oracle/truffle/api/source/Source;Ljava/lang/Object;)V
            areturn
        end local 7 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 6 // com.oracle.truffle.api.source.Source source
        end local 5 // java.lang.String fileNameStr
        end local 4 // java.lang.String sourceCodeStr
        end local 3 // java.lang.Object hostDefinedOptions
        end local 2 // java.lang.Object fileName
        end local 1 // java.lang.Object sourceCode
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   10     0                this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   10     1          sourceCode  Ljava/lang/Object;
            0   10     2            fileName  Ljava/lang/Object;
            0   10     3  hostDefinedOptions  Ljava/lang/Object;
            1   10     4       sourceCodeStr  Ljava/lang/String;
            2   10     5         fileNameStr  Ljava/lang/String;
            3   10     6              source  Lcom/oracle/truffle/api/source/Source;
            6    8     7      snapshotBinary  Ljava/nio/ByteBuffer;
            9   10     7        functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
    MethodParameters:
                    Name  Flags
      sourceCode          
      fileName            
      hostDefinedOptions  

  private static java.nio.ByteBuffer getCoreModuleBinarySnapshot(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/nio/ByteBuffer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String modulePath
         0: .line 2082
            aload 0 /* modulePath */
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.getCoreModuleBinarySnapshot:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            astore 1 /* snapshotBinary */
        start local 1 // java.nio.ByteBuffer snapshotBinary
         1: .line 2083
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.VERBOSE:Z
            ifeq 6
         2: .line 2084
            aload 1 /* snapshotBinary */
            ifnonnull 5
         3: .line 2085
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "no snapshot for %s\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* modulePath */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         4: .line 2086
            goto 6
         5: .line 2087
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "successfully read snapshot for %s\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* modulePath */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         6: .line 2090
      StackMap locals:
      StackMap stack:
            aload 1 /* snapshotBinary */
            areturn
        end local 1 // java.nio.ByteBuffer snapshotBinary
        end local 0 // java.lang.String modulePath
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0      modulePath  Ljava/lang/String;
            1    7     1  snapshotBinary  Ljava/nio/ByteBuffer;
    MethodParameters:
            Name  Flags
      modulePath  

  public java.lang.Object unboundScriptBindToContext(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=14, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object script
         0: .line 2094
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            astore 3 /* jsRealm */
        start local 3 // com.oracle.truffle.js.runtime.JSRealm jsRealm
         1: .line 2095
            aload 3 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* jsContext */
        start local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
         2: .line 2096
            aload 2 /* script */
            checkcast com.oracle.truffle.trufflenode.info.UnboundScript
            astore 5 /* unboundScript */
        start local 5 // com.oracle.truffle.trufflenode.info.UnboundScript unboundScript
         3: .line 2097
            aload 5 /* unboundScript */
            invokevirtual com.oracle.truffle.trufflenode.info.UnboundScript.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 6 /* source */
        start local 6 // com.oracle.truffle.api.source.Source source
         4: .line 2098
            aload 5 /* unboundScript */
            invokevirtual com.oracle.truffle.trufflenode.info.UnboundScript.getParseResult:()Ljava/lang/Object;
            astore 7 /* parseResult */
        start local 7 // java.lang.Object parseResult
         5: .line 2100
            aload 7 /* parseResult */
            instanceof com.oracle.js.parser.ir.FunctionNode
            ifeq 21
         6: .line 2101
            aload 4 /* jsContext */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEmbedderData:()Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.ContextData
            astore 9 /* contextData */
        start local 9 // com.oracle.truffle.trufflenode.ContextData contextData
         7: .line 2102
            aload 9 /* contextData */
            invokevirtual com.oracle.truffle.trufflenode.ContextData.getScriptNodeCache:()Ljava/util/Map;
            aload 6 /* source */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.ScriptNode
            astore 8 /* scriptNode */
        start local 8 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
         8: .line 2103
            aload 8 /* scriptNode */
            ifnonnull 22
         9: .line 2104
            aload 4 /* jsContext */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getParserOptions:()Lcom/oracle/truffle/js/runtime/JSParserOptions;
            astore 10 /* options */
        start local 10 // com.oracle.truffle.js.runtime.JSParserOptions options
        10: .line 2105
            aload 4 /* jsContext */
            invokestatic com.oracle.truffle.js.nodes.NodeFactory.getInstance:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/NodeFactory;
            astore 11 /* factory */
        start local 11 // com.oracle.truffle.js.nodes.NodeFactory factory
        11: .line 2106
            aload 3 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleContext.enter:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 12 /* prev */
        start local 12 // java.lang.Object prev
        12: .line 2108
            aload 11 /* factory */
            aload 4 /* jsContext */
            aconst_null
            aload 6 /* source */
            aload 10 /* options */
            invokevirtual com.oracle.truffle.js.runtime.JSParserOptions.isStrict:()Z
            aload 7 /* parseResult */
            checkcast com.oracle.js.parser.ir.FunctionNode
            invokestatic com.oracle.truffle.js.parser.JavaScriptTranslator.translateFunction:(Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/api/source/Source;ZLcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 8 /* scriptNode */
        13: .line 2109
            goto 17
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.info.UnboundScript com.oracle.truffle.api.source.Source java.lang.Object com.oracle.truffle.js.nodes.ScriptNode com.oracle.truffle.trufflenode.ContextData com.oracle.truffle.js.runtime.JSParserOptions com.oracle.truffle.js.nodes.NodeFactory java.lang.Object
      StackMap stack: java.lang.Throwable
        14: astore 13
        15: .line 2110
            aload 3 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            aload 12 /* prev */
            invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
        16: .line 2111
            aload 13
            athrow
        17: .line 2110
      StackMap locals:
      StackMap stack:
            aload 3 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            aload 12 /* prev */
            invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
        18: .line 2112
            ldc "repl"
            aload 6 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        19: .line 2113
            aload 9 /* contextData */
            invokevirtual com.oracle.truffle.trufflenode.ContextData.getScriptNodeCache:()Ljava/util/Map;
            aload 6 /* source */
            aload 8 /* scriptNode */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 12 // java.lang.Object prev
        end local 11 // com.oracle.truffle.js.nodes.NodeFactory factory
        end local 10 // com.oracle.truffle.js.runtime.JSParserOptions options
        end local 9 // com.oracle.truffle.trufflenode.ContextData contextData
        20: .line 2116
            goto 22
        end local 8 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        21: .line 2117
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.info.UnboundScript com.oracle.truffle.api.source.Source java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 4 /* jsContext */
            aload 6 /* source */
            ldc ""
            ldc ""
            aload 7 /* parseResult */
            checkcast java.nio.ByteBuffer
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.parseScriptFromSnapshot:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/lang/String;Ljava/lang/String;Ljava/nio/ByteBuffer;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 8 /* scriptNode */
        start local 8 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        22: .line 2119
      StackMap locals: com.oracle.truffle.js.nodes.ScriptNode
      StackMap stack:
            new com.oracle.truffle.trufflenode.info.Script
            dup
            aload 8 /* scriptNode */
            aload 7 /* parseResult */
            aload 3 /* jsRealm */
            aload 5 /* unboundScript */
            invokevirtual com.oracle.truffle.trufflenode.info.UnboundScript.getId:()I
            invokespecial com.oracle.truffle.trufflenode.info.Script.<init>:(Lcom/oracle/truffle/js/nodes/ScriptNode;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;I)V
            areturn
        end local 8 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        end local 7 // java.lang.Object parseResult
        end local 6 // com.oracle.truffle.api.source.Source source
        end local 5 // com.oracle.truffle.trufflenode.info.UnboundScript unboundScript
        end local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 3 // com.oracle.truffle.js.runtime.JSRealm jsRealm
        end local 2 // java.lang.Object script
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   23     1        context  Ljava/lang/Object;
            0   23     2         script  Ljava/lang/Object;
            1   23     3        jsRealm  Lcom/oracle/truffle/js/runtime/JSRealm;
            2   23     4      jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
            3   23     5  unboundScript  Lcom/oracle/truffle/trufflenode/info/UnboundScript;
            4   23     6         source  Lcom/oracle/truffle/api/source/Source;
            5   23     7    parseResult  Ljava/lang/Object;
            8   21     8     scriptNode  Lcom/oracle/truffle/js/nodes/ScriptNode;
           22   23     8     scriptNode  Lcom/oracle/truffle/js/nodes/ScriptNode;
            7   20     9    contextData  Lcom/oracle/truffle/trufflenode/ContextData;
           10   20    10        options  Lcom/oracle/truffle/js/runtime/JSParserOptions;
           11   20    11        factory  Lcom/oracle/truffle/js/nodes/NodeFactory;
           12   20    12           prev  Ljava/lang/Object;
      Exception table:
        from    to  target  type
          12    14      14  any
    MethodParameters:
         Name  Flags
      context  
      script   

  public java.lang.String unboundScriptGetContent(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object script
         0: .line 2123
            aload 1 /* script */
            checkcast com.oracle.truffle.trufflenode.info.UnboundScript
            invokevirtual com.oracle.truffle.trufflenode.info.UnboundScript.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object script
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  script  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      script  

  private java.lang.String internSourceCode(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.String sourceCode
         0: .line 2127
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sourceCodeCache:Ljava/util/Map;
            aload 1 /* sourceCode */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ref.Reference
            astore 2 /* cacheEntry */
        start local 2 // java.lang.ref.Reference cacheEntry
         1: .line 2128
            aconst_null
            astore 3 /* entry */
        start local 3 // java.lang.String entry
         2: .line 2129
            aload 2 /* cacheEntry */
            ifnull 3
            aload 2 /* cacheEntry */
            invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
            checkcast java.lang.String
            dup
            astore 3 /* entry */
            ifnonnull 5
         3: .line 2130
      StackMap locals: java.lang.ref.Reference java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sourceCodeCache:Ljava/util/Map;
            aload 1 /* sourceCode */
            new java.lang.ref.WeakReference
            dup
            aload 1 /* sourceCode */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 2131
            aload 1 /* sourceCode */
            areturn
         5: .line 2133
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            areturn
        end local 3 // java.lang.String entry
        end local 2 // java.lang.ref.Reference cacheEntry
        end local 1 // java.lang.String sourceCode
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1  sourceCode  Ljava/lang/String;
            1    6     2  cacheEntry  Ljava/lang/ref/Reference<Ljava/lang/String;>;
            2    6     3       entry  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      sourceCode  

  private com.oracle.truffle.js.nodes.ScriptNode parseScriptFromSnapshot(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.source.Source, java.lang.String, java.lang.String, java.nio.ByteBuffer);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/lang/String;Ljava/lang/String;Ljava/nio/ByteBuffer;)Lcom/oracle/truffle/js/nodes/ScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=6
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.api.source.Source source
        start local 3 // java.lang.String prefix
        start local 4 // java.lang.String suffix
        start local 5 // java.nio.ByteBuffer snapshotBinary
         0: .line 2137
            aload 1 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            checkcast com.oracle.truffle.js.parser.JSParser
            astore 6 /* parser */
        start local 6 // com.oracle.truffle.js.parser.JSParser parser
         1: .line 2139
            aload 6 /* parser */
            aload 1 /* context */
            aload 2 /* source */
            aload 5 /* snapshotBinary */
            invokeinterface com.oracle.truffle.js.parser.JSParser.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/nio/ByteBuffer;)Lcom/oracle/truffle/js/nodes/ScriptNode;
         2: areturn
         3: .line 2140
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.source.Source java.lang.String java.lang.String java.nio.ByteBuffer com.oracle.truffle.js.parser.JSParser
      StackMap stack: java.lang.IllegalArgumentException
            astore 7 /* e */
        start local 7 // java.lang.IllegalArgumentException e
         4: .line 2141
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.VERBOSE:Z
            ifeq 8
         5: .line 2142
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            astore 8 /* moduleName */
        start local 8 // java.lang.String moduleName
         6: .line 2143
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "error when parsing binary snapshot for %s: %s\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* moduleName */
            aastore
            dup
            iconst_1
            aload 7 /* e */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         7: .line 2144
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "falling back to parsing %s at runtime\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* moduleName */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        end local 8 // java.lang.String moduleName
         8: .line 2146
      StackMap locals: java.lang.IllegalArgumentException
      StackMap stack:
            aload 6 /* parser */
            aload 1 /* context */
            aload 2 /* source */
            aload 3 /* prefix */
            aload 4 /* suffix */
            invokeinterface com.oracle.truffle.js.parser.JSParser.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            areturn
        end local 7 // java.lang.IllegalArgumentException e
        end local 6 // com.oracle.truffle.js.parser.JSParser parser
        end local 5 // java.nio.ByteBuffer snapshotBinary
        end local 4 // java.lang.String suffix
        end local 3 // java.lang.String prefix
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    9     1         context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    9     2          source  Lcom/oracle/truffle/api/source/Source;
            0    9     3          prefix  Ljava/lang/String;
            0    9     4          suffix  Ljava/lang/String;
            0    9     5  snapshotBinary  Ljava/nio/ByteBuffer;
            1    9     6          parser  Lcom/oracle/truffle/js/parser/JSParser;
            4    9     7               e  Ljava/lang/IllegalArgumentException;
            6    8     8      moduleName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.IllegalArgumentException
    MethodParameters:
                Name  Flags
      context         
      source          
      prefix          
      suffix          
      snapshotBinary  

  public int unboundScriptGetId(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object script
         0: .line 2151
            aload 1 /* script */
            checkcast com.oracle.truffle.trufflenode.info.UnboundScript
            invokevirtual com.oracle.truffle.trufflenode.info.UnboundScript.getId:()I
            ireturn
        end local 1 // java.lang.Object script
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  script  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      script  

  public java.lang.Object contextGlobal(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object realm
         0: .line 2155
            aload 1 /* realm */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getGlobalObject:()Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 1 // java.lang.Object realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  realm  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      realm  

  private static int propertyAttributes(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int attributes
         0: .line 2159
            iconst_0
            istore 1 /* flags */
        start local 1 // int flags
         1: .line 2160
            iload 0 /* attributes */
            iconst_1
            iand
            ifeq 3
         2: .line 2161
            iload 1 /* flags */
            iconst_4
            ior
            istore 1 /* flags */
         3: .line 2163
      StackMap locals: int
      StackMap stack:
            iload 0 /* attributes */
            iconst_2
            iand
            ifeq 5
         4: .line 2164
            iload 1 /* flags */
            iconst_1
            ior
            istore 1 /* flags */
         5: .line 2166
      StackMap locals:
      StackMap stack:
            iload 0 /* attributes */
            iconst_4
            iand
            ifeq 7
         6: .line 2167
            iload 1 /* flags */
            iconst_2
            ior
            istore 1 /* flags */
         7: .line 2169
      StackMap locals:
      StackMap stack:
            iload 1 /* flags */
            ireturn
        end local 1 // int flags
        end local 0 // int attributes
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0  attributes  I
            1    8     1       flags  I
    MethodParameters:
            Name  Flags
      attributes  

  public static com.oracle.truffle.js.runtime.objects.PropertyDescriptor propertyDescriptor(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // int v8Attributes
        start local 1 // java.lang.Object value
         0: .line 2173
            iload 0 /* v8Attributes */
            iconst_1
            iand
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* writable */
        start local 2 // boolean writable
         3: .line 2174
            iload 0 /* v8Attributes */
            iconst_2
            iand
            ifne 4
            iconst_1
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* enumerable */
        start local 3 // boolean enumerable
         6: .line 2175
            iload 0 /* v8Attributes */
            iconst_4
            iand
            ifne 7
            iconst_1
            goto 8
      StackMap locals: int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 4 /* configurable */
        start local 4 // boolean configurable
         9: .line 2176
            aload 1 /* value */
            iload 3 /* enumerable */
            iload 2 /* writable */
            iload 4 /* configurable */
            invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createData:(Ljava/lang/Object;ZZZ)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            areturn
        end local 4 // boolean configurable
        end local 3 // boolean enumerable
        end local 2 // boolean writable
        end local 1 // java.lang.Object value
        end local 0 // int v8Attributes
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0  v8Attributes  I
            0   10     1         value  Ljava/lang/Object;
            3   10     2      writable  Z
            6   10     3    enumerable  Z
            9   10     4  configurable  Z
    MethodParameters:
              Name  Flags
      v8Attributes  
      value         

  private static com.oracle.truffle.api.object.DynamicObject functionFromRootNode(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.runtime.JavaScriptRootNode, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 2 // com.oracle.truffle.js.runtime.JavaScriptRootNode rootNode
        start local 3 // java.lang.Object holder
         0: .line 2180
            aload 1 /* realm */
            aload 0 /* context */
            aload 2 /* rootNode */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionDataFromRootNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            aload 3 /* holder */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.functionFromFunctionData:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 3 // java.lang.Object holder
        end local 2 // com.oracle.truffle.js.runtime.JavaScriptRootNode rootNode
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     1     realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    1     2  rootNode  Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
            0    1     3    holder  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      context   
      realm     
      rootNode  
      holder    

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData functionDataFromRootNode(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JavaScriptRootNode);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.js.runtime.JavaScriptRootNode rootNode
         0: .line 2184
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 1 /* rootNode */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 2 /* callbackCallTarget */
        start local 2 // com.oracle.truffle.api.CallTarget callbackCallTarget
         1: .line 2185
            aload 0 /* context */
            aload 2 /* callbackCallTarget */
            aload 2 /* callbackCallTarget */
            iconst_0
            ldc ""
            iconst_0
            iconst_0
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;ZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 2 // com.oracle.truffle.api.CallTarget callbackCallTarget
        end local 1 // com.oracle.truffle.js.runtime.JavaScriptRootNode rootNode
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0             context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    2     1            rootNode  Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
            1    2     2  callbackCallTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
          Name  Flags
      context   
      rootNode  

  private static com.oracle.truffle.api.object.DynamicObject functionFromFunctionData(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.runtime.builtins.JSFunctionData, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 2 // java.lang.Object holder
         0: .line 2189
            aload 1 /* functionData */
            ifnonnull 2
         1: .line 2190
            aconst_null
            areturn
         2: .line 2192
      StackMap locals:
      StackMap stack:
            aload 0 /* realm */
            aload 1 /* functionData */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* function */
        start local 3 // com.oracle.truffle.api.object.DynamicObject function
         3: .line 2193
            aload 2 /* holder */
            ifnull 5
         4: .line 2194
            aload 3 /* function */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.HOLDER_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 2 /* holder */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 2196
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 3 /* function */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.preventExtensions:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            pop
         6: .line 2197
            aload 3 /* function */
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject function
        end local 2 // java.lang.Object holder
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0         realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    7     1  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    7     2        holder  Ljava/lang/Object;
            3    7     3      function  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
              Name  Flags
      realm         
      functionData  
      holder        

  public java.lang.Object tryCatchException(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object exception
         0: .line 2202
            aload 2 /* exception */
            checkcast java.lang.Throwable
            astore 3 /* throwable */
        start local 3 // java.lang.Throwable throwable
         1: .line 2203
            aload 2 /* exception */
            instanceof com.oracle.truffle.js.runtime.ExitException
            ifeq 5
         2: .line 2204
            aload 2 /* exception */
            checkcast com.oracle.truffle.js.runtime.ExitException
            invokevirtual com.oracle.truffle.js.runtime.ExitException.getStatus:()I
            istore 4 /* exitCode */
        start local 4 // int exitCode
         3: .line 2205
            aload 0 /* this */
            iload 4 /* exitCode */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exit:(I)V
        end local 4 // int exitCode
         4: .line 2206
            goto 8
      StackMap locals: java.lang.Throwable
      StackMap stack:
         5: aload 3 /* throwable */
            instanceof java.lang.OutOfMemoryError
            ifeq 8
         6: .line 2207
            aload 3 /* throwable */
            invokevirtual java.lang.Throwable.printStackTrace:()V
         7: .line 2208
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exit:(I)V
         8: .line 2210
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            astore 4 /* jsRealm */
        start local 4 // com.oracle.truffle.js.runtime.JSRealm jsRealm
         9: .line 2211
            aload 4 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 5 /* jsContext */
        start local 5 // com.oracle.truffle.js.runtime.JSContext jsContext
        10: .line 2212
            aload 3 /* throwable */
            instanceof com.oracle.truffle.js.runtime.GraalJSException
            ifne 13
        11: .line 2213
            aload 0 /* this */
            aload 3 /* throwable */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.isolateInternalErrorCheck:(Ljava/lang/Object;)V
        12: .line 2214
            getstatic com.oracle.truffle.js.runtime.JSErrorType.Error:Lcom/oracle/truffle/js/runtime/JSErrorType;
            aload 3 /* throwable */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            aload 3 /* throwable */
            aconst_null
            invokestatic com.oracle.truffle.js.runtime.JSException.create:(Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/String;Ljava/lang/Throwable;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
            astore 3 /* throwable */
        13: .line 2216
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            aload 3 /* throwable */
            checkcast com.oracle.truffle.js.runtime.GraalJSException
            astore 6 /* truffleException */
        start local 6 // com.oracle.truffle.js.runtime.GraalJSException truffleException
        14: .line 2217
            aload 6 /* truffleException */
            aload 5 /* jsContext */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException.getErrorObjectEager:(Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/Object;
            astore 7 /* exceptionObject */
        start local 7 // java.lang.Object exceptionObject
        15: .line 2218
            aload 7 /* exceptionObject */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifeq 17
            aload 7 /* exceptionObject */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSError.getException:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/GraalJSException;
            ifnonnull 17
        16: .line 2219
            aload 7 /* exceptionObject */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.js.runtime.builtins.JSError.EXCEPTION_PROPERTY_NAME:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 6 /* truffleException */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
        17: .line 2222
      StackMap locals: com.oracle.truffle.js.runtime.GraalJSException java.lang.Object
      StackMap stack:
            aload 2 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageSyntaxErrorMatcher:(Ljava/lang/Object;)Ljava/util/regex/Matcher;
            astore 8 /* matcher */
        start local 8 // java.util.regex.Matcher matcher
        18: .line 2223
            aload 8 /* matcher */
            ifnull 24
        19: .line 2224
            aload 7 /* exceptionObject */
            checkcast com.oracle.truffle.api.object.DynamicObject
            ldc "stack"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 9 /* stack */
        start local 9 // java.lang.String stack
        20: .line 2225
            aload 9 /* stack */
            aload 6 /* truffleException */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 24
        21: .line 2226
            aload 8 /* matcher */
            iconst_4
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 10 /* message */
        start local 10 // java.lang.String message
        22: .line 2227
            new java.lang.StringBuilder
            dup
            ldc "SyntaxError: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* stack */
            aload 6 /* truffleException */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* stack */
        23: .line 2228
            aload 7 /* exceptionObject */
            checkcast com.oracle.truffle.api.object.DynamicObject
            ldc "stack"
            aload 9 /* stack */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        end local 10 // java.lang.String message
        end local 9 // java.lang.String stack
        24: .line 2231
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            aload 7 /* exceptionObject */
            areturn
        end local 8 // java.util.regex.Matcher matcher
        end local 7 // java.lang.Object exceptionObject
        end local 6 // com.oracle.truffle.js.runtime.GraalJSException truffleException
        end local 5 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 4 // com.oracle.truffle.js.runtime.JSRealm jsRealm
        end local 3 // java.lang.Throwable throwable
        end local 2 // java.lang.Object exception
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   25     0              this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   25     1           context  Ljava/lang/Object;
            0   25     2         exception  Ljava/lang/Object;
            1   25     3         throwable  Ljava/lang/Throwable;
            3    4     4          exitCode  I
            9   25     4           jsRealm  Lcom/oracle/truffle/js/runtime/JSRealm;
           10   25     5         jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
           14   25     6  truffleException  Lcom/oracle/truffle/js/runtime/GraalJSException;
           15   25     7   exceptionObject  Ljava/lang/Object;
           18   25     8           matcher  Ljava/util/regex/Matcher;
           20   24     9             stack  Ljava/lang/String;
           22   24    10           message  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      context    
      exception  

  public boolean tryCatchHasTerminated(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exception
         0: .line 2236
            aload 1 /* exception */
            instanceof com.oracle.truffle.trufflenode.GraalJSAccess$GraalJSKillException
            ifne 2
            aload 1 /* exception */
            instanceof com.oracle.truffle.api.TruffleException
            ifeq 1
            aload 1 /* exception */
            checkcast com.oracle.truffle.api.TruffleException
            invokeinterface com.oracle.truffle.api.TruffleException.isCancelled:()Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // java.lang.Object exception
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  exception  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      exception  

  private static com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement messageGraalJSExceptionStackFrame(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.lang.Object exception
         0: .line 2240
            aload 0 /* exception */
            instanceof com.oracle.truffle.js.runtime.GraalJSException
            ifeq 10
         1: .line 2241
            aload 0 /* exception */
            checkcast com.oracle.truffle.js.runtime.GraalJSException
            astore 1 /* truffleException */
        start local 1 // com.oracle.truffle.js.runtime.GraalJSException truffleException
         2: .line 2242
            aload 1 /* truffleException */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException.getJSStackTrace:()[Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            astore 2 /* stackTrace */
        start local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement[] stackTrace
         3: .line 2244
            iconst_0
            istore 4 /* index */
        start local 4 // int index
         4: .line 2246
      StackMap locals: java.lang.Object com.oracle.truffle.js.runtime.GraalJSException com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement[] top int
      StackMap stack:
            iload 4 /* index */
            aload 2 /* stackTrace */
            arraylength
            if_icmpne 7
         5: .line 2247
            aconst_null
            astore 3 /* stackFrame */
        start local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
         6: .line 2248
            goto 9
        end local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
         7: .line 2250
      StackMap locals:
      StackMap stack:
            aload 2 /* stackTrace */
            iload 4 /* index */
            iinc 4 /* index */ 1
            aaload
            astore 3 /* stackFrame */
        start local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
         8: .line 2252
            ldc "<builtin>"
            aload 3 /* stackFrame */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.getFileName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         9: .line 2253
      StackMap locals: java.lang.Object com.oracle.truffle.js.runtime.GraalJSException com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement[] com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement int
      StackMap stack:
            aload 3 /* stackFrame */
            areturn
        end local 4 // int index
        end local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
        end local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement[] stackTrace
        end local 1 // com.oracle.truffle.js.runtime.GraalJSException truffleException
        10: .line 2255
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.Object exception
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0         exception  Ljava/lang/Object;
            2   10     1  truffleException  Lcom/oracle/truffle/js/runtime/GraalJSException;
            3   10     2        stackTrace  [Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            6    7     3        stackFrame  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            8   10     3        stackFrame  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            4   10     4             index  I
    MethodParameters:
           Name  Flags
      exception  

  private static java.util.regex.Matcher messageSyntaxErrorMatcher(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/util/regex/Matcher;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.Object exception
         0: .line 2266
            aload 0 /* exception */
            instanceof com.oracle.truffle.js.runtime.JSException
            ifeq 7
         1: .line 2267
            aload 0 /* exception */
            checkcast com.oracle.truffle.js.runtime.JSException
            astore 1 /* jsException */
        start local 1 // com.oracle.truffle.js.runtime.JSException jsException
         2: .line 2268
            aload 1 /* jsException */
            invokevirtual com.oracle.truffle.js.runtime.JSException.getErrorType:()Lcom/oracle/truffle/js/runtime/JSErrorType;
            getstatic com.oracle.truffle.js.runtime.JSErrorType.SyntaxError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            if_acmpne 7
         3: .line 2269
            aload 1 /* jsException */
            invokevirtual com.oracle.truffle.js.runtime.JSException.getRawMessage:()Ljava/lang/String;
            astore 2 /* message */
        start local 2 // java.lang.String message
         4: .line 2270
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.SYNTAX_ERROR_PATTERN:Ljava/util/regex/Pattern;
            aload 2 /* message */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 3 /* matcher */
        start local 3 // java.util.regex.Matcher matcher
         5: .line 2271
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 7
         6: .line 2272
            aload 3 /* matcher */
            areturn
        end local 3 // java.util.regex.Matcher matcher
        end local 2 // java.lang.String message
        end local 1 // com.oracle.truffle.js.runtime.JSException jsException
         7: .line 2276
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.Object exception
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0    exception  Ljava/lang/Object;
            2    7     1  jsException  Lcom/oracle/truffle/js/runtime/JSException;
            4    7     2      message  Ljava/lang/String;
            5    7     3      matcher  Ljava/util/regex/Matcher;
    MethodParameters:
           Name  Flags
      exception  

  private static java.lang.String messageSyntaxErrorResourceName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object exception
         0: .line 2280
            aload 0 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageSyntaxErrorMatcher:(Ljava/lang/Object;)Ljava/util/regex/Matcher;
            astore 1 /* matcher */
        start local 1 // java.util.regex.Matcher matcher
         1: .line 2281
            aload 1 /* matcher */
            ifnull 3
         2: .line 2282
            aload 1 /* matcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            areturn
         3: .line 2284
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.util.regex.Matcher matcher
        end local 0 // java.lang.Object exception
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  exception  Ljava/lang/Object;
            1    4     1    matcher  Ljava/util/regex/Matcher;
    MethodParameters:
           Name  Flags
      exception  

  private static int messageSyntaxErrorLineNumber(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.Object exception
         0: .line 2288
            aload 0 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageSyntaxErrorMatcher:(Ljava/lang/Object;)Ljava/util/regex/Matcher;
            astore 1 /* matcher */
        start local 1 // java.util.regex.Matcher matcher
         1: .line 2289
            aload 1 /* matcher */
            ifnull 4
         2: .line 2290
            aload 1 /* matcher */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 2 /* lineNumber */
        start local 2 // java.lang.String lineNumber
         3: .line 2291
            aload 2 /* lineNumber */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            ireturn
        end local 2 // java.lang.String lineNumber
         4: .line 2293
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            iconst_m1
            ireturn
        end local 1 // java.util.regex.Matcher matcher
        end local 0 // java.lang.Object exception
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0   exception  Ljava/lang/Object;
            1    5     1     matcher  Ljava/util/regex/Matcher;
            3    4     2  lineNumber  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      exception  

  private static int messageSyntaxErrorColumnNumber(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.Object exception
         0: .line 2297
            aload 0 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageSyntaxErrorMatcher:(Ljava/lang/Object;)Ljava/util/regex/Matcher;
            astore 1 /* matcher */
        start local 1 // java.util.regex.Matcher matcher
         1: .line 2298
            aload 1 /* matcher */
            ifnull 4
         2: .line 2299
            aload 1 /* matcher */
            iconst_3
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 2 /* columnNumber */
        start local 2 // java.lang.String columnNumber
         3: .line 2300
            aload 2 /* columnNumber */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            ireturn
        end local 2 // java.lang.String columnNumber
         4: .line 2302
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            iconst_m1
            ireturn
        end local 1 // java.util.regex.Matcher matcher
        end local 0 // java.lang.Object exception
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0     exception  Ljava/lang/Object;
            1    5     1       matcher  Ljava/util/regex/Matcher;
            3    4     2  columnNumber  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      exception  

  private static java.lang.String messageSyntaxErrorSourceLine(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object exception
         0: .line 2306
            aload 0 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageSyntaxErrorMatcher:(Ljava/lang/Object;)Ljava/util/regex/Matcher;
            astore 1 /* matcher */
        start local 1 // java.util.regex.Matcher matcher
         1: .line 2307
            aload 1 /* matcher */
            ifnull 3
         2: .line 2308
            aload 1 /* matcher */
            iconst_5
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            areturn
         3: .line 2310
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.util.regex.Matcher matcher
        end local 0 // java.lang.Object exception
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  exception  Ljava/lang/Object;
            1    4     1    matcher  Ljava/util/regex/Matcher;
    MethodParameters:
           Name  Flags
      exception  

  public java.lang.Object messageGetScriptResourceName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exception
         0: .line 2314
            aload 1 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageSyntaxErrorResourceName:(Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* resourceName */
        start local 2 // java.lang.String resourceName
         1: .line 2315
            aload 2 /* resourceName */
            ifnull 3
         2: .line 2316
            aload 2 /* resourceName */
            areturn
         3: .line 2318
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageGraalJSExceptionStackFrame:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            astore 3 /* stackFrame */
        start local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
         4: .line 2319
            aload 3 /* stackFrame */
            ifnull 6
         5: .line 2320
            aload 3 /* stackFrame */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.getFileName:()Ljava/lang/String;
            areturn
         6: .line 2322
      StackMap locals: com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
      StackMap stack:
            ldc "unknown"
            areturn
        end local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
        end local 2 // java.lang.String resourceName
        end local 1 // java.lang.Object exception
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    7     1     exception  Ljava/lang/Object;
            1    7     2  resourceName  Ljava/lang/String;
            4    7     3    stackFrame  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    MethodParameters:
           Name  Flags
      exception  

  public int messageGetLineNumber(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exception
         0: .line 2326
            aload 1 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageSyntaxErrorLineNumber:(Ljava/lang/Object;)I
            istore 2 /* lineNumber */
        start local 2 // int lineNumber
         1: .line 2327
            iload 2 /* lineNumber */
            iconst_m1
            if_icmpeq 3
         2: .line 2328
            iload 2 /* lineNumber */
            ireturn
         3: .line 2330
      StackMap locals: int
      StackMap stack:
            aload 1 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageGraalJSExceptionStackFrame:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            astore 3 /* stackFrame */
        start local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
         4: .line 2331
            aload 3 /* stackFrame */
            ifnull 6
         5: .line 2332
            aload 3 /* stackFrame */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.getLineNumber:()I
            ireturn
         6: .line 2334
      StackMap locals: com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
        end local 2 // int lineNumber
        end local 1 // java.lang.Object exception
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    7     1   exception  Ljava/lang/Object;
            1    7     2  lineNumber  I
            4    7     3  stackFrame  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    MethodParameters:
           Name  Flags
      exception  

  public int messageGetStartColumn(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exception
         0: .line 2338
            aload 1 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageSyntaxErrorColumnNumber:(Ljava/lang/Object;)I
            istore 2 /* columnNumber */
        start local 2 // int columnNumber
         1: .line 2339
            iload 2 /* columnNumber */
            iconst_m1
            if_icmpeq 3
         2: .line 2340
            iload 2 /* columnNumber */
            ireturn
         3: .line 2342
      StackMap locals: int
      StackMap stack:
            aload 1 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageGraalJSExceptionStackFrame:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            astore 3 /* stackFrame */
        start local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
         4: .line 2343
            aload 3 /* stackFrame */
            ifnull 6
         5: .line 2344
            aload 3 /* stackFrame */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.getColumnNumber:()I
            iconst_1
            isub
            ireturn
         6: .line 2346
      StackMap locals: com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
        end local 2 // int columnNumber
        end local 1 // java.lang.Object exception
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    7     1     exception  Ljava/lang/Object;
            1    7     2  columnNumber  I
            4    7     3    stackFrame  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    MethodParameters:
           Name  Flags
      exception  

  public java.lang.Object messageGetSourceLine(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exception
         0: .line 2350
            aload 1 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageSyntaxErrorSourceLine:(Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* sourceLine */
        start local 2 // java.lang.String sourceLine
         1: .line 2351
            aload 2 /* sourceLine */
            ifnull 3
         2: .line 2352
            aload 2 /* sourceLine */
            areturn
         3: .line 2354
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* exception */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.messageGraalJSExceptionStackFrame:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            astore 3 /* stackFrame */
        start local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
         4: .line 2355
            aload 3 /* stackFrame */
            ifnull 6
         5: .line 2356
            aload 3 /* stackFrame */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.getLine:()Ljava/lang/String;
            areturn
         6: .line 2358
      StackMap locals: com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
      StackMap stack:
            ldc "unknown"
            areturn
        end local 3 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement stackFrame
        end local 2 // java.lang.String sourceLine
        end local 1 // java.lang.Object exception
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    7     1   exception  Ljava/lang/Object;
            1    7     2  sourceLine  Ljava/lang/String;
            4    7     3  stackFrame  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    MethodParameters:
           Name  Flags
      exception  

  public java.lang.Object messageGetStackTrace(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exception
         0: .line 2362
            aload 1 /* exception */
            instanceof com.oracle.truffle.js.runtime.GraalJSException
            ifeq 3
         1: .line 2363
            aload 1 /* exception */
            checkcast com.oracle.truffle.js.runtime.GraalJSException
            astore 2 /* truffleException */
        start local 2 // com.oracle.truffle.js.runtime.GraalJSException truffleException
         2: .line 2364
            aload 2 /* truffleException */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException.getJSStackTrace:()[Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.GraalJSException truffleException
         3: .line 2366
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
            areturn
        end local 1 // java.lang.Object exception
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1         exception  Ljava/lang/Object;
            2    3     2  truffleException  Lcom/oracle/truffle/js/runtime/GraalJSException;
    MethodParameters:
           Name  Flags
      exception  

  public java.lang.Object messageGet(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exception
         0: .line 2370
            new java.lang.StringBuilder
            dup
            ldc "Uncaught "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* exception */
            checkcast java.lang.Throwable
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object exception
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  exception  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      exception  

  public java.lang.Object stackTraceCurrentStackTrace();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2374
            aconst_null
            invokestatic com.oracle.truffle.js.runtime.GraalJSException.getJSStackTrace:(Lcom/oracle/truffle/api/nodes/Node;)[Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public int stackFrameGetLineNumber(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object stackFrame
         0: .line 2378
            aload 1 /* stackFrame */
            checkcast com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
            astore 2 /* element */
        start local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
         1: .line 2379
            aload 2 /* element */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.getLineNumber:()I
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
        end local 1 // java.lang.Object stackFrame
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  stackFrame  Ljava/lang/Object;
            1    2     2     element  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    MethodParameters:
            Name  Flags
      stackFrame  

  public int stackFrameGetColumn(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object stackFrame
         0: .line 2383
            aload 1 /* stackFrame */
            checkcast com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
            astore 2 /* element */
        start local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
         1: .line 2384
            aload 2 /* element */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.getColumnNumber:()I
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
        end local 1 // java.lang.Object stackFrame
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  stackFrame  Ljava/lang/Object;
            1    2     2     element  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    MethodParameters:
            Name  Flags
      stackFrame  

  public java.lang.Object stackFrameGetScriptName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object stackFrame
         0: .line 2388
            aload 1 /* stackFrame */
            checkcast com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
            astore 2 /* element */
        start local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
         1: .line 2389
            aload 2 /* element */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.getFileName:()Ljava/lang/String;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
        end local 1 // java.lang.Object stackFrame
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  stackFrame  Ljava/lang/Object;
            1    2     2     element  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    MethodParameters:
            Name  Flags
      stackFrame  

  public java.lang.Object stackFrameGetFunctionName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object stackFrame
         0: .line 2393
            aload 1 /* stackFrame */
            checkcast com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
            astore 2 /* element */
        start local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
         1: .line 2394
            aload 2 /* element */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.getFunctionName:()Ljava/lang/String;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
        end local 1 // java.lang.Object stackFrame
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  stackFrame  Ljava/lang/Object;
            1    2     2     element  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    MethodParameters:
            Name  Flags
      stackFrame  

  public boolean stackFrameIsEval(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object stackFrame
         0: .line 2398
            aload 1 /* stackFrame */
            checkcast com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement
            astore 2 /* element */
        start local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
         1: .line 2399
            aload 2 /* element */
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement.isEval:()Z
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement element
        end local 1 // java.lang.Object stackFrame
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  stackFrame  Ljava/lang/Object;
            1    2     2     element  Lcom/oracle/truffle/js/runtime/GraalJSException$JSStackTraceElement;
    MethodParameters:
            Name  Flags
      stackFrame  

  private com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback updateWeakCallback(java.lang.Object, long, long, long, int);
    descriptor: (Ljava/lang/Object;JJJI)Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=12, args_size=6
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // long reference
        start local 4 // long data
        start local 6 // long callbackPointer
        start local 8 // int type
         0: .line 2423
            aload 1 /* object */
            instanceof com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule
            ifeq 3
         1: .line 2424
            aload 1 /* object */
            checkcast com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule.getWeakCallbackMap:()Ljava/util/Map;
            astore 9 /* map */
        start local 9 // java.util.Map map
         2: .line 2425
            goto 17
        end local 9 // java.util.Map map
         3: .line 2428
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            instanceof com.oracle.truffle.js.runtime.JSRealm
            ifeq 7
         4: .line 2429
            aload 1 /* object */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getGlobalObject:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 10 /* target */
        start local 10 // com.oracle.truffle.api.object.DynamicObject target
         5: .line 2430
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.HIDDEN_WEAK_CALLBACK_CONTEXT:Lcom/oracle/truffle/api/object/HiddenKey;
            astore 11 /* key */
        start local 11 // com.oracle.truffle.api.object.HiddenKey key
         6: .line 2431
            goto 13
        end local 11 // com.oracle.truffle.api.object.HiddenKey key
        end local 10 // com.oracle.truffle.api.object.DynamicObject target
      StackMap locals:
      StackMap stack:
         7: aload 1 /* object */
            instanceof com.oracle.truffle.api.object.DynamicObject
            ifeq 11
         8: .line 2432
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 10 /* target */
        start local 10 // com.oracle.truffle.api.object.DynamicObject target
         9: .line 2433
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.HIDDEN_WEAK_CALLBACK:Lcom/oracle/truffle/api/object/HiddenKey;
            astore 11 /* key */
        start local 11 // com.oracle.truffle.api.object.HiddenKey key
        10: .line 2434
            goto 13
        end local 11 // com.oracle.truffle.api.object.HiddenKey key
        end local 10 // com.oracle.truffle.api.object.DynamicObject target
        11: .line 2435
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Weak references not supported for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* object */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 2436
            aconst_null
            areturn
        start local 10 // com.oracle.truffle.api.object.DynamicObject target
        start local 11 // com.oracle.truffle.api.object.HiddenKey key
        13: .line 2438
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object long long long int top com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.HiddenKey
      StackMap stack:
            aload 10 /* target */
            aload 11 /* key */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 9 /* map */
        start local 9 // java.util.Map map
        14: .line 2439
            aload 9 /* map */
            ifnonnull 17
        15: .line 2440
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 9 /* map */
        16: .line 2441
            aload 10 /* target */
            aload 11 /* key */
            aload 9 /* map */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 11 // com.oracle.truffle.api.object.HiddenKey key
        end local 10 // com.oracle.truffle.api.object.DynamicObject target
        17: .line 2445
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object long long long int java.util.Map
      StackMap stack:
            aload 9 /* map */
            lload 2 /* reference */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback
            astore 10 /* weakCallback */
        start local 10 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback weakCallback
        18: .line 2446
            aload 10 /* weakCallback */
            ifnonnull 22
        19: .line 2447
            new com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback
            dup
            aload 1 /* object */
            lload 4 /* data */
            lload 6 /* callbackPointer */
            iload 8 /* type */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbackQueue:Ljava/lang/ref/ReferenceQueue;
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.<init>:(Ljava/lang/Object;JJILjava/lang/ref/ReferenceQueue;)V
            astore 10 /* weakCallback */
        20: .line 2448
            aload 9 /* map */
            lload 2 /* reference */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 10 /* weakCallback */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 2449
            goto 25
        22: .line 2450
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback
      StackMap stack:
            aload 10 /* weakCallback */
            lload 4 /* data */
            putfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.data:J
        23: .line 2451
            aload 10 /* weakCallback */
            lload 6 /* callbackPointer */
            putfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.callback:J
        24: .line 2452
            aload 10 /* weakCallback */
            iload 8 /* type */
            putfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.type:I
        25: .line 2454
      StackMap locals:
      StackMap stack:
            lload 6 /* callbackPointer */
            lconst_0
            lcmp
            ifne 28
        26: .line 2455
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbacks:Ljava/util/Set;
            aload 10 /* weakCallback */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        27: .line 2456
            goto 29
        28: .line 2457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbacks:Ljava/util/Set;
            aload 10 /* weakCallback */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        29: .line 2459
      StackMap locals:
      StackMap stack:
            aload 10 /* weakCallback */
            areturn
        end local 10 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback weakCallback
        end local 9 // java.util.Map map
        end local 8 // int type
        end local 6 // long callbackPointer
        end local 4 // long data
        end local 2 // long reference
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   30     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   30     1           object  Ljava/lang/Object;
            0   30     2        reference  J
            0   30     4             data  J
            0   30     6  callbackPointer  J
            0   30     8             type  I
            2    3     9              map  Ljava/util/Map<Ljava/lang/Long;Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;>;
           14   30     9              map  Ljava/util/Map<Ljava/lang/Long;Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;>;
            5    7    10           target  Lcom/oracle/truffle/api/object/DynamicObject;
            9   11    10           target  Lcom/oracle/truffle/api/object/DynamicObject;
           13   17    10           target  Lcom/oracle/truffle/api/object/DynamicObject;
            6    7    11              key  Lcom/oracle/truffle/api/object/HiddenKey;
           10   11    11              key  Lcom/oracle/truffle/api/object/HiddenKey;
           13   17    11              key  Lcom/oracle/truffle/api/object/HiddenKey;
           18   30    10     weakCallback  Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
    MethodParameters:
                 Name  Flags
      object           
      reference        
      data             
      callbackPointer  
      type             

  private void pollWeakCallbackQueue(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // boolean canBlock
         0: .line 2464
            iload 1 /* canBlock */
            ifeq 8
         1: .line 2468
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbackQueue:Ljava/lang/ref/ReferenceQueue;
            ldc 10
            invokevirtual java.lang.ref.ReferenceQueue.remove:(J)Ljava/lang/ref/Reference;
            checkcast com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback
            astore 2 /* callback */
        start local 2 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
         2: .line 2469
            aload 2 /* callback */
            ifnull 8
         3: .line 2470
            aload 0 /* this */
            aload 2 /* callback */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.processWeakCallback:(Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;)V
         4: .line 2472
            goto 8
        end local 2 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         5: pop
         6: .line 2475
            goto 8
        start local 2 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
         7: .line 2476
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback
      StackMap stack:
            aload 0 /* this */
            aload 2 /* callback */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.processWeakCallback:(Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;)V
        end local 2 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
         8: .line 2475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbackQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            checkcast com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback
            dup
            astore 2 /* callback */
        start local 2 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
         9: ifnonnull 7
        10: .line 2478
            return
        end local 2 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
        end local 1 // boolean canBlock
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   11     1  canBlock  Z
            2    5     2  callback  Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
            7    8     2  callback  Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
            9   11     2  callback  Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.InterruptedException
    MethodParameters:
          Name  Flags
      canBlock  

  private void processWeakCallback(com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback);
    descriptor: (Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
         0: .line 2481
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbacks:Ljava/util/Set;
            aload 1 /* callback */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 2482
            aload 1 /* callback */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.callback:J
            lconst_0
            lcmp
            ifeq 3
         2: .line 2483
            aload 1 /* callback */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.callback:J
            aload 1 /* callback */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.data:J
            aload 1 /* callback */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.type:I
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.weakCallback:(JJI)V
         3: .line 2485
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1  callback  Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
    MethodParameters:
          Name  Flags
      callback  

  public void makeWeak(java.lang.Object, long, long, long, int);
    descriptor: (Ljava/lang/Object;JJJI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=6
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // long reference
        start local 4 // long data
        start local 6 // long callbackPointer
        start local 8 // int type
         0: .line 2488
            aload 1 /* object */
            ifnonnull 3
         1: .line 2489
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "null object given to makeWeak!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 2490
            return
         3: .line 2493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* object */
            lload 2 /* reference */
            lload 4 /* data */
            lload 6 /* callbackPointer */
            iload 8 /* type */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.updateWeakCallback:(Ljava/lang/Object;JJJI)Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
            pop
         4: .line 2494
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.pollWeakCallbackQueue:(Z)V
         5: .line 2495
            return
        end local 8 // int type
        end local 6 // long callbackPointer
        end local 4 // long data
        end local 2 // long reference
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1           object  Ljava/lang/Object;
            0    6     2        reference  J
            0    6     4             data  J
            0    6     6  callbackPointer  J
            0    6     8             type  I
    MethodParameters:
                 Name  Flags
      object           
      reference        
      data             
      callbackPointer  
      type             

  public long clearWeak(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // long reference
         0: .line 2498
            aload 1 /* object */
            ifnonnull 2
         1: .line 2503
            lconst_0
            lreturn
         2: .line 2506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* object */
            lload 2 /* reference */
            lconst_0
            lconst_0
            iconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.updateWeakCallback:(Ljava/lang/Object;JJJI)Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
            astore 4 /* callback */
        start local 4 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
         3: .line 2507
            aload 4 /* callback */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.data:J
            lreturn
        end local 4 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback callback
        end local 2 // long reference
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1     object  Ljava/lang/Object;
            0    4     2  reference  J
            3    4     4   callback  Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
    MethodParameters:
           Name  Flags
      object     
      reference  

  public <T> T lookupInstrument(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.String instrumentId
        start local 2 // java.lang.Class instrumentClass
         0: .line 2512
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.envForInstruments:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 3 /* env */
        start local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
         1: .line 2513
            aload 3 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getInstruments:()Ljava/util/Map;
            aload 1 /* instrumentId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.InstrumentInfo
            astore 4 /* info */
        start local 4 // com.oracle.truffle.api.InstrumentInfo info
         2: .line 2514
            aload 4 /* info */
            ifnonnull 3
            aconst_null
            goto 4
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.InstrumentInfo
      StackMap stack:
         3: aload 3 /* env */
            aload 4 /* info */
            aload 2 /* instrumentClass */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.lookup:(Lcom/oracle/truffle/api/InstrumentInfo;Ljava/lang/Class;)Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         4: areturn
        end local 4 // com.oracle.truffle.api.InstrumentInfo info
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 2 // java.lang.Class instrumentClass
        end local 1 // java.lang.String instrumentId
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1     instrumentId  Ljava/lang/String;
            0    5     2  instrumentClass  Ljava/lang/Class<TT;>;
            1    5     3              env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2    5     4             info  Lcom/oracle/truffle/api/InstrumentInfo;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                 Name  Flags
      instrumentId     
      instrumentClass  

  public java.lang.Object contextNew(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object templateObj
         0: .line 2522
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.createChildContext:Z
            ifeq 4
         1: .line 2523
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSRealm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.createChildRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 2 /* realm */
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         2: .line 2524
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
         3: .line 2525
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 8
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
            if_acmpeq 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         4: .line 2527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSRealm:Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 2 /* realm */
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         5: .line 2528
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
         6: .line 2529
            aload 3 /* context */
            new com.oracle.truffle.trufflenode.ContextData
            dup
            aload 3 /* context */
            invokespecial com.oracle.truffle.trufflenode.ContextData.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;)V
            invokevirtual com.oracle.truffle.js.runtime.JSContext.setEmbedderData:(Ljava/lang/Object;)V
         7: .line 2530
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.createChildContext:Z
         8: .line 2532
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            aload 2 /* realm */
            new com.oracle.truffle.trufflenode.RealmData
            dup
            invokespecial com.oracle.truffle.trufflenode.RealmData.<init>:()V
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.setEmbedderData:(Ljava/lang/Object;)V
         9: .line 2533
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getGlobalObject:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* global */
        start local 4 // com.oracle.truffle.api.object.DynamicObject global
        10: .line 2535
            aload 4 /* global */
            ldc "arguments"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            pop
        11: .line 2536
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.exposeGC:Z
            ifeq 13
        12: .line 2537
            aload 0 /* this */
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.contextExposeGC:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
        13: .line 2539
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 1 /* templateObj */
            ifnull 22
        14: .line 2540
            aload 1 /* templateObj */
            checkcast com.oracle.truffle.trufflenode.info.ObjectTemplate
            astore 5 /* template */
        start local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        15: .line 2541
            aload 5 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.hasPropertyHandler:()Z
            ifeq 19
        16: .line 2542
            aload 0 /* this */
            aload 3 /* context */
            aload 2 /* realm */
            aload 5 /* template */
            aload 4 /* global */
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.propertyHandlerInstantiate:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Lcom/oracle/truffle/api/object/DynamicObject;Z)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* global */
        17: .line 2543
            aload 2 /* realm */
            aload 4 /* global */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.setGlobalObject:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        18: .line 2544
            goto 22
        19: .line 2545
      StackMap locals: com.oracle.truffle.trufflenode.info.ObjectTemplate
      StackMap stack:
            aload 3 /* context */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 6 /* prototype */
        start local 6 // com.oracle.truffle.api.object.DynamicObject prototype
        20: .line 2546
            aload 0 /* this */
            aload 2 /* realm */
            aload 5 /* template */
            aload 6 /* prototype */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.objectTemplateInstantiate:(Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;Ljava/lang/Object;)V
        21: .line 2547
            aload 4 /* global */
            aload 6 /* prototype */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.setPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            pop
        end local 6 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 5 // com.oracle.truffle.trufflenode.info.ObjectTemplate template
        22: .line 2550
      StackMap locals:
      StackMap stack:
            aload 2 /* realm */
            areturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject global
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // java.lang.Object templateObj
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   23     1  templateObj  Ljava/lang/Object;
            2    4     2        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            5   23     2        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            3    4     3      context  Lcom/oracle/truffle/js/runtime/JSContext;
            6   23     3      context  Lcom/oracle/truffle/js/runtime/JSContext;
           10   23     4       global  Lcom/oracle/truffle/api/object/DynamicObject;
           15   22     5     template  Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
           20   22     6    prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
             Name  Flags
      templateObj  

  public static com.oracle.truffle.trufflenode.RealmData getRealmEmbedderData(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/trufflenode/RealmData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object realm
         0: .line 2554
            aload 0 /* realm */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEmbedderData:()Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.RealmData
            areturn
        end local 0 // java.lang.Object realm
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  realm  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.trufflenode.ContextData getContextEmbedderData(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/trufflenode/ContextData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 2558
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEmbedderData:()Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.ContextData
            areturn
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
         Name  Flags
      context  

  private void contextExposeGC(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 2562
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getGlobalObject:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* global */
        start local 2 // com.oracle.truffle.api.object.DynamicObject global
         1: .line 2563
            new com.oracle.truffle.trufflenode.GraalJSAccess$2
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$2.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
            astore 3 /* rootNode */
        start local 3 // com.oracle.truffle.js.runtime.JavaScriptRootNode rootNode
         2: .line 2570
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 3 /* rootNode */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            iconst_0
            ldc "gc"
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 4 /* functionData */
        start local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         3: .line 2571
            aload 1 /* realm */
            aload 4 /* functionData */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 5 /* function */
        start local 5 // com.oracle.truffle.api.object.DynamicObject function
         4: .line 2572
            aload 2 /* global */
            ldc "gc"
            aload 5 /* function */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
         5: .line 2573
            return
        end local 5 // com.oracle.truffle.api.object.DynamicObject function
        end local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 3 // com.oracle.truffle.js.runtime.JavaScriptRootNode rootNode
        end local 2 // com.oracle.truffle.api.object.DynamicObject global
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1         realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    6     2        global  Lcom/oracle/truffle/api/object/DynamicObject;
            2    6     3      rootNode  Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
            3    6     4  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            4    6     5      function  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  private void isolatePerformGC();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2577
            iconst_1
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.notifyGCCallbacks:(Z)V
         1: .line 2578
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.pollWeakCallbackQueue:(Z)V
         2: .line 2579
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         3: goto 7
         4: .line 2580
      StackMap locals: int
      StackMap stack:
            invokestatic java.lang.System.gc:()V
         5: .line 2581
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.pollWeakCallbackQueue:(Z)V
         6: .line 2579
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 1 /* i */
            iconst_3
            if_icmplt 4
        end local 1 // int i
         8: .line 2583
            iconst_0
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.notifyGCCallbacks:(Z)V
         9: .line 2584
            return
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            3    8     1     i  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public void contextSetSecurityToken(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object securityToken
         0: .line 2587
            aload 1 /* context */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.getRealmEmbedderData:(Ljava/lang/Object;)Lcom/oracle/truffle/trufflenode/RealmData;
            astore 3 /* contextData */
        start local 3 // com.oracle.truffle.trufflenode.RealmData contextData
         1: .line 2588
            aload 3 /* contextData */
            aload 2 /* securityToken */
            invokevirtual com.oracle.truffle.trufflenode.RealmData.setSecurityToken:(Ljava/lang/Object;)V
         2: .line 2589
            return
        end local 3 // com.oracle.truffle.trufflenode.RealmData contextData
        end local 2 // java.lang.Object securityToken
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1        context  Ljava/lang/Object;
            0    3     2  securityToken  Ljava/lang/Object;
            1    3     3    contextData  Lcom/oracle/truffle/trufflenode/RealmData;
    MethodParameters:
               Name  Flags
      context        
      securityToken  

  public java.lang.Object contextGetSecurityToken(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
         0: .line 2592
            aload 1 /* context */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.getRealmEmbedderData:(Ljava/lang/Object;)Lcom/oracle/truffle/trufflenode/RealmData;
            astore 2 /* contextData */
        start local 2 // com.oracle.truffle.trufflenode.RealmData contextData
         1: .line 2593
            aload 2 /* contextData */
            invokevirtual com.oracle.truffle.trufflenode.RealmData.getSecurityToken:()Ljava/lang/Object;
            astore 3 /* securityToken */
        start local 3 // java.lang.Object securityToken
         2: .line 2594
            aload 3 /* securityToken */
            ifnonnull 3
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            goto 4
      StackMap locals: com.oracle.truffle.trufflenode.RealmData java.lang.Object
      StackMap stack:
         3: aload 3 /* securityToken */
      StackMap locals:
      StackMap stack: java.lang.Object
         4: areturn
        end local 3 // java.lang.Object securityToken
        end local 2 // com.oracle.truffle.trufflenode.RealmData contextData
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1        context  Ljava/lang/Object;
            1    5     2    contextData  Lcom/oracle/truffle/trufflenode/RealmData;
            2    5     3  securityToken  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  

  public java.lang.Object contextGetExtrasBindingObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
         0: .line 2598
            aload 1 /* context */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.getRealmEmbedderData:(Ljava/lang/Object;)Lcom/oracle/truffle/trufflenode/RealmData;
            astore 2 /* contextData */
        start local 2 // com.oracle.truffle.trufflenode.RealmData contextData
         1: .line 2599
            aload 2 /* contextData */
            invokevirtual com.oracle.truffle.trufflenode.RealmData.getExtrasBindingObject:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* extras */
        start local 3 // com.oracle.truffle.api.object.DynamicObject extras
         2: .line 2600
            aload 3 /* extras */
            ifnonnull 5
         3: .line 2601
            aload 0 /* this */
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.initializeExtrasBindingObject:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* extras */
         4: .line 2602
            aload 2 /* contextData */
            aload 3 /* extras */
            invokevirtual com.oracle.truffle.trufflenode.RealmData.setExtrasBindingObject:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         5: .line 2604
      StackMap locals: com.oracle.truffle.trufflenode.RealmData com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 3 /* extras */
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject extras
        end local 2 // com.oracle.truffle.trufflenode.RealmData contextData
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1      context  Ljava/lang/Object;
            1    6     2  contextData  Lcom/oracle/truffle/trufflenode/RealmData;
            2    6     3       extras  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      context  

  private com.oracle.truffle.api.object.DynamicObject initializeExtrasBindingObject(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 2608
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* realm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* extras */
        start local 2 // com.oracle.truffle.api.object.DynamicObject extras
         1: .line 2611
            new com.oracle.truffle.trufflenode.GraalJSAccess$3
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$3.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
            astore 3 /* isEnabledRootNode */
        start local 3 // com.oracle.truffle.js.runtime.JavaScriptRootNode isEnabledRootNode
         2: .line 2617
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 3 /* isEnabledRootNode */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            iconst_0
            ldc "isTraceCategoryEnabled"
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 4 /* isEnabledFunctionData */
        start local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData isEnabledFunctionData
         3: .line 2618
            aload 1 /* realm */
            aload 4 /* isEnabledFunctionData */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 5 /* isEnabledFunction */
        start local 5 // com.oracle.truffle.api.object.DynamicObject isEnabledFunction
         4: .line 2619
            aload 2 /* extras */
            ldc "isTraceCategoryEnabled"
            aload 5 /* isEnabledFunction */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
         5: .line 2622
            new com.oracle.truffle.trufflenode.GraalJSAccess$4
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$4.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
            astore 6 /* traceRootNode */
        start local 6 // com.oracle.truffle.js.runtime.JavaScriptRootNode traceRootNode
         6: .line 2628
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 6 /* traceRootNode */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            iconst_0
            ldc "trace"
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 7 /* traceFunctionData */
        start local 7 // com.oracle.truffle.js.runtime.builtins.JSFunctionData traceFunctionData
         7: .line 2629
            aload 1 /* realm */
            aload 7 /* traceFunctionData */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 8 /* traceFunction */
        start local 8 // com.oracle.truffle.api.object.DynamicObject traceFunction
         8: .line 2630
            aload 2 /* extras */
            ldc "trace"
            aload 8 /* traceFunction */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
         9: .line 2632
            aload 2 /* extras */
            areturn
        end local 8 // com.oracle.truffle.api.object.DynamicObject traceFunction
        end local 7 // com.oracle.truffle.js.runtime.builtins.JSFunctionData traceFunctionData
        end local 6 // com.oracle.truffle.js.runtime.JavaScriptRootNode traceRootNode
        end local 5 // com.oracle.truffle.api.object.DynamicObject isEnabledFunction
        end local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionData isEnabledFunctionData
        end local 3 // com.oracle.truffle.js.runtime.JavaScriptRootNode isEnabledRootNode
        end local 2 // com.oracle.truffle.api.object.DynamicObject extras
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0                   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   10     1                  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1   10     2                 extras  Lcom/oracle/truffle/api/object/DynamicObject;
            2   10     3      isEnabledRootNode  Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
            3   10     4  isEnabledFunctionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            4   10     5      isEnabledFunction  Lcom/oracle/truffle/api/object/DynamicObject;
            6   10     6          traceRootNode  Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
            7   10     7      traceFunctionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            8   10     8          traceFunction  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  public void contextSetPointerInEmbedderData(java.lang.Object, int, long);
    descriptor: (Ljava/lang/Object;IJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // int index
        start local 3 // long pointer
         0: .line 2636
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* index */
            lload 3 /* pointer */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.contextSetEmbedderData:(Ljava/lang/Object;ILjava/lang/Object;)V
         1: .line 2637
            return
        end local 3 // long pointer
        end local 2 // int index
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  context  Ljava/lang/Object;
            0    2     2    index  I
            0    2     3  pointer  J
    MethodParameters:
         Name  Flags
      context  
      index    
      pointer  

  public long contextGetPointerInEmbedderData(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // int index
         0: .line 2640
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* index */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.contextGetEmbedderData:(Ljava/lang/Object;I)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 3 /* pointer */
        start local 3 // java.lang.Long pointer
         1: .line 2641
            aload 3 /* pointer */
            ifnonnull 2
            lconst_0
            goto 3
      StackMap locals: java.lang.Long
      StackMap stack:
         2: aload 3 /* pointer */
            invokevirtual java.lang.Long.longValue:()J
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 3 // java.lang.Long pointer
        end local 2 // int index
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1  context  Ljava/lang/Object;
            0    4     2    index  I
            1    4     3  pointer  Ljava/lang/Long;
    MethodParameters:
         Name  Flags
      context  
      index    

  public void contextSetEmbedderData(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object realm
        start local 2 // int index
        start local 3 // java.lang.Object value
         0: .line 2645
            aload 1 /* realm */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.getRealmEmbedderData:(Ljava/lang/Object;)Lcom/oracle/truffle/trufflenode/RealmData;
            astore 4 /* data */
        start local 4 // com.oracle.truffle.trufflenode.RealmData data
         1: .line 2646
            aload 4 /* data */
            iload 2 /* index */
            aload 3 /* value */
            invokevirtual com.oracle.truffle.trufflenode.RealmData.setEmbedderData:(ILjava/lang/Object;)V
         2: .line 2647
            return
        end local 4 // com.oracle.truffle.trufflenode.RealmData data
        end local 3 // java.lang.Object value
        end local 2 // int index
        end local 1 // java.lang.Object realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  realm  Ljava/lang/Object;
            0    3     2  index  I
            0    3     3  value  Ljava/lang/Object;
            1    3     4   data  Lcom/oracle/truffle/trufflenode/RealmData;
    MethodParameters:
       Name  Flags
      realm  
      index  
      value  

  public java.lang.Object contextGetEmbedderData(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object realm
        start local 2 // int index
         0: .line 2650
            aload 1 /* realm */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.getRealmEmbedderData:(Ljava/lang/Object;)Lcom/oracle/truffle/trufflenode/RealmData;
            astore 3 /* data */
        start local 3 // com.oracle.truffle.trufflenode.RealmData data
         1: .line 2651
            aload 3 /* data */
            iload 2 /* index */
            invokevirtual com.oracle.truffle.trufflenode.RealmData.getEmbedderData:(I)Ljava/lang/Object;
            areturn
        end local 3 // com.oracle.truffle.trufflenode.RealmData data
        end local 2 // int index
        end local 1 // java.lang.Object realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  realm  Ljava/lang/Object;
            0    2     2  index  I
            1    2     3   data  Lcom/oracle/truffle/trufflenode/RealmData;
    MethodParameters:
       Name  Flags
      realm  
      index  

  public void isolateRunMicrotasks();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2655
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.pollWeakCallbackQueue:(Z)V
         1: .line 2657
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.NodeJSAgent.processAllPromises:(Z)V
         2: .line 2658
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 1 /* ex */
        start local 1 // java.lang.Exception ex
         4: .line 2659
            aload 1 /* ex */
            invokevirtual java.lang.Exception.printStackTrace:()V
         5: .line 2660
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        end local 1 // java.lang.Exception ex
         6: .line 2662
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            4    6     1    ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception

  public java.lang.Object isolateCreateInternalFieldCountKey();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2665
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.INTERNAL_FIELD_COUNT_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public java.lang.Object isolateCreateInternalFieldKey(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // int index
         0: .line 2669
            iload 1 /* index */
            ifne 1
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.INTERNAL_FIELD_ZERO_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            goto 2
      StackMap locals:
      StackMap stack:
         1: new com.oracle.truffle.api.object.HiddenKey
            dup
            new java.lang.StringBuilder
            dup
            ldc "InternalField"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.object.HiddenKey
         2: areturn
        end local 1 // int index
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public int objectInternalFieldCount(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object target
         0: .line 2673
            aload 1 /* target */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.internalFieldCount:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            ireturn
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  target  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      target  

  public static int internalFieldCount(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject target
         0: .line 2677
            aload 0 /* target */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.INTERNAL_FIELD_COUNT_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* ret */
        start local 1 // java.lang.Object ret
         1: .line 2678
            aload 1 /* ret */
            instanceof java.lang.Integer
            ifeq 3
         2: .line 2679
            aload 1 /* ret */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
         3: .line 2680
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* ret */
            instanceof java.lang.Double
            ifeq 5
         4: .line 2681
            aload 1 /* ret */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.intValue:()I
            ireturn
         5: .line 2683
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object ret
        end local 0 // com.oracle.truffle.api.object.DynamicObject target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  target  Lcom/oracle/truffle/api/object/DynamicObject;
            1    6     1     ret  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      target  

  public long objectSlowGetAlignedPointerFromInternalField(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object target
         0: .line 2688
            aload 1 /* target */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.INTERNAL_FIELD_ZERO_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* pointer */
        start local 2 // java.lang.Object pointer
         1: .line 2689
            aload 2 /* pointer */
            ifnonnull 2
            lconst_0
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: aload 2 /* pointer */
            checkcast java.lang.Number
            invokevirtual java.lang.Number.longValue:()J
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 2 // java.lang.Object pointer
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1   target  Ljava/lang/Object;
            1    4     2  pointer  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      target  

  public void objectSetAlignedPointerInInternalField(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object target
        start local 2 // long value
         0: .line 2693
            aload 1 /* target */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.INTERNAL_FIELD_ZERO_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
            lload 2 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 2694
            return
        end local 2 // long value
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  target  Ljava/lang/Object;
            0    2     2   value  J
    MethodParameters:
        Name  Flags
      target  
      value   

  public java.lang.Object objectPreviewEntries(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 2697
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 2 /* dynamicObject */
        start local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
         1: .line 2698
            aload 2 /* dynamicObject */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
         2: .line 2699
            aload 2 /* dynamicObject */
            getstatic com.oracle.truffle.js.runtime.JSRuntime.ITERATOR_NEXT_INDEX:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.util.JSHashMap$Cursor
            astore 4 /* cursor */
        start local 4 // com.oracle.truffle.js.runtime.util.JSHashMap$Cursor cursor
         3: .line 2700
            aload 4 /* cursor */
            ifnull 33
         4: .line 2701
            aload 2 /* dynamicObject */
            getstatic com.oracle.truffle.js.runtime.builtins.JSMap.MAP_ITERATION_KIND_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* kindObject */
        start local 5 // java.lang.Object kindObject
         5: .line 2702
            aload 5 /* kindObject */
            ifnonnull 6
            iconst_1
            goto 7
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.util.JSHashMap$Cursor java.lang.Object
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* isSet */
        start local 6 // boolean isSet
         8: .line 2703
            iload 6 /* isSet */
            ifeq 10
         9: .line 2704
            aload 2 /* dynamicObject */
            getstatic com.oracle.truffle.js.runtime.builtins.JSSet.SET_ITERATION_KIND_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* kindObject */
        10: .line 2706
      StackMap locals: int
      StackMap stack:
            aload 5 /* kindObject */
            checkcast java.lang.Number
            invokevirtual java.lang.Number.intValue:()I
            istore 7 /* kind */
        start local 7 // int kind
        11: .line 2707
            aload 4 /* cursor */
            invokeinterface com.oracle.truffle.js.runtime.util.JSHashMap$Cursor.copy:()Lcom/oracle/truffle/js/runtime/util/JSHashMap$Cursor;
            astore 4 /* cursor */
        12: .line 2708
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* entries */
        start local 8 // java.util.List entries
        13: .line 2709
            goto 27
        14: .line 2710
      StackMap locals: int java.util.List
      StackMap stack:
            aload 4 /* cursor */
            invokeinterface com.oracle.truffle.js.runtime.util.JSHashMap$Cursor.getKey:()Ljava/lang/Object;
            astore 9 /* key */
        start local 9 // java.lang.Object key
        15: .line 2711
            iload 6 /* isSet */
            ifeq 16
            aload 9 /* key */
            goto 17
      StackMap locals: java.lang.Object
      StackMap stack:
        16: aload 4 /* cursor */
            invokeinterface com.oracle.truffle.js.runtime.util.JSHashMap$Cursor.getValue:()Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
        17: astore 10 /* value */
        start local 10 // java.lang.Object value
        18: .line 2712
            iload 7 /* kind */
            iconst_1
            if_icmpne 21
        19: .line 2713
            aload 8 /* entries */
            aload 9 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        20: .line 2714
            goto 27
      StackMap locals: java.lang.Object
      StackMap stack:
        21: iload 7 /* kind */
            iconst_2
            if_icmpne 24
        22: .line 2715
            aload 8 /* entries */
            aload 10 /* value */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 2716
            goto 27
        24: .line 2717
      StackMap locals:
      StackMap stack:
            aload 8 /* entries */
            aload 9 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 2718
            aload 8 /* entries */
            aload 10 /* value */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        26: .line 2719
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 27
            iload 7 /* kind */
            iconst_3
            if_icmpeq 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 10 // java.lang.Object value
        end local 9 // java.lang.Object key
        27: .line 2709
      StackMap locals:
      StackMap stack:
            aload 4 /* cursor */
            invokeinterface com.oracle.truffle.js.runtime.util.JSHashMap$Cursor.advance:()Z
            ifne 14
        28: .line 2722
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
        29: .line 2723
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            iload 7 /* kind */
            iconst_3
            if_icmpne 30
            iconst_1
            goto 31
      StackMap locals:
      StackMap stack: java.nio.ByteBuffer
        30: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.util.JSHashMap$Cursor java.lang.Object int int java.util.List
      StackMap stack: java.nio.ByteBuffer int
        31: invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        32: .line 2724
            aload 3 /* context */
            aload 8 /* entries */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createConstantObjectArray:(Lcom/oracle/truffle/js/runtime/JSContext;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 8 // java.util.List entries
        end local 7 // int kind
        end local 6 // boolean isSet
        end local 5 // java.lang.Object kindObject
        33: .line 2726
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.util.JSHashMap$Cursor
      StackMap stack:
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSWeakMap.isJSWeakMap:(Ljava/lang/Object;)Z
            ifne 34
            aload 1 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSWeakSet.isJSWeakSet:(Ljava/lang/Object;)Z
            ifeq 37
        34: .line 2728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
        35: .line 2729
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        36: .line 2730
            aload 3 /* context */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createConstantEmptyArray:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        37: .line 2732
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // com.oracle.truffle.js.runtime.util.JSHashMap$Cursor cursor
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        end local 2 // com.oracle.truffle.api.object.DynamicObject dynamicObject
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   38     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   38     1         object  Ljava/lang/Object;
            1   38     2  dynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
            2   38     3        context  Lcom/oracle/truffle/js/runtime/JSContext;
            3   38     4         cursor  Lcom/oracle/truffle/js/runtime/util/JSHashMap$Cursor;
            5   33     5     kindObject  Ljava/lang/Object;
            8   33     6          isSet  Z
           11   33     7           kind  I
           13   33     8        entries  Ljava/util/List<Ljava/lang/Object;>;
           15   27     9            key  Ljava/lang/Object;
           18   27    10          value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public void isolateInternalErrorCheck(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object exception
         0: .line 2737
            aload 1 /* exception */
            instanceof com.oracle.truffle.api.TruffleException
            ifne 3
            aload 1 /* exception */
            instanceof java.lang.StackOverflowError
            ifne 3
            aload 1 /* exception */
            instanceof java.lang.OutOfMemoryError
            ifne 3
         1: .line 2738
            aload 1 /* exception */
            instanceof com.oracle.truffle.api.nodes.ControlFlowException
            ifne 3
            aload 1 /* exception */
            instanceof com.oracle.truffle.trufflenode.GraalJSAccess$GraalJSKillException
            ifne 3
         2: .line 2737
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 2 /* internalError */
        start local 2 // boolean internalError
         5: .line 2739
            iload 2 /* internalError */
            ifeq 8
         6: .line 2740
            aload 1 /* exception */
            checkcast java.lang.Throwable
            invokevirtual java.lang.Throwable.printStackTrace:()V
         7: .line 2741
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exit:(I)V
         8: .line 2743
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // boolean internalError
        end local 1 // java.lang.Object exception
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    9     1      exception  Ljava/lang/Object;
            5    9     2  internalError  Z
    MethodParameters:
           Name  Flags
      exception  

  public void isolateThrowStackOverflowError();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2746
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorStackOverflow:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public void isolateGetHeapStatistics();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2750
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            astore 1 /* runtime */
        start local 1 // java.lang.Runtime runtime
         1: .line 2751
            aload 1 /* runtime */
            invokevirtual java.lang.Runtime.totalMemory:()J
            lstore 2 /* total */
        start local 2 // long total
         2: .line 2752
            aload 1 /* runtime */
            invokevirtual java.lang.Runtime.freeMemory:()J
            lstore 4 /* free */
        start local 4 // long free
         3: .line 2753
            aload 1 /* runtime */
            invokevirtual java.lang.Runtime.maxMemory:()J
            lstore 6 /* max */
        start local 6 // long max
         4: .line 2754
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         5: .line 2755
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            lload 2 /* total */
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
         6: .line 2756
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            lload 6 /* max */
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
         7: .line 2757
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            lload 2 /* total */
            lload 4 /* free */
            lsub
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
         8: .line 2758
            return
        end local 6 // long max
        end local 4 // long free
        end local 2 // long total
        end local 1 // java.lang.Runtime runtime
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            1    9     1  runtime  Ljava/lang/Runtime;
            2    9     2    total  J
            3    9     4     free  J
            4    9     6      max  J

  public synchronized void isolateCancelTerminateExecution();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2763
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.terminateExecution:Z
         1: .line 2764
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
            invokevirtual com.oracle.truffle.trufflenode.NodeJSAgent.getThread:()Ljava/lang/Thread;
            if_acmpne 3
         2: .line 2765
            invokestatic java.lang.Thread.interrupted:()Z
            pop
         3: .line 2767
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public synchronized void isolateTerminateExecution();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2770
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.terminateExecution:Z
            ifeq 2
         1: .line 2771
            return
         2: .line 2773
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.terminateExecution:Z
         3: .line 2774
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
            invokevirtual com.oracle.truffle.trufflenode.NodeJSAgent.getThread:()Ljava/lang/Thread;
            astore 1 /* thread */
        start local 1 // java.lang.Thread thread
         4: .line 2775
            aload 1 /* thread */
            ifnull 6
         5: .line 2776
            aload 1 /* thread */
            invokevirtual java.lang.Thread.interrupt:()V
         6: .line 2778
      StackMap locals: java.lang.Thread
      StackMap stack:
            aload 0 /* this */
            ldc "debugger"
            ldc Lcom/oracle/truffle/api/debug/Debugger;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.lookupInstrument:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.Debugger
            astore 2 /* debugger */
        start local 2 // com.oracle.truffle.api.debug.Debugger debugger
         7: .line 2779
            aload 2 /* debugger */
            ifnonnull 10
         8: .line 2780
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Debugger is not available!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 2781
            return
        10: .line 2783
      StackMap locals: com.oracle.truffle.api.debug.Debugger
      StackMap stack:
            aload 2 /* debugger */
            new com.oracle.truffle.trufflenode.GraalJSAccess$5
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$5.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
            invokevirtual com.oracle.truffle.api.debug.Debugger.startSession:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)Lcom/oracle/truffle/api/debug/DebuggerSession;
        11: .line 2794
            invokevirtual com.oracle.truffle.api.debug.DebuggerSession.suspendNextExecution:()V
        12: .line 2795
            return
        end local 2 // com.oracle.truffle.api.debug.Debugger debugger
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            4   13     1    thread  Ljava/lang/Thread;
            7   13     2  debugger  Lcom/oracle/truffle/api/debug/Debugger;

  public java.lang.Object isolateGetIntPlaceholder();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2802
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.INT_PLACEHOLDER:Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public java.lang.Object isolateGetSafeIntPlaceholder();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2806
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.SAFE_INT_PLACEHOLDER:Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public java.lang.Object isolateGetDoublePlaceholder();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2810
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.DOUBLE_PLACEHOLDER:Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public void isolateDispose(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // boolean exit
        start local 2 // int status
         0: .line 2814
            iload 1 /* exit */
            ifeq 2
         1: .line 2815
            aload 0 /* this */
            iload 2 /* status */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.exit:(I)V
         2: .line 2817
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int status
        end local 1 // boolean exit
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1    exit  Z
            0    3     2  status  I
    MethodParameters:
        Name  Flags
      exit    
      status  

  public void isolateEnablePromiseHook(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // boolean enable
         0: .line 2820
            iload 1 /* enable */
            ifeq 2
            new com.oracle.truffle.trufflenode.GraalJSAccess$6
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$6.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
         1: .line 2825
            goto 3
      StackMap locals:
      StackMap stack:
         2: aconst_null
         3: .line 2820
      StackMap locals:
      StackMap stack: com.oracle.truffle.trufflenode.GraalJSAccess$6
            astore 2 /* hook */
        start local 2 // com.oracle.truffle.js.runtime.PromiseHook hook
         4: .line 2826
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* hook */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.setPromiseHook:(Lcom/oracle/truffle/js/runtime/PromiseHook;)V
         5: .line 2827
            return
        end local 2 // com.oracle.truffle.js.runtime.PromiseHook hook
        end local 1 // boolean enable
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1  enable  Z
            4    6     2    hook  Lcom/oracle/truffle/js/runtime/PromiseHook;
    MethodParameters:
        Name  Flags
      enable  

  public void isolateEnablePromiseRejectCallback(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // boolean enable
         0: .line 2830
            iload 1 /* enable */
            ifeq 2
            new com.oracle.truffle.trufflenode.GraalJSAccess$7
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$7.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
         1: .line 2862
            goto 3
      StackMap locals:
      StackMap stack:
         2: aconst_null
         3: .line 2830
      StackMap locals:
      StackMap stack: com.oracle.truffle.trufflenode.GraalJSAccess$7
            astore 2 /* tracker */
        start local 2 // com.oracle.truffle.js.runtime.PromiseRejectionTracker tracker
         4: .line 2863
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* tracker */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.setPromiseRejectionTracker:(Lcom/oracle/truffle/js/runtime/PromiseRejectionTracker;)V
         5: .line 2864
            return
        end local 2 // com.oracle.truffle.js.runtime.PromiseRejectionTracker tracker
        end local 1 // boolean enable
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1   enable  Z
            4    6     2  tracker  Lcom/oracle/truffle/js/runtime/PromiseRejectionTracker;
    MethodParameters:
        Name  Flags
      enable  

  public void isolateEnableImportMetaInitializer(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // boolean enable
         0: .line 2867
            iload 1 /* enable */
            ifeq 2
            new com.oracle.truffle.trufflenode.GraalJSAccess$8
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$8.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
         1: .line 2872
            goto 3
      StackMap locals:
      StackMap stack:
         2: aconst_null
         3: .line 2867
      StackMap locals:
      StackMap stack: com.oracle.truffle.trufflenode.GraalJSAccess$8
            astore 2 /* initializer */
        start local 2 // com.oracle.truffle.js.runtime.ImportMetaInitializer initializer
         4: .line 2873
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* initializer */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.setImportMetaInitializer:(Lcom/oracle/truffle/js/runtime/ImportMetaInitializer;)V
         5: .line 2874
            return
        end local 2 // com.oracle.truffle.js.runtime.ImportMetaInitializer initializer
        end local 1 // boolean enable
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1       enable  Z
            4    6     2  initializer  Lcom/oracle/truffle/js/runtime/ImportMetaInitializer;
    MethodParameters:
        Name  Flags
      enable  

  public void isolateEnableImportModuleDynamically(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // boolean enable
         0: .line 2877
            iload 1 /* enable */
            ifeq 2
            new com.oracle.truffle.trufflenode.GraalJSAccess$9
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$9.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
         1: .line 2882
            goto 3
      StackMap locals:
      StackMap stack:
         2: aconst_null
         3: .line 2877
      StackMap locals:
      StackMap stack: com.oracle.truffle.trufflenode.GraalJSAccess$9
            astore 2 /* callback */
        start local 2 // com.oracle.truffle.js.runtime.ImportModuleDynamicallyCallback callback
         4: .line 2883
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* callback */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.setImportModuleDynamicallyCallback:(Lcom/oracle/truffle/js/runtime/ImportModuleDynamicallyCallback;)V
         5: .line 2884
            return
        end local 2 // com.oracle.truffle.js.runtime.ImportModuleDynamicallyCallback callback
        end local 1 // boolean enable
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1    enable  Z
            4    6     2  callback  Lcom/oracle/truffle/js/runtime/ImportModuleDynamicallyCallback;
    MethodParameters:
        Name  Flags
      enable  

  public void isolateEnablePrepareStackTraceCallback(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // boolean enable
         0: .line 2887
            iload 1 /* enable */
            ifeq 2
            new com.oracle.truffle.trufflenode.GraalJSAccess$10
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$10.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
         1: .line 2892
            goto 3
      StackMap locals:
      StackMap stack:
         2: aconst_null
         3: .line 2887
      StackMap locals:
      StackMap stack: com.oracle.truffle.trufflenode.GraalJSAccess$10
            astore 2 /* callback */
        start local 2 // com.oracle.truffle.js.runtime.PrepareStackTraceCallback callback
         4: .line 2893
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* callback */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.setPrepareStackTraceCallback:(Lcom/oracle/truffle/js/runtime/PrepareStackTraceCallback;)V
         5: .line 2894
            return
        end local 2 // com.oracle.truffle.js.runtime.PrepareStackTraceCallback callback
        end local 1 // boolean enable
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1    enable  Z
            4    6     2  callback  Lcom/oracle/truffle/js/runtime/PrepareStackTraceCallback;
    MethodParameters:
        Name  Flags
      enable  

  private void exit(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // int status
         0: .line 2897
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.evaluator:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.close:()V
         1: .line 2898
            iload 1 /* status */
            invokestatic java.lang.System.exit:(I)V
         2: .line 2899
            return
        end local 1 // int status
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  status  I
    MethodParameters:
        Name  Flags
      status  

  public void isolateEnterPolyglotEngine(long, long, long, long, long, long);
    descriptor: (JJJJJJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=21, locals=15, args_size=7
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // long callback
        start local 3 // long isolate
        start local 5 // long param1
        start local 7 // long param2
        start local 9 // long args
        start local 11 // long execArgs
         0: .line 2902
            ldc "js"
            ldc "(function(r) { r.run(); })"
            ldc "polyglotEngineWrapper"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            iconst_1
            invokevirtual org.graalvm.polyglot.Source$Builder.internal:(Z)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            astore 13 /* source */
        start local 13 // org.graalvm.polyglot.Source source
         1: .line 2903
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.evaluator:Lorg/graalvm/polyglot/Context;
            aload 13 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 14 /* wrapper */
        start local 14 // org.graalvm.polyglot.Value wrapper
         2: .line 2904
            aload 14 /* wrapper */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.trufflenode.RunnableInvoker
            dup
            new com.oracle.truffle.trufflenode.GraalJSAccess$11
            dup
            aload 0 /* this */
            lload 1 /* callback */
            lload 3 /* isolate */
            lload 5 /* param1 */
            lload 7 /* param2 */
            lload 9 /* args */
            lload 11 /* execArgs */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$11.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;JJJJJJ)V
            invokespecial com.oracle.truffle.trufflenode.RunnableInvoker.<init>:(Ljava/lang/Runnable;)V
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            pop
         3: .line 2910
            return
        end local 14 // org.graalvm.polyglot.Value wrapper
        end local 13 // org.graalvm.polyglot.Source source
        end local 11 // long execArgs
        end local 9 // long args
        end local 7 // long param2
        end local 5 // long param1
        end local 3 // long isolate
        end local 1 // long callback
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1  callback  J
            0    4     3   isolate  J
            0    4     5    param1  J
            0    4     7    param2  J
            0    4     9      args  J
            0    4    11  execArgs  J
            1    4    13    source  Lorg/graalvm/polyglot/Source;
            2    4    14   wrapper  Lorg/graalvm/polyglot/Value;
    MethodParameters:
          Name  Flags
      callback  
      isolate   
      param1    
      param2    
      args      
      execArgs  

  public void isolateEnter(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // long isolate
         0: .line 2915
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.isolateStack:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.util.Deque
            astore 3 /* list */
        start local 3 // java.util.Deque list
         1: .line 2916
            aload 3 /* list */
            ifnonnull 4
         2: .line 2917
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 3 /* list */
         3: .line 2918
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.isolateStack:Ljava/lang/ThreadLocal;
            aload 3 /* list */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         4: .line 2920
      StackMap locals: java.util.Deque
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSRealm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleContext.enter:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 4 /* previous */
        start local 4 // java.lang.Object previous
         5: .line 2921
            aload 3 /* list */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 7
         6: .line 2922
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual com.oracle.truffle.trufflenode.NodeJSAgent.setThread:(Ljava/lang/Thread;)V
         7: .line 2924
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* list */
            new com.oracle.truffle.js.runtime.util.Pair
            dup
            lload 1 /* isolate */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 4 /* previous */
            invokespecial com.oracle.truffle.js.runtime.util.Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         8: .line 2925
            return
        end local 4 // java.lang.Object previous
        end local 3 // java.util.Deque list
        end local 1 // long isolate
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    9     1   isolate  J
            1    9     3      list  Ljava/util/Deque<Lcom/oracle/truffle/js/runtime/util/Pair<Ljava/lang/Long;Ljava/lang/Object;>;>;
            5    9     4  previous  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      isolate  

  public long isolateExit(long);
    descriptor: (J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // long isolate
         0: .line 2928
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.isolateStack:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.util.Deque
            astore 3 /* list */
        start local 3 // java.util.Deque list
         1: .line 2929
            aload 3 /* list */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.util.Pair
            astore 4 /* pair */
        start local 4 // com.oracle.truffle.js.runtime.util.Pair pair
         2: .line 2930
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 3
            aload 4 /* pair */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lload 1 /* isolate */
            lcmp
            ifeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 2931
      StackMap locals: java.util.Deque com.oracle.truffle.js.runtime.util.Pair
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSRealm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
            aconst_null
            aload 4 /* pair */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getSecond:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
         4: .line 2932
            aload 3 /* list */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 7
         5: .line 2933
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
            aconst_null
            invokevirtual com.oracle.truffle.trufflenode.NodeJSAgent.setThread:(Ljava/lang/Thread;)V
         6: .line 2934
            lconst_0
            lreturn
         7: .line 2936
      StackMap locals:
      StackMap stack:
            aload 3 /* list */
            invokeinterface java.util.Deque.peekLast:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.util.Pair
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lreturn
        end local 4 // com.oracle.truffle.js.runtime.util.Pair pair
        end local 3 // java.util.Deque list
        end local 1 // long isolate
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1  isolate  J
            1    8     3     list  Ljava/util/Deque<Lcom/oracle/truffle/js/runtime/util/Pair<Ljava/lang/Long;Ljava/lang/Object;>;>;
            2    8     4     pair  Lcom/oracle/truffle/js/runtime/util/Pair<Ljava/lang/Long;Ljava/lang/Object;>;
    MethodParameters:
         Name  Flags
      isolate  

  public void isolateEnqueueMicrotask(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object microtask
         0: .line 2941
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.agent:Lcom/oracle/truffle/trufflenode/NodeJSAgent;
            aload 1 /* microtask */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokevirtual com.oracle.truffle.trufflenode.NodeJSAgent.enqueuePromiseJob:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 2942
            return
        end local 1 // java.lang.Object microtask
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  microtask  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      microtask  

  public void isolateSchedulePauseOnNextStatement();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 2945
            aconst_null
            invokestatic com.oracle.truffle.api.debug.Breakpoint.newBuilder:(Ljava/net/URI;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.oneShot:()Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
            invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
            astore 1 /* breakpoint */
        start local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
         1: .line 2946
            aload 0 /* this */
            ldc "debugger"
            ldc Lcom/oracle/truffle/api/debug/Debugger;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.lookupInstrument:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.debug.Debugger
            astore 2 /* debugger */
        start local 2 // com.oracle.truffle.api.debug.Debugger debugger
         2: .line 2947
            aload 2 /* debugger */
            aload 1 /* breakpoint */
            invokevirtual com.oracle.truffle.api.debug.Debugger.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
            pop
         3: .line 2948
            return
        end local 2 // com.oracle.truffle.api.debug.Debugger debugger
        end local 1 // com.oracle.truffle.api.debug.Breakpoint breakpoint
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            1    4     1  breakpoint  Lcom/oracle/truffle/api/debug/Breakpoint;
            2    4     2    debugger  Lcom/oracle/truffle/api/debug/Debugger;

  public java.lang.Object correctReturnValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 2951
            aload 1 /* value */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.INT_PLACEHOLDER:Ljava/lang/Object;
            if_acmpne 3
         1: .line 2952
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         2: .line 2953
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.getSharedBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getInt:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         3: .line 2954
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.SAFE_INT_PLACEHOLDER:Ljava/lang/Object;
            if_acmpne 6
         4: .line 2955
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         5: .line 2956
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.getSharedBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getLong:()J
            invokestatic com.oracle.truffle.js.runtime.SafeInteger.valueOf:(J)Lcom/oracle/truffle/js/runtime/SafeInteger;
            areturn
         6: .line 2957
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.DOUBLE_PLACEHOLDER:Ljava/lang/Object;
            if_acmpne 9
         7: .line 2958
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         8: .line 2959
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.getSharedBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getDouble:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
         9: .line 2961
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   10     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public void stringExternalResourceCallback(java.lang.Object, long, long);
    descriptor: (Ljava/lang/Object;JJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=7, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
        start local 2 // long data
        start local 4 // long callbackPointer
         0: .line 2966
            new com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback
            dup
            aload 1 /* object */
            lload 2 /* data */
            lload 4 /* callbackPointer */
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbackQueue:Ljava/lang/ref/ReferenceQueue;
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback.<init>:(Ljava/lang/Object;JJILjava/lang/ref/ReferenceQueue;)V
            astore 6 /* weakCallback */
        start local 6 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback weakCallback
         1: .line 2967
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.weakCallbacks:Ljava/util/Set;
            aload 6 /* weakCallback */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 2968
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.pollWeakCallbackQueue:(Z)V
         3: .line 2969
            return
        end local 6 // com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback weakCallback
        end local 4 // long callbackPointer
        end local 2 // long data
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1           object  Ljava/lang/Object;
            0    4     2             data  J
            0    4     4  callbackPointer  J
            1    4     6     weakCallback  Lcom/oracle/truffle/trufflenode/GraalJSAccess$WeakCallback;
    MethodParameters:
                 Name  Flags
      object           
      data             
      callbackPointer  

  public java.lang.Object proxyGetTarget(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object proxy
         0: .line 2972
            aload 1 /* proxy */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.getTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object proxy
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  proxy  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      proxy  

  public java.lang.Object proxyGetHandler(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object proxy
         0: .line 2976
            aload 1 /* proxy */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.getHandler:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 1 // java.lang.Object proxy
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  proxy  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      proxy  

  public boolean proxyIsFunction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object proxy
         0: .line 2980
            aload 1 /* proxy */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isCallableProxy:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 1 // java.lang.Object proxy
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  proxy  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      proxy  

  public java.lang.Object booleanObjectNew(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // boolean value
         0: .line 2984
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            iload 2 /* value */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSBoolean.create:(Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // boolean value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2    value  Z
    MethodParameters:
         Name  Flags
      context  
      value    

  public boolean booleanObjectValueOf(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 2988
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSBoolean.valueOf:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public java.lang.Object stringObjectNew(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object value
         0: .line 2992
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* value */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.builtins.JSString.create:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2    value  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      value    

  public java.lang.String stringObjectValueOf(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object object
         0: .line 2996
            aload 1 /* object */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSString.getString:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public java.lang.Object numberObjectNew(java.lang.Object, double);
    descriptor: (Ljava/lang/Object;D)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // double value
         0: .line 3000
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            dload 2 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSNumber.create:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Number;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // double value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  context  Ljava/lang/Object;
            0    1     2    value  D
    MethodParameters:
         Name  Flags
      context  
      value    

  private static java.lang.String regexpFlagsToString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int flags
         0: .line 3004
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* builder */
        start local 1 // java.lang.StringBuilder builder
         1: .line 3005
            iload 0 /* flags */
            iconst_1
            iand
            ifeq 4
         2: .line 3006
            aload 1 /* builder */
            bipush 103
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 3007
            goto 18
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
         4: iload 0 /* flags */
            iconst_2
            iand
            ifeq 7
         5: .line 3008
            aload 1 /* builder */
            bipush 105
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 3009
            goto 18
      StackMap locals:
      StackMap stack:
         7: iload 0 /* flags */
            iconst_4
            iand
            ifeq 10
         8: .line 3010
            aload 1 /* builder */
            bipush 109
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 3011
            goto 18
      StackMap locals:
      StackMap stack:
        10: iload 0 /* flags */
            bipush 8
            iand
            ifeq 13
        11: .line 3012
            aload 1 /* builder */
            bipush 121
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 3013
            goto 18
      StackMap locals:
      StackMap stack:
        13: iload 0 /* flags */
            bipush 16
            iand
            ifeq 16
        14: .line 3014
            aload 1 /* builder */
            bipush 117
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 3015
            goto 18
      StackMap locals:
      StackMap stack:
        16: iload 0 /* flags */
            bipush 32
            iand
            ifeq 18
        17: .line 3016
            aload 1 /* builder */
            bipush 115
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 3018
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder builder
        end local 0 // int flags
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0    flags  I
            1   19     1  builder  Ljava/lang/StringBuilder;
    MethodParameters:
       Name  Flags
      flags  

  public java.lang.Object regexpNew(java.lang.Object, java.lang.Object, int);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object pattern
        start local 3 // int flags
         0: .line 3022
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* jsContext */
        start local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
         1: .line 3023
            aload 4 /* jsContext */
            aload 2 /* pattern */
            checkcast java.lang.String
            iload 3 /* flags */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.regexpCreate:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;I)Ljava/lang/Object;
            areturn
        end local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 3 // int flags
        end local 2 // java.lang.Object pattern
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1    context  Ljava/lang/Object;
            0    2     2    pattern  Ljava/lang/Object;
            0    2     3      flags  I
            1    2     4  jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
         Name  Flags
      context  
      pattern  
      flags    

  public static java.lang.Object regexpCreate(com.oracle.truffle.js.runtime.JSContext, java.lang.String, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;I)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // java.lang.String pattern
        start local 2 // int v8Flags
         0: .line 3027
            aload 1 /* pattern */
            iload 2 /* v8Flags */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.regexpFlagsToString:(I)Ljava/lang/String;
            aload 0 /* context */
            invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$CompileRegexNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$CompileRegexNode;
            invokestatic com.oracle.truffle.js.runtime.RegexCompilerInterface.compile:(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/util/TRegexUtil$CompileRegexNode;)Ljava/lang/Object;
            astore 3 /* compiledRegexp */
        start local 3 // java.lang.Object compiledRegexp
         1: .line 3028
            aload 0 /* context */
            aload 3 /* compiledRegexp */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.create:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 3 // java.lang.Object compiledRegexp
        end local 2 // int v8Flags
        end local 1 // java.lang.String pattern
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0         context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    2     1         pattern  Ljava/lang/String;
            0    2     2         v8Flags  I
            1    2     3  compiledRegexp  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      pattern  
      v8Flags  

  public java.lang.String regexpGetSource(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object regexp
         0: .line 3033
            aload 1 /* regexp */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.regexpPattern:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object regexp
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  regexp  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      regexp  

  public static java.lang.String regexpPattern(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject regexp
         0: .line 3037
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 1
            aload 0 /* regexp */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.isJSRegExp:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3038
      StackMap locals:
      StackMap stack:
            aload 0 /* regexp */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.getCompiledRegex:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            astore 1 /* compiledRegex */
        start local 1 // java.lang.Object compiledRegex
         2: .line 3039
            invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadStringMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadStringMemberNode;
            aload 1 /* compiledRegex */
            ldc "pattern"
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadStringMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object compiledRegex
        end local 0 // com.oracle.truffle.api.object.DynamicObject regexp
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0         regexp  Lcom/oracle/truffle/api/object/DynamicObject;
            2    3     1  compiledRegex  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      regexp  

  public int regexpGetFlags(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object regexp
         0: .line 3044
            aload 1 /* regexp */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.regexpV8Flags:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            ireturn
        end local 1 // java.lang.Object regexp
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  regexp  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      regexp  

  public static int regexpV8Flags(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject regexp
         0: .line 3048
            aload 0 /* regexp */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSRegExp.getCompiledRegex:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            astore 1 /* compiledRegex */
        start local 1 // java.lang.Object compiledRegex
         1: .line 3049
            invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadMemberNode;
            aload 1 /* compiledRegex */
            ldc "flags"
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* flagsObj */
        start local 2 // java.lang.Object flagsObj
         2: .line 3051
            iconst_0
            istore 3 /* v8Flags */
        start local 3 // int v8Flags
         3: .line 3052
            invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadBooleanMemberNode;
            aload 2 /* flagsObj */
            ldc "global"
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Z
            ifeq 5
         4: .line 3053
            iload 3 /* v8Flags */
            iconst_1
            ior
            istore 3 /* v8Flags */
         5: .line 3055
      StackMap locals: java.lang.Object java.lang.Object int
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadBooleanMemberNode;
            aload 2 /* flagsObj */
            ldc "ignoreCase"
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Z
            ifeq 7
         6: .line 3056
            iload 3 /* v8Flags */
            iconst_2
            ior
            istore 3 /* v8Flags */
         7: .line 3058
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadBooleanMemberNode;
            aload 2 /* flagsObj */
            ldc "multiline"
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Z
            ifeq 9
         8: .line 3059
            iload 3 /* v8Flags */
            iconst_4
            ior
            istore 3 /* v8Flags */
         9: .line 3061
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadBooleanMemberNode;
            aload 2 /* flagsObj */
            ldc "sticky"
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Z
            ifeq 11
        10: .line 3062
            iload 3 /* v8Flags */
            bipush 8
            ior
            istore 3 /* v8Flags */
        11: .line 3064
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.getUncached:()Lcom/oracle/truffle/js/runtime/util/TRegexUtil$InteropReadBooleanMemberNode;
            aload 2 /* flagsObj */
            ldc "unicode"
            invokevirtual com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode.execute:(Ljava/lang/Object;Ljava/lang/String;)Z
            ifeq 13
        12: .line 3065
            iload 3 /* v8Flags */
            bipush 16
            ior
            istore 3 /* v8Flags */
        13: .line 3067
      StackMap locals:
      StackMap stack:
            iload 3 /* v8Flags */
            ireturn
        end local 3 // int v8Flags
        end local 2 // java.lang.Object flagsObj
        end local 1 // java.lang.Object compiledRegex
        end local 0 // com.oracle.truffle.api.object.DynamicObject regexp
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0         regexp  Lcom/oracle/truffle/api/object/DynamicObject;
            1   14     1  compiledRegex  Ljava/lang/Object;
            2   14     2       flagsObj  Ljava/lang/Object;
            3   14     3        v8Flags  I
    MethodParameters:
        Name  Flags
      regexp  

  public java.lang.Object[] findDynamicObjectFields(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
         0: .line 3071
            getstatic com.oracle.truffle.js.runtime.JSConfig.SubstrateVM:Z
            ifne 7
         1: .line 3072
            aload 0 /* this */
            aload 1 /* context */
            iconst_4
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.arrayBufferNew:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 2 /* arrayBuffer */
        start local 2 // java.lang.Object arrayBuffer
         2: .line 3073
            aload 0 /* this */
            aload 2 /* arrayBuffer */
            iconst_2
            iconst_1
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.uint8ArrayNew:(Ljava/lang/Object;II)Ljava/lang/Object;
            astore 3 /* typedArray */
        start local 3 // java.lang.Object typedArray
         3: .line 3075
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 3076
            aload 2 /* arrayBuffer */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "byteBuffer"
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.findDeclaredField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            aastore
            dup
            iconst_1
         5: .line 3077
            aload 3 /* typedArray */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "arrayBuffer"
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.findDeclaredField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            aastore
         6: .line 3075
            areturn
        end local 3 // java.lang.Object typedArray
        end local 2 // java.lang.Object arrayBuffer
         7: .line 3080
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1      context  Ljava/lang/Object;
            2    7     2  arrayBuffer  Ljava/lang/Object;
            3    7     3   typedArray  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  

  private static java.lang.reflect.Field findDeclaredField(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Class bottom
        start local 1 // java.lang.String fieldName
         0: .line 3084
            aload 0 /* bottom */
            astore 2 /* cls */
        start local 2 // java.lang.Class cls
         1: goto 9
         2: .line 3086
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* cls */
            aload 1 /* fieldName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
         3: areturn
         4: .line 3087
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldException
            pop
         5: .line 3088
            goto 8
         6: .line 3089
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         7: .line 3090
            goto 10
         8: .line 3084
      StackMap locals:
      StackMap stack:
            aload 2 /* cls */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 2 /* cls */
      StackMap locals:
      StackMap stack:
         9: aload 2 /* cls */
            ifnull 10
            aload 2 /* cls */
            ldc Ljava/lang/Object;
            if_acmpne 2
        end local 2 // java.lang.Class cls
        10: .line 3093
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String fieldName
        end local 0 // java.lang.Class bottom
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0     bottom  Ljava/lang/Class<*>;
            0   11     1  fieldName  Ljava/lang/String;
            1   10     2        cls  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldException
           2     3       6  Class java.lang.SecurityException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/lang/reflect/Field;
    MethodParameters:
           Name  Flags
      bottom     
      fieldName  

  public java.lang.Object jsonParse(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object string
         0: .line 3097
            new com.oracle.truffle.js.builtins.helper.TruffleJSONParser
            dup
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokespecial com.oracle.truffle.js.builtins.helper.TruffleJSONParser.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;)V
            astore 3 /* parser */
        start local 3 // com.oracle.truffle.js.builtins.helper.TruffleJSONParser parser
         1: .line 3098
            aload 3 /* parser */
            aload 2 /* string */
            checkcast java.lang.String
            invokevirtual com.oracle.truffle.js.builtins.helper.TruffleJSONParser.parse:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 3 // com.oracle.truffle.js.builtins.helper.TruffleJSONParser parser
        end local 2 // java.lang.Object string
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  context  Ljava/lang/Object;
            0    2     2   string  Ljava/lang/Object;
            1    2     3   parser  Lcom/oracle/truffle/js/builtins/helper/TruffleJSONParser;
    MethodParameters:
         Name  Flags
      context  
      string   

  public java.lang.String jsonStringify(java.lang.Object, java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object object
        start local 3 // java.lang.String gap
         0: .line 3102
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            getstatic com.oracle.truffle.js.builtins.JSONBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            ldc "stringify"
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.lookupFunction:(Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* stringify */
        start local 4 // com.oracle.truffle.api.object.DynamicObject stringify
         1: .line 3103
            aload 4 /* stringify */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 3104
            aload 2 /* object */
            aastore
            dup
            iconst_1
         3: .line 3105
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aastore
            dup
            iconst_2
         4: .line 3106
            aload 3 /* gap */
            ifnonnull 5
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            goto 6
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object java.lang.String com.oracle.truffle.api.object.DynamicObject
      StackMap stack: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.objects.JSDynamicObject java.lang.Object[] java.lang.Object[] int
         5: aload 3 /* gap */
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object java.lang.String com.oracle.truffle.api.object.DynamicObject
      StackMap stack: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.objects.JSDynamicObject java.lang.Object[] java.lang.Object[] int java.lang.Object
         6: aastore
         7: .line 3103
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.call:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject stringify
        end local 3 // java.lang.String gap
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1    context  Ljava/lang/Object;
            0    8     2     object  Ljava/lang/Object;
            0    8     3        gap  Ljava/lang/String;
            1    8     4  stringify  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      context  
      object   
      gap      

  public java.lang.Object promiseResult(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object promise
         0: .line 3111
            aload 1 /* promise */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.js.runtime.builtins.JSPromise.PROMISE_RESULT:Lcom/oracle/truffle/api/object/HiddenKey;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object promise
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  promise  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      promise  

  public int promiseState(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object promise
         0: .line 3115
            aload 1 /* promise */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSPromise.getPromiseState:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            ireturn
        end local 1 // java.lang.Object promise
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  promise  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      promise  

  public java.lang.Object promiseResolverNew(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
         0: .line 3119
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.getResolverFactory:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* resolverFactory */
        start local 2 // com.oracle.truffle.api.object.DynamicObject resolverFactory
         1: .line 3120
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aload 2 /* resolverFactory */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.RESOLVER_RESOLVE:Lcom/oracle/truffle/js/runtime/Symbol;
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.RESOLVER_REJECT:Lcom/oracle/truffle/js/runtime/Symbol;
            aastore
            invokestatic com.oracle.truffle.js.runtime.JSArguments.create:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.call:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject resolverFactory
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1          context  Ljava/lang/Object;
            1    2     2  resolverFactory  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      context  

  private com.oracle.truffle.api.object.DynamicObject getResolverFactory(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object realm
         0: .line 3124
            aload 1 /* realm */
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.getRealmEmbedderData:(Ljava/lang/Object;)Lcom/oracle/truffle/trufflenode/RealmData;
            astore 2 /* data */
        start local 2 // com.oracle.truffle.trufflenode.RealmData data
         1: .line 3125
            aload 2 /* data */
            invokevirtual com.oracle.truffle.trufflenode.RealmData.getResolverFactory:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* resolverFactory */
        start local 3 // com.oracle.truffle.api.object.DynamicObject resolverFactory
         2: .line 3126
            aload 3 /* resolverFactory */
            ifnonnull 5
         3: .line 3127
            aload 0 /* this */
            aload 1 /* realm */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.createResolverFactory:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* resolverFactory */
         4: .line 3128
            aload 2 /* data */
            aload 3 /* resolverFactory */
            invokevirtual com.oracle.truffle.trufflenode.RealmData.setResolverFactory:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         5: .line 3130
      StackMap locals: com.oracle.truffle.trufflenode.RealmData com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 3 /* resolverFactory */
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject resolverFactory
        end local 2 // com.oracle.truffle.trufflenode.RealmData data
        end local 1 // java.lang.Object realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1            realm  Ljava/lang/Object;
            1    6     2             data  Lcom/oracle/truffle/trufflenode/RealmData;
            2    6     3  resolverFactory  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  private com.oracle.truffle.api.object.DynamicObject createResolverFactory(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 3134
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.js.runtime.JSContext context
         1: .line 3135
            aload 2 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            checkcast com.oracle.truffle.js.parser.JSParser
            astore 3 /* parser */
        start local 3 // com.oracle.truffle.js.parser.JSParser parser
         2: .line 3136
            ldc "(function(resolveKey, rejectKey) {\n    var resolve, reject;\n    var promise = new Promise(function() {\n        resolve = arguments[0];\n        reject = arguments[1];\n    });\n    Object.defineProperty(promise, resolveKey, { value : resolve });\n    Object.defineProperty(promise, rejectKey, { value : reject });\n    return promise;\n})"
            astore 4 /* code */
        start local 4 // java.lang.String code
         3: .line 3146
            aload 3 /* parser */
            aload 2 /* context */
            aload 4 /* code */
            invokeinterface com.oracle.truffle.js.parser.JSParser.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 5 /* scriptNode */
        start local 5 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
         4: .line 3147
            aload 5 /* scriptNode */
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.run:(Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            areturn
        end local 5 // com.oracle.truffle.js.nodes.ScriptNode scriptNode
        end local 4 // java.lang.String code
        end local 3 // com.oracle.truffle.js.parser.JSParser parser
        end local 2 // com.oracle.truffle.js.runtime.JSContext context
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1       realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    5     2     context  Lcom/oracle/truffle/js/runtime/JSContext;
            2    5     3      parser  Lcom/oracle/truffle/js/parser/JSParser;
            3    5     4        code  Ljava/lang/String;
            4    5     5  scriptNode  Lcom/oracle/truffle/js/nodes/ScriptNode;
    MethodParameters:
       Name  Flags
      realm  

  public boolean promiseResolverResolve(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object resolver
        start local 2 // java.lang.Object value
         0: .line 3151
            aload 1 /* resolver */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.RESOLVER_RESOLVE:Lcom/oracle/truffle/js/runtime/Symbol;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* resolve */
        start local 3 // java.lang.Object resolve
         1: .line 3152
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aload 3 /* resolve */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* value */
            aastore
            invokestatic com.oracle.truffle.js.runtime.JSArguments.create:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 3153
            iconst_1
            ireturn
        end local 3 // java.lang.Object resolve
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object resolver
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  resolver  Ljava/lang/Object;
            0    3     2     value  Ljava/lang/Object;
            1    3     3   resolve  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      resolver  
      value     

  public boolean promiseResolverReject(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object resolver
        start local 2 // java.lang.Object value
         0: .line 3157
            aload 1 /* resolver */
            checkcast com.oracle.truffle.api.object.DynamicObject
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.RESOLVER_REJECT:Lcom/oracle/truffle/js/runtime/Symbol;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* reject */
        start local 3 // java.lang.Object reject
         1: .line 3158
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aload 3 /* reject */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* value */
            aastore
            invokestatic com.oracle.truffle.js.runtime.JSArguments.create:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 3159
            iconst_1
            ireturn
        end local 3 // java.lang.Object reject
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object resolver
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1  resolver  Ljava/lang/Object;
            0    3     2     value  Ljava/lang/Object;
            1    3     3    reject  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      resolver  
      value     

  private com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader getModuleLoader();
    descriptor: ()Lcom/oracle/truffle/trufflenode/GraalJSAccess$ESModuleLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 3163
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.moduleLoader:Lcom/oracle/truffle/trufflenode/GraalJSAccess$ESModuleLoader;
            ifnonnull 2
         1: .line 3164
            aload 0 /* this */
            new com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader
            dup
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader.<init>:()V
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.moduleLoader:Lcom/oracle/truffle/trufflenode/GraalJSAccess$ESModuleLoader;
         2: .line 3166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.moduleLoader:Lcom/oracle/truffle/trufflenode/GraalJSAccess$ESModuleLoader;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public java.lang.Object moduleCompile(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object sourceCode
        start local 3 // java.lang.Object name
        start local 4 // java.lang.Object hostDefinedOptions
         0: .line 3170
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 5 /* jsContext */
        start local 5 // com.oracle.truffle.js.runtime.JSContext jsContext
         1: .line 3171
            aload 5 /* jsContext */
            invokestatic com.oracle.truffle.js.nodes.NodeFactory.getInstance:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/NodeFactory;
            astore 6 /* factory */
        start local 6 // com.oracle.truffle.js.nodes.NodeFactory factory
         2: .line 3172
            aload 3 /* name */
            checkcast java.lang.String
            astore 7 /* moduleName */
        start local 7 // java.lang.String moduleName
         3: .line 3173
            ldc "js"
            aload 2 /* sourceCode */
            checkcast java.lang.String
            aload 7 /* moduleName */
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            astore 8 /* builder */
        start local 8 // com.oracle.truffle.api.source.Source$LiteralBuilder builder
         4: .line 3175
            aload 8 /* builder */
            new java.net.URI
            dup
            aload 7 /* moduleName */
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.uri:(Ljava/net/URI;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            astore 8 /* builder */
         5: .line 3176
            goto 7
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.nodes.NodeFactory java.lang.String com.oracle.truffle.api.source.Source$LiteralBuilder
      StackMap stack: java.net.URISyntaxException
         6: pop
         7: .line 3178
      StackMap locals:
      StackMap stack:
            aload 8 /* builder */
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            astore 9 /* source */
        start local 9 // com.oracle.truffle.api.source.Source source
         8: .line 3179
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.hostDefinedOptionsMap:Ljava/util/Map;
            aload 9 /* source */
            aload 4 /* hostDefinedOptions */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 3180
            aload 6 /* factory */
            aload 5 /* jsContext */
            aload 9 /* source */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.getModuleLoader:()Lcom/oracle/truffle/trufflenode/GraalJSAccess$ESModuleLoader;
            invokestatic com.oracle.truffle.js.parser.JavaScriptTranslator.translateModule:(Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/js/runtime/objects/JSModuleLoader;)Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
            areturn
        end local 9 // com.oracle.truffle.api.source.Source source
        end local 8 // com.oracle.truffle.api.source.Source$LiteralBuilder builder
        end local 7 // java.lang.String moduleName
        end local 6 // com.oracle.truffle.js.nodes.NodeFactory factory
        end local 5 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 4 // java.lang.Object hostDefinedOptions
        end local 3 // java.lang.Object name
        end local 2 // java.lang.Object sourceCode
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   10     0                this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   10     1             context  Ljava/lang/Object;
            0   10     2          sourceCode  Ljava/lang/Object;
            0   10     3                name  Ljava/lang/Object;
            0   10     4  hostDefinedOptions  Ljava/lang/Object;
            1   10     5           jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
            2   10     6             factory  Lcom/oracle/truffle/js/nodes/NodeFactory;
            3   10     7          moduleName  Ljava/lang/String;
            4   10     8             builder  Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            8   10     9              source  Lcom/oracle/truffle/api/source/Source;
      Exception table:
        from    to  target  type
           4     5       6  Class java.net.URISyntaxException
    MethodParameters:
                    Name  Flags
      context             
      sourceCode          
      name                
      hostDefinedOptions  

  public void moduleInstantiate(java.lang.Object, java.lang.Object, long);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object module
        start local 3 // long resolveCallback
         0: .line 3184
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            astore 5 /* jsRealm */
        start local 5 // com.oracle.truffle.js.runtime.JSRealm jsRealm
         1: .line 3185
            aload 5 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 6 /* jsContext */
        start local 6 // com.oracle.truffle.js.runtime.JSContext jsContext
         2: .line 3186
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.getModuleLoader:()Lcom/oracle/truffle/trufflenode/GraalJSAccess$ESModuleLoader;
            astore 7 /* loader */
        start local 7 // com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader loader
         3: .line 3187
            aload 7 /* loader */
            lload 3 /* resolveCallback */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader.setResolver:(J)V
         4: .line 3189
            aload 6 /* jsContext */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            aload 5 /* jsRealm */
            aload 2 /* module */
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            invokeinterface com.oracle.truffle.js.runtime.Evaluator.moduleInstantiation:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;)V
         5: .line 3190
            goto 9
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.lang.Object long com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader
      StackMap stack: java.lang.Throwable
         6: astore 8
         7: .line 3191
            aload 7 /* loader */
            lconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader.setResolver:(J)V
         8: .line 3192
            aload 8
            athrow
         9: .line 3191
      StackMap locals:
      StackMap stack:
            aload 7 /* loader */
            lconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader.setResolver:(J)V
        10: .line 3193
            return
        end local 7 // com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader loader
        end local 6 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 5 // com.oracle.truffle.js.runtime.JSRealm jsRealm
        end local 3 // long resolveCallback
        end local 2 // java.lang.Object module
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   11     1          context  Ljava/lang/Object;
            0   11     2           module  Ljava/lang/Object;
            0   11     3  resolveCallback  J
            1   11     5          jsRealm  Lcom/oracle/truffle/js/runtime/JSRealm;
            2   11     6        jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
            3   11     7           loader  Lcom/oracle/truffle/trufflenode/GraalJSAccess$ESModuleLoader;
      Exception table:
        from    to  target  type
           4     6       6  any
    MethodParameters:
                 Name  Flags
      context          
      module           
      resolveCallback  

  public java.lang.Object moduleEvaluate(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object module
         0: .line 3196
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            astore 3 /* jsRealm */
        start local 3 // com.oracle.truffle.js.runtime.JSRealm jsRealm
         1: .line 3197
            aload 3 /* jsRealm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* jsContext */
        start local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
         2: .line 3198
            aload 2 /* module */
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            astore 5 /* moduleRecord */
        start local 5 // com.oracle.truffle.js.runtime.objects.JSModuleRecord moduleRecord
         3: .line 3199
            aload 5 /* moduleRecord */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.isEvaluated:()Z
            ifeq 5
            aload 5 /* moduleRecord */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getEvaluationError:()Ljava/lang/Throwable;
            ifnonnull 5
         4: .line 3200
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            areturn
         5: .line 3202
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.objects.JSModuleRecord
      StackMap stack:
            aload 4 /* jsContext */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            aload 3 /* jsRealm */
            aload 5 /* moduleRecord */
            invokeinterface com.oracle.truffle.js.runtime.Evaluator.moduleEvaluation:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;)Ljava/lang/Object;
            pop
         6: .line 3204
            aload 5 /* moduleRecord */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getEvaluationError:()Ljava/lang/Throwable;
            astore 6 /* evaluationError */
        start local 6 // java.lang.Throwable evaluationError
         7: .line 3205
            aload 6 /* evaluationError */
            ifnonnull 9
         8: .line 3206
            aload 5 /* moduleRecord */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getExecutionResult:()Ljava/lang/Object;
            areturn
         9: .line 3208
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6 /* evaluationError */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.rethrow:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.lang.Throwable evaluationError
        end local 5 // com.oracle.truffle.js.runtime.objects.JSModuleRecord moduleRecord
        end local 4 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 3 // com.oracle.truffle.js.runtime.JSRealm jsRealm
        end local 2 // java.lang.Object module
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   10     1          context  Ljava/lang/Object;
            0   10     2           module  Ljava/lang/Object;
            1   10     3          jsRealm  Lcom/oracle/truffle/js/runtime/JSRealm;
            2   10     4        jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
            3   10     5     moduleRecord  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
            7   10     6  evaluationError  Ljava/lang/Throwable;
    MethodParameters:
         Name  Flags
      context  
      module   

  public int moduleGetStatus(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object module
         0: .line 3213
            aload 1 /* module */
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            astore 2 /* record */
        start local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
         1: .line 3214
            invokestatic com.oracle.truffle.trufflenode.GraalJSAccess.$SWITCH_TABLE$com$oracle$truffle$js$runtime$objects$JSModuleRecord$Status:()[I
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getStatus:()Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord$Status;
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 2
                    2: 3
                    3: 4
                    4: 5
                    5: 6
              default: 6
          }
         2: .line 3216
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSModuleRecord
      StackMap stack:
            iconst_0
            ireturn
         3: .line 3218
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 3220
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         5: .line 3222
      StackMap locals:
      StackMap stack:
            iconst_3
            ireturn
         6: .line 3225
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 7
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getStatus:()Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord$Status;
            getstatic com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.Evaluated:Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord$Status;
            if_acmpeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 3226
      StackMap locals:
      StackMap stack:
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getEvaluationError:()Ljava/lang/Throwable;
            ifnonnull 9
         8: .line 3227
            iconst_4
            ireturn
         9: .line 3229
      StackMap locals:
      StackMap stack:
            iconst_5
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
        end local 1 // java.lang.Object module
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   10     1  module  Ljava/lang/Object;
            1   10     2  record  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
    MethodParameters:
        Name  Flags
      module  

  public java.lang.Object moduleGetException(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object module
         0: .line 3235
            aload 1 /* module */
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            astore 2 /* record */
        start local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
         1: .line 3236
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getEvaluationError:()Ljava/lang/Throwable;
            astore 3 /* evaluationError */
        start local 3 // java.lang.Throwable evaluationError
         2: .line 3237
            aload 3 /* evaluationError */
            instanceof com.oracle.truffle.js.runtime.GraalJSException
            ifeq 4
         3: .line 3238
            aload 3 /* evaluationError */
            checkcast com.oracle.truffle.js.runtime.GraalJSException
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.GraalJSException.getErrorObjectEager:(Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/Object;
            areturn
         4: .line 3240
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSModuleRecord java.lang.Throwable
      StackMap stack:
            aload 3 /* evaluationError */
            areturn
        end local 3 // java.lang.Throwable evaluationError
        end local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
        end local 1 // java.lang.Object module
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1           module  Ljava/lang/Object;
            1    5     2           record  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
            2    5     3  evaluationError  Ljava/lang/Throwable;
    MethodParameters:
        Name  Flags
      module  

  public int moduleGetRequestsLength(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object module
         0: .line 3244
            aload 1 /* module */
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            astore 2 /* record */
        start local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
         1: .line 3245
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getModule:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Module
            invokevirtual com.oracle.js.parser.ir.Module.getRequestedModules:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
        end local 1 // java.lang.Object module
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  module  Ljava/lang/Object;
            1    2     2  record  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
    MethodParameters:
        Name  Flags
      module  

  public java.lang.String moduleGetRequest(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object module
        start local 2 // int index
         0: .line 3249
            aload 1 /* module */
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            astore 3 /* record */
        start local 3 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
         1: .line 3250
            aload 3 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getModule:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Module
            invokevirtual com.oracle.js.parser.ir.Module.getRequestedModules:()Ljava/util/List;
            iload 2 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 3 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
        end local 2 // int index
        end local 1 // java.lang.Object module
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  module  Ljava/lang/Object;
            0    2     2   index  I
            1    2     3  record  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
    MethodParameters:
        Name  Flags
      module  
      index   

  public java.lang.Object moduleGetNamespace(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object module
         0: .line 3254
            aload 1 /* module */
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            astore 2 /* record */
        start local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
         1: .line 3255
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            checkcast com.oracle.truffle.js.parser.GraalJSEvaluator
            astore 3 /* graalEvaluator */
        start local 3 // com.oracle.truffle.js.parser.GraalJSEvaluator graalEvaluator
         2: .line 3256
            aload 3 /* graalEvaluator */
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.parser.GraalJSEvaluator.getModuleNamespace:(Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 3 // com.oracle.truffle.js.parser.GraalJSEvaluator graalEvaluator
        end local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
        end local 1 // java.lang.Object module
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1          module  Ljava/lang/Object;
            1    3     2          record  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
            2    3     3  graalEvaluator  Lcom/oracle/truffle/js/parser/GraalJSEvaluator;
    MethodParameters:
        Name  Flags
      module  

  public int moduleGetIdentityHash(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object module
         0: .line 3260
            aload 1 /* module */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.Object module
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  module  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      module  

  public java.lang.Object moduleCreateSyntheticModule(java.lang.String, java.lang.Object[], long);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=13, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.String moduleName
        start local 2 // java.lang.Object[] exportNames
        start local 3 // long evaluationStepsCallback
         0: .line 3264
            new com.oracle.truffle.api.frame.FrameDescriptor
            dup
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            invokespecial com.oracle.truffle.api.frame.FrameDescriptor.<init>:(Ljava/lang/Object;)V
            astore 5 /* frameDescriptor */
        start local 5 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
         1: .line 3265
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* localExportEntries */
        start local 6 // java.util.List localExportEntries
         2: .line 3266
            aload 2 /* exportNames */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 7
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.String java.lang.Object[] long com.oracle.truffle.api.frame.FrameDescriptor java.util.List top int int java.lang.Object[]
      StackMap stack:
         3: aload 10
            iload 8
            aaload
            astore 7 /* exportName */
        start local 7 // java.lang.Object exportName
         4: .line 3267
            aload 5 /* frameDescriptor */
            aload 7 /* exportName */
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.addFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
         5: .line 3268
            aload 6 /* localExportEntries */
            aload 7 /* exportName */
            checkcast java.lang.String
            invokestatic com.oracle.js.parser.ir.Module$ExportEntry.exportSpecifier:(Ljava/lang/String;)Lcom/oracle/js/parser/ir/Module$ExportEntry;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.Object exportName
         6: .line 3266
            iinc 8 1
      StackMap locals:
      StackMap stack:
         7: iload 8
            iload 9
            if_icmplt 3
         8: .line 3270
            new com.oracle.js.parser.ir.Module
            dup
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 6 /* localExportEntries */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aconst_null
            aconst_null
            invokespecial com.oracle.js.parser.ir.Module.<init>:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
            astore 7 /* moduleNode */
        start local 7 // com.oracle.js.parser.ir.Module moduleNode
         9: .line 3271
            ldc "js"
            ldc "<unavailable>"
            aload 1 /* moduleName */
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            astore 8 /* source */
        start local 8 // com.oracle.truffle.api.source.Source source
        10: .line 3272
            new com.oracle.truffle.js.runtime.objects.JSModuleRecord
            dup
            aload 7 /* moduleNode */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.getModuleLoader:()Lcom/oracle/truffle/trufflenode/GraalJSAccess$ESModuleLoader;
            aload 8 /* source */
            invokespecial com.oracle.truffle.js.runtime.objects.JSModuleRecord.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/objects/JSModuleLoader;Lcom/oracle/truffle/api/source/Source;)V
            astore 9 /* moduleRecord */
        start local 9 // com.oracle.truffle.js.runtime.objects.JSModuleRecord moduleRecord
        11: .line 3273
            aload 9 /* moduleRecord */
            aload 5 /* frameDescriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.setFrameDescriptor:(Lcom/oracle/truffle/api/frame/FrameDescriptor;)V
        12: .line 3274
            new com.oracle.truffle.trufflenode.GraalJSAccess$12
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getLanguage:()Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            aload 8 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.createUnavailableSection:()Lcom/oracle/truffle/api/source/SourceSection;
            aload 5 /* frameDescriptor */
            lload 3 /* evaluationStepsCallback */
            invokespecial com.oracle.truffle.trufflenode.GraalJSAccess$12.<init>:(Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/lang/JavaScriptLanguage;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/frame/FrameDescriptor;J)V
            astore 10 /* rootNode */
        start local 10 // com.oracle.truffle.js.runtime.JavaScriptRootNode rootNode
        13: .line 3293
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 10 /* rootNode */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 11 /* callTarget */
        start local 11 // com.oracle.truffle.api.CallTarget callTarget
        14: .line 3294
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 11 /* callTarget */
            iconst_0
            aload 1 /* moduleName */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 12 /* functionData */
        start local 12 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        15: .line 3295
            aload 9 /* moduleRecord */
            aload 12 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.setFunctionData:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
        16: .line 3296
            aload 9 /* moduleRecord */
            areturn
        end local 12 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 11 // com.oracle.truffle.api.CallTarget callTarget
        end local 10 // com.oracle.truffle.js.runtime.JavaScriptRootNode rootNode
        end local 9 // com.oracle.truffle.js.runtime.objects.JSModuleRecord moduleRecord
        end local 8 // com.oracle.truffle.api.source.Source source
        end local 7 // com.oracle.js.parser.ir.Module moduleNode
        end local 6 // java.util.List localExportEntries
        end local 5 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
        end local 3 // long evaluationStepsCallback
        end local 2 // java.lang.Object[] exportNames
        end local 1 // java.lang.String moduleName
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   17     0                     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   17     1               moduleName  Ljava/lang/String;
            0   17     2              exportNames  [Ljava/lang/Object;
            0   17     3  evaluationStepsCallback  J
            1   17     5          frameDescriptor  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            2   17     6       localExportEntries  Ljava/util/List<Lcom/oracle/js/parser/ir/Module$ExportEntry;>;
            4    6     7               exportName  Ljava/lang/Object;
            9   17     7               moduleNode  Lcom/oracle/js/parser/ir/Module;
           10   17     8                   source  Lcom/oracle/truffle/api/source/Source;
           11   17     9             moduleRecord  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
           13   17    10                 rootNode  Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
           14   17    11               callTarget  Lcom/oracle/truffle/api/CallTarget;
           15   17    12             functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
                         Name  Flags
      moduleName               
      exportNames              
      evaluationStepsCallback  final

  public void moduleSetSyntheticModuleExport(java.lang.Object, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object module
        start local 2 // java.lang.String exportName
        start local 3 // java.lang.Object exportValue
         0: .line 3300
            aload 1 /* module */
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            astore 4 /* moduleRecord */
        start local 4 // com.oracle.truffle.js.runtime.objects.JSModuleRecord moduleRecord
         1: .line 3301
            aload 4 /* moduleRecord */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            astore 5 /* frameDescriptor */
        start local 5 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
         2: .line 3302
            aload 5 /* frameDescriptor */
            aload 2 /* exportName */
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            astore 6 /* frameSlot */
        start local 6 // com.oracle.truffle.api.frame.FrameSlot frameSlot
         3: .line 3303
            aload 6 /* frameSlot */
            ifnonnull 5
         4: .line 3304
            new java.lang.StringBuilder
            dup
            ldc "Export '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* exportName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' is not defined in module"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.runtime.Errors.createReferenceError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         5: .line 3306
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSModuleRecord com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.api.frame.FrameSlot
      StackMap stack:
            aload 4 /* moduleRecord */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getEnvironment:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
            astore 7 /* frame */
        start local 7 // com.oracle.truffle.api.frame.MaterializedFrame frame
         6: .line 3307
            aload 7 /* frame */
            aload 6 /* frameSlot */
            aload 3 /* exportValue */
            invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.setObject:(Lcom/oracle/truffle/api/frame/FrameSlot;Ljava/lang/Object;)V
         7: .line 3308
            return
        end local 7 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 6 // com.oracle.truffle.api.frame.FrameSlot frameSlot
        end local 5 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
        end local 4 // com.oracle.truffle.js.runtime.objects.JSModuleRecord moduleRecord
        end local 3 // java.lang.Object exportValue
        end local 2 // java.lang.String exportName
        end local 1 // java.lang.Object module
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    8     1           module  Ljava/lang/Object;
            0    8     2       exportName  Ljava/lang/String;
            0    8     3      exportValue  Ljava/lang/Object;
            1    8     4     moduleRecord  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
            2    8     5  frameDescriptor  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            3    8     6        frameSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
            6    8     7            frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
    MethodParameters:
             Name  Flags
      module       
      exportName   
      exportValue  

  public java.lang.Object moduleGetUnboundModuleScript(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object module
         0: .line 3313
            aload 1 /* module */
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            astore 2 /* moduleRecord */
        start local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord moduleRecord
         1: .line 3314
            new com.oracle.truffle.trufflenode.info.UnboundScript
            dup
            aload 2 /* moduleRecord */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord.getSource:()Lcom/oracle/truffle/api/source/Source;
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.DUMMY_UNBOUND_MODULE_PARSE_RESULT:Ljava/nio/ByteBuffer;
            invokespecial com.oracle.truffle.trufflenode.info.UnboundScript.<init>:(Lcom/oracle/truffle/api/source/Source;Ljava/lang/Object;)V
            areturn
        end local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord moduleRecord
        end local 1 // java.lang.Object module
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1        module  Ljava/lang/Object;
            1    2     2  moduleRecord  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
    MethodParameters:
        Name  Flags
      module  

  public java.lang.String scriptOrModuleGetResourceName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object scriptOrModule
         0: .line 3318
            aload 1 /* scriptOrModule */
            checkcast com.oracle.truffle.js.runtime.objects.ScriptOrModule
            astore 2 /* record */
        start local 2 // com.oracle.truffle.js.runtime.objects.ScriptOrModule record
         1: .line 3319
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.ScriptOrModule.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.objects.ScriptOrModule record
        end local 1 // java.lang.Object scriptOrModule
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  scriptOrModule  Ljava/lang/Object;
            1    2     2          record  Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;
    MethodParameters:
                Name  Flags
      scriptOrModule  

  public java.lang.Object scriptOrModuleGetHostDefinedOptions(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object scriptOrModule
         0: .line 3323
            aload 1 /* scriptOrModule */
            checkcast com.oracle.truffle.js.runtime.objects.ScriptOrModule
            astore 2 /* record */
        start local 2 // com.oracle.truffle.js.runtime.objects.ScriptOrModule record
         1: .line 3324
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.hostDefinedOptionsMap:Ljava/util/Map;
            aload 2 /* record */
            invokevirtual com.oracle.truffle.js.runtime.objects.ScriptOrModule.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* hostDefinedOptions */
        start local 3 // java.lang.Object hostDefinedOptions
         2: .line 3325
            aload 3 /* hostDefinedOptions */
            ifnonnull 3
            iconst_0
            anewarray java.lang.Object
            goto 4
      StackMap locals: com.oracle.truffle.js.runtime.objects.ScriptOrModule java.lang.Object
      StackMap stack:
         3: aload 3 /* hostDefinedOptions */
      StackMap locals:
      StackMap stack: java.lang.Object
         4: areturn
        end local 3 // java.lang.Object hostDefinedOptions
        end local 2 // com.oracle.truffle.js.runtime.objects.ScriptOrModule record
        end local 1 // java.lang.Object scriptOrModule
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    5     1      scriptOrModule  Ljava/lang/Object;
            1    5     2              record  Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;
            2    5     3  hostDefinedOptions  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      scriptOrModule  

  public java.lang.Object valueSerializerNew(long);
    descriptor: (J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // long delegatePointer
         0: .line 3329
            new com.oracle.truffle.trufflenode.serialization.Serializer
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.mainJSContext:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            lload 1 /* delegatePointer */
            invokespecial com.oracle.truffle.trufflenode.serialization.Serializer.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/GraalJSAccess;J)V
            areturn
        end local 1 // long delegatePointer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  delegatePointer  J
    MethodParameters:
                 Name  Flags
      delegatePointer  

  public int valueSerializerSize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
         0: .line 3333
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.size:()I
            ireturn
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  serializer  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      serializer  

  public void valueSerializerRelease(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
        start local 2 // java.lang.Object targetBuffer
         0: .line 3337
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            aload 2 /* targetBuffer */
            checkcast java.nio.ByteBuffer
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.release:(Ljava/nio/ByteBuffer;)V
         1: .line 3338
            return
        end local 2 // java.lang.Object targetBuffer
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1    serializer  Ljava/lang/Object;
            0    2     2  targetBuffer  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      serializer    
      targetBuffer  

  public void valueSerializerWriteHeader(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
         0: .line 3341
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.writeHeader:()V
         1: .line 3342
            return
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  serializer  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      serializer  

  public void valueSerializerWriteValue(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
        start local 2 // java.lang.Object value
         0: .line 3345
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            aload 2 /* value */
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.writeValue:(Ljava/lang/Object;)V
         1: .line 3346
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  serializer  Ljava/lang/Object;
            0    2     2       value  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      serializer  
      value       

  public void valueSerializerWriteUint32(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
        start local 2 // int value
         0: .line 3349
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            iload 2 /* value */
            invokestatic java.lang.Integer.toUnsignedLong:(I)J
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.writeVarInt:(J)V
         1: .line 3350
            return
        end local 2 // int value
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  serializer  Ljava/lang/Object;
            0    2     2       value  I
    MethodParameters:
            Name  Flags
      serializer  
      value       

  public void valueSerializerWriteUint64(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
        start local 2 // long value
         0: .line 3353
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            lload 2 /* value */
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.writeVarInt:(J)V
         1: .line 3354
            return
        end local 2 // long value
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  serializer  Ljava/lang/Object;
            0    2     2       value  J
    MethodParameters:
            Name  Flags
      serializer  
      value       

  public void valueSerializerWriteDouble(java.lang.Object, double);
    descriptor: (Ljava/lang/Object;D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
        start local 2 // double value
         0: .line 3357
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            dload 2 /* value */
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.writeDouble:(D)V
         1: .line 3358
            return
        end local 2 // double value
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  serializer  Ljava/lang/Object;
            0    2     2       value  D
    MethodParameters:
            Name  Flags
      serializer  
      value       

  public void valueSerializerWriteRawBytes(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
        start local 2 // java.lang.Object bytes
         0: .line 3361
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            aload 2 /* bytes */
            checkcast java.nio.ByteBuffer
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.writeBytes:(Ljava/nio/ByteBuffer;)V
         1: .line 3362
            return
        end local 2 // java.lang.Object bytes
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  serializer  Ljava/lang/Object;
            0    2     2       bytes  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      serializer  
      bytes       

  public void valueSerializerSetTreatArrayBufferViewsAsHostObjects(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
        start local 2 // boolean treatArrayBufferViewsAsHostObjects
         0: .line 3365
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            iload 2 /* treatArrayBufferViewsAsHostObjects */
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.setTreatArrayBufferViewsAsHostObjects:(Z)V
         1: .line 3366
            return
        end local 2 // boolean treatArrayBufferViewsAsHostObjects
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                                Name  Signature
            0    2     0                                this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1                          serializer  Ljava/lang/Object;
            0    2     2  treatArrayBufferViewsAsHostObjects  Z
    MethodParameters:
                                    Name  Flags
      serializer                          
      treatArrayBufferViewsAsHostObjects  

  public void valueSerializerTransferArrayBuffer(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object serializer
        start local 2 // int id
        start local 3 // java.lang.Object arrayBuffer
         0: .line 3369
            aload 1 /* serializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Serializer
            iload 2 /* id */
            aload 3 /* arrayBuffer */
            invokevirtual com.oracle.truffle.trufflenode.serialization.Serializer.transferArrayBuffer:(ILjava/lang/Object;)V
         1: .line 3370
            return
        end local 3 // java.lang.Object arrayBuffer
        end local 2 // int id
        end local 1 // java.lang.Object serializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1   serializer  Ljava/lang/Object;
            0    2     2           id  I
            0    2     3  arrayBuffer  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      serializer   
      id           
      arrayBuffer  

  public java.lang.Object valueDeserializerNew(long, java.lang.Object);
    descriptor: (JLjava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // long delegate
        start local 3 // java.lang.Object buffer
         0: .line 3373
            new com.oracle.truffle.trufflenode.serialization.Deserializer
            dup
            lload 1 /* delegate */
            aload 3 /* buffer */
            checkcast java.nio.ByteBuffer
            invokespecial com.oracle.truffle.trufflenode.serialization.Deserializer.<init>:(JLjava/nio/ByteBuffer;)V
            areturn
        end local 3 // java.lang.Object buffer
        end local 1 // long delegate
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  delegate  J
            0    1     3    buffer  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      delegate  
      buffer    

  public void valueDeserializerReadHeader(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object deserializer
         0: .line 3377
            aload 1 /* deserializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Deserializer
            invokevirtual com.oracle.truffle.trufflenode.serialization.Deserializer.readHeader:()V
         1: .line 3378
            return
        end local 1 // java.lang.Object deserializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  deserializer  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      deserializer  

  public java.lang.Object valueDeserializerReadValue(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object deserializer
         0: .line 3381
            aload 2 /* deserializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Deserializer
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.trufflenode.serialization.Deserializer.readValue:(Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object deserializer
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1       context  Ljava/lang/Object;
            0    1     2  deserializer  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      context       
      deserializer  

  public int valueDeserializerReadUint32(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object deserializer
         0: .line 3385
            aload 1 /* deserializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Deserializer
            invokevirtual com.oracle.truffle.trufflenode.serialization.Deserializer.readVarInt:()I
            ireturn
        end local 1 // java.lang.Object deserializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  deserializer  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      deserializer  

  public long valueDeserializerReadUint64(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object deserializer
         0: .line 3389
            aload 1 /* deserializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Deserializer
            invokevirtual com.oracle.truffle.trufflenode.serialization.Deserializer.readVarLong:()J
            lreturn
        end local 1 // java.lang.Object deserializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  deserializer  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      deserializer  

  public double valueDeserializerReadDouble(java.lang.Object);
    descriptor: (Ljava/lang/Object;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object deserializer
         0: .line 3393
            aload 1 /* deserializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Deserializer
            invokevirtual com.oracle.truffle.trufflenode.serialization.Deserializer.readDouble:()D
            dreturn
        end local 1 // java.lang.Object deserializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  deserializer  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      deserializer  

  public int valueDeserializerReadRawBytes(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object deserializer
        start local 2 // int length
         0: .line 3397
            aload 1 /* deserializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Deserializer
            iload 2 /* length */
            invokevirtual com.oracle.truffle.trufflenode.serialization.Deserializer.readBytes:(I)I
            ireturn
        end local 2 // int length
        end local 1 // java.lang.Object deserializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  deserializer  Ljava/lang/Object;
            0    1     2        length  I
    MethodParameters:
              Name  Flags
      deserializer  
      length        

  public void valueDeserializerTransferArrayBuffer(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object deserializer
        start local 2 // int id
        start local 3 // java.lang.Object arrayBuffer
         0: .line 3401
            aload 1 /* deserializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Deserializer
            iload 2 /* id */
            aload 3 /* arrayBuffer */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokevirtual com.oracle.truffle.trufflenode.serialization.Deserializer.transferArrayBuffer:(ILcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 3402
            return
        end local 3 // java.lang.Object arrayBuffer
        end local 2 // int id
        end local 1 // java.lang.Object deserializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1  deserializer  Ljava/lang/Object;
            0    2     2            id  I
            0    2     3   arrayBuffer  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      deserializer  
      id            
      arrayBuffer   

  public int valueDeserializerGetWireFormatVersion(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object deserializer
         0: .line 3405
            aload 1 /* deserializer */
            checkcast com.oracle.truffle.trufflenode.serialization.Deserializer
            invokevirtual com.oracle.truffle.trufflenode.serialization.Deserializer.getWireFormatVersion:()I
            ireturn
        end local 1 // java.lang.Object deserializer
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  deserializer  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      deserializer  

  public java.lang.Object mapNew(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
         0: .line 3409
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* jsContext */
        start local 2 // com.oracle.truffle.js.runtime.JSContext jsContext
         1: .line 3410
            aload 2 /* jsContext */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSMap.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1    context  Ljava/lang/Object;
            1    2     2  jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
         Name  Flags
      context  

  public void mapSet(java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object set
        start local 2 // java.lang.Object key
        start local 3 // java.lang.Object value
         0: .line 3414
            aload 1 /* set */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 4 /* object */
        start local 4 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 3415
            aload 4 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSMap.getInternalMap:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/util/JSHashMap;
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSet.normalize:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* value */
            invokevirtual com.oracle.truffle.js.runtime.util.JSHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 3416
            return
        end local 4 // com.oracle.truffle.api.object.DynamicObject object
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object set
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1     set  Ljava/lang/Object;
            0    3     2     key  Ljava/lang/Object;
            0    3     3   value  Ljava/lang/Object;
            1    3     4  object  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      set    
      key    
      value  

  public java.lang.Object setNew(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object context
         0: .line 3419
            aload 1 /* context */
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* jsContext */
        start local 2 // com.oracle.truffle.js.runtime.JSContext jsContext
         1: .line 3420
            aload 2 /* jsContext */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSet.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.JSContext jsContext
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    2     1    context  Ljava/lang/Object;
            1    2     2  jsContext  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
         Name  Flags
      context  

  public void setAdd(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object set
        start local 2 // java.lang.Object key
         0: .line 3424
            aload 1 /* set */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 3 /* object */
        start local 3 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 3425
            aload 3 /* object */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSet.getInternalSet:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/util/JSHashMap;
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSet.normalize:(Ljava/lang/Object;)Ljava/lang/Object;
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokevirtual com.oracle.truffle.js.runtime.util.JSHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 3426
            return
        end local 3 // com.oracle.truffle.api.object.DynamicObject object
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object set
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    3     1     set  Ljava/lang/Object;
            0    3     2     key  Ljava/lang/Object;
            1    3     3  object  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      set   
      key   

  public long bigIntInt64Value(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 3429
            aload 1 /* value */
            checkcast com.oracle.truffle.js.runtime.BigInt
            invokevirtual com.oracle.truffle.js.runtime.BigInt.bigIntegerValue:()Ljava/math/BigInteger;
            astore 2 /* bigInt */
        start local 2 // java.math.BigInteger bigInt
         1: .line 3430
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         2: .line 3431
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.bitLength:()I
            bipush 63
            if_icmpgt 3
            iconst_1
            goto 4
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.math.BigInteger
      StackMap stack: java.nio.ByteBuffer
         3: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.math.BigInteger
      StackMap stack: java.nio.ByteBuffer int
         4: invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         5: .line 3432
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.longValue:()J
            lreturn
        end local 2 // java.math.BigInteger bigInt
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1   value  Ljava/lang/Object;
            1    6     2  bigInt  Ljava/math/BigInteger;
    MethodParameters:
       Name  Flags
      value  

  public long bigIntUint64Value(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 3436
            aload 1 /* value */
            checkcast com.oracle.truffle.js.runtime.BigInt
            invokevirtual com.oracle.truffle.js.runtime.BigInt.bigIntegerValue:()Ljava/math/BigInteger;
            astore 2 /* bigInt */
        start local 2 // java.math.BigInteger bigInt
         1: .line 3437
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         2: .line 3438
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.signum:()I
            iconst_m1
            if_icmpeq 3
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.bitLength:()I
            bipush 64
            if_icmpgt 3
            iconst_1
            goto 4
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.math.BigInteger
      StackMap stack: java.nio.ByteBuffer
         3: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.math.BigInteger
      StackMap stack: java.nio.ByteBuffer int
         4: invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         5: .line 3439
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.longValue:()J
            lreturn
        end local 2 // java.math.BigInteger bigInt
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1   value  Ljava/lang/Object;
            1    6     2  bigInt  Ljava/math/BigInteger;
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object bigIntNew(long);
    descriptor: (J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // long value
         0: .line 3443
            lload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.BigInt.valueOf:(J)Lcom/oracle/truffle/js/runtime/BigInt;
            areturn
        end local 1 // long value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    1     1  value  J
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object bigIntNewFromUnsigned(long);
    descriptor: (J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // long value
         0: .line 3447
            lload 1 /* value */
            ldc 9223372036854775807
            land
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            astore 3 /* bigInt */
        start local 3 // java.math.BigInteger bigInt
         1: .line 3448
            lload 1 /* value */
            lconst_0
            lcmp
            ifge 3
         2: .line 3449
            aload 3 /* bigInt */
            bipush 63
            invokevirtual java.math.BigInteger.setBit:(I)Ljava/math/BigInteger;
            astore 3 /* bigInt */
         3: .line 3451
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new com.oracle.truffle.js.runtime.BigInt
            dup
            aload 3 /* bigInt */
            invokespecial com.oracle.truffle.js.runtime.BigInt.<init>:(Ljava/math/BigInteger;)V
            areturn
        end local 3 // java.math.BigInteger bigInt
        end local 1 // long value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1   value  J
            1    4     3  bigInt  Ljava/math/BigInteger;
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object bigIntNewFromWords();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 3455
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         1: .line 3456
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 1 /* sign */
        start local 1 // int sign
         2: .line 3457
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 2 /* count */
        start local 2 // int count
         3: .line 3458
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            astore 3 /* result */
        start local 3 // java.math.BigInteger result
         4: .line 3459
            iconst_0
            istore 4 /* wordIdx */
        start local 4 // int wordIdx
         5: goto 14
         6: .line 3460
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess int int java.math.BigInteger int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getLong:()J
            lstore 5 /* word */
        start local 5 // long word
         7: .line 3461
            iconst_0
            istore 7 /* bit */
        start local 7 // int bit
         8: goto 12
         9: .line 3462
      StackMap locals: long int
      StackMap stack:
            lload 5 /* word */
            lconst_1
            iload 7 /* bit */
            lshl
            land
            lconst_0
            lcmp
            ifeq 11
        10: .line 3463
            aload 3 /* result */
            iload 7 /* bit */
            bipush 64
            iload 4 /* wordIdx */
            imul
            iadd
            invokevirtual java.math.BigInteger.setBit:(I)Ljava/math/BigInteger;
            astore 3 /* result */
        11: .line 3461
      StackMap locals:
      StackMap stack:
            iinc 7 /* bit */ 1
      StackMap locals:
      StackMap stack:
        12: iload 7 /* bit */
            bipush 64
            if_icmplt 9
        end local 7 // int bit
        end local 5 // long word
        13: .line 3459
            iinc 4 /* wordIdx */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* wordIdx */
            iload 2 /* count */
            if_icmplt 6
        end local 4 // int wordIdx
        15: .line 3467
            iload 1 /* sign */
            ifeq 17
        16: .line 3468
            aload 3 /* result */
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 3 /* result */
        17: .line 3470
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.runtime.BigInt
            dup
            aload 3 /* result */
            invokespecial com.oracle.truffle.js.runtime.BigInt.<init>:(Ljava/math/BigInteger;)V
            areturn
        end local 3 // java.math.BigInteger result
        end local 2 // int count
        end local 1 // int sign
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            2   18     1     sign  I
            3   18     2    count  I
            4   18     3   result  Ljava/math/BigInteger;
            5   15     4  wordIdx  I
            7   13     5     word  J
            8   13     7      bit  I

  public int bigIntWordCount(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 3474
            aload 1 /* value */
            checkcast com.oracle.truffle.js.runtime.BigInt
            invokevirtual com.oracle.truffle.js.runtime.BigInt.bigIntegerValue:()Ljava/math/BigInteger;
            astore 2 /* bigInt */
        start local 2 // java.math.BigInteger bigInt
         1: .line 3475
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.signum:()I
            iconst_m1
            if_icmpne 2
            iconst_1
            goto 3
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.math.BigInteger
      StackMap stack: int
         2: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.math.BigInteger
      StackMap stack: int int
         3: iadd
            bipush 63
            iadd
            bipush 64
            idiv
            ireturn
        end local 2 // java.math.BigInteger bigInt
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    4     1   value  Ljava/lang/Object;
            1    4     2  bigInt  Ljava/math/BigInteger;
    MethodParameters:
       Name  Flags
      value  

  public void bigIntToWordsArray(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // java.lang.Object value
         0: .line 3479
            aload 1 /* value */
            checkcast com.oracle.truffle.js.runtime.BigInt
            invokevirtual com.oracle.truffle.js.runtime.BigInt.bigIntegerValue:()Ljava/math/BigInteger;
            astore 2 /* bigInt */
        start local 2 // java.math.BigInteger bigInt
         1: .line 3480
            aload 0 /* this */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
         2: .line 3481
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.bigIntWordCount:(Ljava/lang/Object;)I
            istore 3 /* count */
        start local 3 // int count
         3: .line 3482
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            iload 3 /* count */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         4: .line 3483
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.signum:()I
            iconst_m1
            if_icmpne 5
            iconst_1
            goto 6
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.math.BigInteger int
      StackMap stack: java.nio.ByteBuffer
         5: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.GraalJSAccess java.lang.Object java.math.BigInteger int
      StackMap stack: java.nio.ByteBuffer int
         6: invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         7: .line 3484
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.signum:()I
            iconst_m1
            if_icmpne 9
         8: .line 3485
            aload 2 /* bigInt */
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 2 /* bigInt */
         9: .line 3487
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* wordIdx */
        start local 4 // int wordIdx
        10: goto 21
        11: .line 3488
      StackMap locals: int
      StackMap stack:
            lconst_0
            lstore 5 /* word */
        start local 5 // long word
        12: .line 3489
            bipush 63
            istore 7 /* bit */
        start local 7 // int bit
        13: goto 18
        14: .line 3490
      StackMap locals: long int
      StackMap stack:
            lload 5 /* word */
            iconst_1
            lshl
            lstore 5 /* word */
        15: .line 3491
            aload 2 /* bigInt */
            iload 7 /* bit */
            bipush 64
            iload 4 /* wordIdx */
            imul
            iadd
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 17
        16: .line 3492
            lload 5 /* word */
            lconst_1
            ladd
            lstore 5 /* word */
        17: .line 3489
      StackMap locals:
      StackMap stack:
            iinc 7 /* bit */ -1
      StackMap locals:
      StackMap stack:
        18: iload 7 /* bit */
            ifge 14
        end local 7 // int bit
        19: .line 3495
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.sharedBuffer:Ljava/nio/ByteBuffer;
            lload 5 /* word */
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
        end local 5 // long word
        20: .line 3487
            iinc 4 /* wordIdx */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* wordIdx */
            iload 3 /* count */
            if_icmplt 11
        end local 4 // int wordIdx
        22: .line 3497
            return
        end local 3 // int count
        end local 2 // java.math.BigInteger bigInt
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   23     1    value  Ljava/lang/Object;
            1   23     2   bigInt  Ljava/math/BigInteger;
            3   23     3    count  I
           10   22     4  wordIdx  I
           12   20     5     word  J
           13   19     7      bit  I
    MethodParameters:
       Name  Flags
      value  

  public void unsetCurrentMessagePortData();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 3579
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.currentMessagePortData:Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
            invokevirtual com.oracle.truffle.trufflenode.threading.JavaMessagePortData.encodingEnd:()V
         1: .line 3580
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.currentMessagePortData:Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
         2: .line 3581
            return
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  public void setCurrentMessagePortData(com.oracle.truffle.trufflenode.JSExternalObject);
    descriptor: (Lcom/oracle/truffle/trufflenode/JSExternalObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
        start local 1 // com.oracle.truffle.trufflenode.JSExternalObject nativeMessagePortData
         0: .line 3584
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 1
            aload 1 /* nativeMessagePortData */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3585
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.currentMessagePortData:Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
            ifnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 3586
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* nativeMessagePortData */
            invokestatic com.oracle.truffle.trufflenode.threading.SharedMemMessagingManager.getJavaMessagePortDataFor:(Lcom/oracle/truffle/trufflenode/JSExternalObject;)Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
            putfield com.oracle.truffle.trufflenode.GraalJSAccess.currentMessagePortData:Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
         3: .line 3587
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.currentMessagePortData:Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 3588
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.currentMessagePortData:Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
            invokevirtual com.oracle.truffle.trufflenode.threading.JavaMessagePortData.encodingBegin:()V
         5: .line 3589
            return
        end local 1 // com.oracle.truffle.trufflenode.JSExternalObject nativeMessagePortData
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0    6     1  nativeMessagePortData  Lcom/oracle/truffle/trufflenode/JSExternalObject;
    MethodParameters:
                       Name  Flags
      nativeMessagePortData  

  public com.oracle.truffle.trufflenode.threading.JavaMessagePortData getCurrentMessagePortData();
    descriptor: ()Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
         0: .line 3592
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.GraalJSAccess.currentMessagePortData:Lcom/oracle/truffle/trufflenode/threading/JavaMessagePortData;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.GraalJSAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/GraalJSAccess;

  static int[] $SWITCH_TABLE$com$oracle$truffle$js$runtime$objects$JSModuleRecord$Status();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 239
            getstatic com.oracle.truffle.trufflenode.GraalJSAccess.$SWITCH_TABLE$com$oracle$truffle$js$runtime$objects$JSModuleRecord$Status:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.values:()[Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord$Status;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.Evaluated:Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord$Status;
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.ordinal:()I
            iconst_5
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.Evaluating:Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord$Status;
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.ordinal:()I
            iconst_4
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.Linked:Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord$Status;
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.Linking:Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord$Status;
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.Unlinked:Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord$Status;
            invokevirtual com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic com.oracle.truffle.trufflenode.GraalJSAccess.$SWITCH_TABLE$com$oracle$truffle$js$runtime$objects$JSModuleRecord$Status:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "GraalJSAccess.java"
NestMembers:
  com.oracle.truffle.trufflenode.GraalJSAccess$1  com.oracle.truffle.trufflenode.GraalJSAccess$10  com.oracle.truffle.trufflenode.GraalJSAccess$11  com.oracle.truffle.trufflenode.GraalJSAccess$12  com.oracle.truffle.trufflenode.GraalJSAccess$2  com.oracle.truffle.trufflenode.GraalJSAccess$3  com.oracle.truffle.trufflenode.GraalJSAccess$4  com.oracle.truffle.trufflenode.GraalJSAccess$5  com.oracle.truffle.trufflenode.GraalJSAccess$6  com.oracle.truffle.trufflenode.GraalJSAccess$7  com.oracle.truffle.trufflenode.GraalJSAccess$8  com.oracle.truffle.trufflenode.GraalJSAccess$9  com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader  com.oracle.truffle.trufflenode.GraalJSAccess$GraalJSKillException  com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule  com.oracle.truffle.trufflenode.GraalJSAccess$PropertyHandlerPrototypeNode  com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList  com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback
InnerClasses:
  public final ExportEntry = com.oracle.js.parser.ir.Module$ExportEntry of com.oracle.js.parser.ir.Module
  public final ImportEntry = com.oracle.js.parser.ir.Module$ImportEntry of com.oracle.js.parser.ir.Module
  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 final Builder = com.oracle.truffle.api.debug.Breakpoint$Builder of com.oracle.truffle.api.debug.Breakpoint
  public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
  public SourceBuilder = com.oracle.truffle.api.source.Source$SourceBuilder of com.oracle.truffle.api.source.Source
  public final JSStackTraceElement = com.oracle.truffle.js.runtime.GraalJSException$JSStackTraceElement of com.oracle.truffle.js.runtime.GraalJSException
  public final DirectBigInt64Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectBigInt64Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectBigUint64Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectBigUint64Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectFloat32Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectFloat32Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectFloat64Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectFloat64Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectInt16Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectInt16Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectInt32Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectInt32Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectInt8Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectInt8Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectUint16Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectUint16Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectUint32Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectUint32Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectUint8Array = com.oracle.truffle.js.runtime.array.TypedArray$DirectUint8Array of com.oracle.truffle.js.runtime.array.TypedArray
  public final DirectUint8ClampedArray = com.oracle.truffle.js.runtime.array.TypedArray$DirectUint8ClampedArray of com.oracle.truffle.js.runtime.array.TypedArray
  public final Status = com.oracle.truffle.js.runtime.objects.JSModuleRecord$Status of com.oracle.truffle.js.runtime.objects.JSModuleRecord
  public abstract Cursor = com.oracle.truffle.js.runtime.util.JSHashMap$Cursor of com.oracle.truffle.js.runtime.util.JSHashMap
  public abstract CompileRegexNode = com.oracle.truffle.js.runtime.util.TRegexUtil$CompileRegexNode of com.oracle.truffle.js.runtime.util.TRegexUtil
  public abstract InteropReadBooleanMemberNode = com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadBooleanMemberNode of com.oracle.truffle.js.runtime.util.TRegexUtil
  public abstract InteropReadMemberNode = com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadMemberNode of com.oracle.truffle.js.runtime.util.TRegexUtil
  public abstract InteropReadStringMemberNode = com.oracle.truffle.js.runtime.util.TRegexUtil$InteropReadStringMemberNode of com.oracle.truffle.js.runtime.util.TRegexUtil
  com.oracle.truffle.trufflenode.GraalJSAccess$1
  com.oracle.truffle.trufflenode.GraalJSAccess$10
  com.oracle.truffle.trufflenode.GraalJSAccess$11
  com.oracle.truffle.trufflenode.GraalJSAccess$12
  com.oracle.truffle.trufflenode.GraalJSAccess$2
  com.oracle.truffle.trufflenode.GraalJSAccess$3
  com.oracle.truffle.trufflenode.GraalJSAccess$4
  com.oracle.truffle.trufflenode.GraalJSAccess$5
  com.oracle.truffle.trufflenode.GraalJSAccess$6
  com.oracle.truffle.trufflenode.GraalJSAccess$7
  com.oracle.truffle.trufflenode.GraalJSAccess$8
  com.oracle.truffle.trufflenode.GraalJSAccess$9
  ESModuleLoader = com.oracle.truffle.trufflenode.GraalJSAccess$ESModuleLoader of com.oracle.truffle.trufflenode.GraalJSAccess
  private final GraalJSKillException = com.oracle.truffle.trufflenode.GraalJSAccess$GraalJSKillException of com.oracle.truffle.trufflenode.GraalJSAccess
  NodeScriptOrModule = com.oracle.truffle.trufflenode.GraalJSAccess$NodeScriptOrModule of com.oracle.truffle.trufflenode.GraalJSAccess
  PropertyHandlerPrototypeNode = com.oracle.truffle.trufflenode.GraalJSAccess$PropertyHandlerPrototypeNode of com.oracle.truffle.trufflenode.GraalJSAccess
  private WeakAgentWaiterList = com.oracle.truffle.trufflenode.GraalJSAccess$WeakAgentWaiterList of com.oracle.truffle.trufflenode.GraalJSAccess
  private WeakCallback = com.oracle.truffle.trufflenode.GraalJSAccess$WeakCallback of com.oracle.truffle.trufflenode.GraalJSAccess
  public NativeFunctionRootNode = com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode$NativeFunctionRootNode of com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode
  public final Mode = com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode$Mode of com.oracle.truffle.trufflenode.node.ExecuteNativePropertyHandlerNode
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
  public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source