class javafx.scene.Scene$ScenePulseListener implements com.sun.javafx.tk.TKPulseListener
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javafx.scene.Scene$ScenePulseListener
  super_class: java.lang.Object
{
  private boolean firstPulse;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  final javafx.scene.Scene this$0;
    descriptor: Ljavafx/scene/Scene;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(javafx.scene.Scene);
    descriptor: (Ljavafx/scene/Scene;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.Scene$ScenePulseListener this
         0: .line 2337
            aload 0 /* this */
            aload 1
            putfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2339
            aload 0 /* this */
            iconst_1
            putfield javafx.scene.Scene$ScenePulseListener.firstPulse:Z
         2: .line 2337
            return
        end local 0 // javafx.scene.Scene$ScenePulseListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/Scene$ScenePulseListener;
    MethodParameters:
        Name  Flags
      this$0  final

  private void synchronizeSceneNodes();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // javafx.scene.Scene$ScenePulseListener this
         0: .line 2347
            invokestatic com.sun.javafx.tk.Toolkit.getToolkit:()Lcom/sun/javafx/tk/Toolkit;
            invokevirtual com.sun.javafx.tk.Toolkit.checkFxUserThread:()V
         1: .line 2349
            iconst_1
            putstatic javafx.scene.Scene.inSynchronizer:Z
         2: .line 2354
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.dirtyNodes:[Ljavafx/scene/Node;
            ifnonnull 6
         3: .line 2356
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getRoot:()Ljavafx/scene/Parent;
            invokevirtual javafx.scene.Scene$ScenePulseListener.syncAll:(Ljavafx/scene/Node;)I
            pop
         4: .line 2357
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            bipush 30
            anewarray javafx.scene.Node
            putfield javafx.scene.Scene.dirtyNodes:[Ljavafx/scene/Node;
         5: .line 2359
            goto 15
         6: .line 2362
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         7: goto 13
         8: .line 2363
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.dirtyNodes:[Ljavafx/scene/Node;
            iload 1 /* i */
            aaload
            astore 2 /* node */
        start local 2 // javafx.scene.Node node
         9: .line 2364
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.dirtyNodes:[Ljavafx/scene/Node;
            iload 1 /* i */
            aconst_null
            aastore
        10: .line 2365
            aload 2 /* node */
            invokevirtual javafx.scene.Node.getScene:()Ljavafx/scene/Scene;
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            if_acmpne 12
        11: .line 2366
            aload 2 /* node */
            invokevirtual javafx.scene.Node.syncPeer:()V
        end local 2 // javafx.scene.Node node
        12: .line 2362
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 1 /* i */
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.dirtyNodesSize:I
            if_icmplt 8
        end local 1 // int i
        14: .line 2369
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            iconst_0
            putfield javafx.scene.Scene.dirtyNodesSize:I
        15: .line 2372
      StackMap locals:
      StackMap stack:
            iconst_0
            putstatic javafx.scene.Scene.inSynchronizer:Z
        16: .line 2373
            return
        end local 0 // javafx.scene.Scene$ScenePulseListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Ljavafx/scene/Scene$ScenePulseListener;
            7   14     1     i  I
            9   12     2  node  Ljavafx/scene/Node;

  private int syncAll(javafx.scene.Node);
    descriptor: (Ljavafx/scene/Node;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // javafx.scene.Scene$ScenePulseListener this
        start local 1 // javafx.scene.Node node
         0: .line 2380
            aload 1 /* node */
            invokevirtual javafx.scene.Node.syncPeer:()V
         1: .line 2381
            iconst_1
            istore 2 /* size */
        start local 2 // int size
         2: .line 2382
            aload 1 /* node */
            instanceof javafx.scene.Parent
            ifeq 13
         3: .line 2383
            aload 1 /* node */
            checkcast javafx.scene.Parent
            astore 3 /* p */
        start local 3 // javafx.scene.Parent p
         4: .line 2384
            aload 3 /* p */
            invokevirtual javafx.scene.Parent.getChildren:()Ljavafx/collections/ObservableList;
            invokeinterface javafx.collections.ObservableList.size:()I
            istore 4 /* childrenCount */
        start local 4 // int childrenCount
         5: .line 2386
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 11
         7: .line 2387
      StackMap locals: javafx.scene.Scene$ScenePulseListener javafx.scene.Node int javafx.scene.Parent int int
      StackMap stack:
            aload 3 /* p */
            invokevirtual javafx.scene.Parent.getChildren:()Ljavafx/collections/ObservableList;
            iload 5 /* i */
            invokeinterface javafx.collections.ObservableList.get:(I)Ljava/lang/Object;
            checkcast javafx.scene.Node
            astore 6 /* n */
        start local 6 // javafx.scene.Node n
         8: .line 2388
            aload 6 /* n */
            ifnull 10
         9: .line 2389
            iload 2 /* size */
            aload 0 /* this */
            aload 6 /* n */
            invokevirtual javafx.scene.Scene$ScenePulseListener.syncAll:(Ljavafx/scene/Node;)I
            iadd
            istore 2 /* size */
        end local 6 // javafx.scene.Node n
        10: .line 2386
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            iload 4 /* childrenCount */
            if_icmplt 7
        end local 5 // int i
        end local 4 // int childrenCount
        end local 3 // javafx.scene.Parent p
        12: .line 2392
            goto 16
      StackMap locals:
      StackMap stack:
        13: aload 1 /* node */
            instanceof javafx.scene.SubScene
            ifeq 16
        14: .line 2393
            aload 1 /* node */
            checkcast javafx.scene.SubScene
            astore 3 /* subScene */
        start local 3 // javafx.scene.SubScene subScene
        15: .line 2394
            iload 2 /* size */
            aload 0 /* this */
            aload 3 /* subScene */
            invokevirtual javafx.scene.SubScene.getRoot:()Ljavafx/scene/Parent;
            invokevirtual javafx.scene.Scene$ScenePulseListener.syncAll:(Ljavafx/scene/Node;)I
            iadd
            istore 2 /* size */
        end local 3 // javafx.scene.SubScene subScene
        16: .line 2396
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual javafx.scene.Node.getClip:()Ljavafx/scene/Node;
            ifnull 18
        17: .line 2397
            iload 2 /* size */
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual javafx.scene.Node.getClip:()Ljavafx/scene/Node;
            invokevirtual javafx.scene.Scene$ScenePulseListener.syncAll:(Ljavafx/scene/Node;)I
            iadd
            istore 2 /* size */
        18: .line 2400
      StackMap locals:
      StackMap stack:
            iload 2 /* size */
            ireturn
        end local 2 // int size
        end local 1 // javafx.scene.Node node
        end local 0 // javafx.scene.Scene$ScenePulseListener this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Ljavafx/scene/Scene$ScenePulseListener;
            0   19     1           node  Ljavafx/scene/Node;
            2   19     2           size  I
            4   12     3              p  Ljavafx/scene/Parent;
            5   12     4  childrenCount  I
            6   12     5              i  I
            8   10     6              n  Ljavafx/scene/Node;
           15   16     3       subScene  Ljavafx/scene/SubScene;
    MethodParameters:
      Name  Flags
      node  

  private void synchronizeSceneProperties();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // javafx.scene.Scene$ScenePulseListener this
         0: .line 2404
            iconst_1
            putstatic javafx.scene.Scene.inSynchronizer:Z
         1: .line 2405
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getstatic javafx.scene.Scene$DirtyBits.ROOT_DIRTY:Ljavafx/scene/Scene$DirtyBits;
            invokevirtual javafx.scene.Scene.isDirty:(Ljavafx/scene/Scene$DirtyBits;)Z
            ifeq 3
         2: .line 2406
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.peer:Lcom/sun/javafx/tk/TKScene;
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getRoot:()Ljavafx/scene/Parent;
            invokevirtual javafx.scene.Parent.getPeer:()Lcom/sun/javafx/sg/prism/NGNode;
            invokeinterface com.sun.javafx.tk.TKScene.setRoot:(Lcom/sun/javafx/sg/prism/NGNode;)V
         3: .line 2409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getstatic javafx.scene.Scene$DirtyBits.FILL_DIRTY:Ljavafx/scene/Scene$DirtyBits;
            invokevirtual javafx.scene.Scene.isDirty:(Ljavafx/scene/Scene$DirtyBits;)Z
            ifeq 8
         4: .line 2410
            invokestatic com.sun.javafx.tk.Toolkit.getToolkit:()Lcom/sun/javafx/tk/Toolkit;
            astore 1 /* tk */
        start local 1 // com.sun.javafx.tk.Toolkit tk
         5: .line 2411
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.peer:Lcom/sun/javafx/tk/TKScene;
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getFill:()Ljavafx/scene/paint/Paint;
            ifnonnull 6
            aconst_null
            goto 7
      StackMap locals: javafx.scene.Scene$ScenePulseListener com.sun.javafx.tk.Toolkit
      StackMap stack: com.sun.javafx.tk.TKScene
         6: aload 1 /* tk */
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getFill:()Ljavafx/scene/paint/Paint;
            invokevirtual com.sun.javafx.tk.Toolkit.getPaint:(Ljavafx/scene/paint/Paint;)Ljava/lang/Object;
      StackMap locals: javafx.scene.Scene$ScenePulseListener com.sun.javafx.tk.Toolkit
      StackMap stack: com.sun.javafx.tk.TKScene java.lang.Object
         7: invokeinterface com.sun.javafx.tk.TKScene.setFillPaint:(Ljava/lang/Object;)V
        end local 1 // com.sun.javafx.tk.Toolkit tk
         8: .line 2415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getEffectiveCamera:()Ljavafx/scene/Camera;
            astore 1 /* cam */
        start local 1 // javafx.scene.Camera cam
         9: .line 2416
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getstatic javafx.scene.Scene$DirtyBits.CAMERA_DIRTY:Ljavafx/scene/Scene$DirtyBits;
            invokevirtual javafx.scene.Scene.isDirty:(Ljavafx/scene/Scene$DirtyBits;)Z
            ifeq 12
        10: .line 2417
            aload 1 /* cam */
            invokestatic com.sun.javafx.scene.NodeHelper.updatePeer:(Ljavafx/scene/Node;)V
        11: .line 2418
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.peer:Lcom/sun/javafx/tk/TKScene;
            aload 1 /* cam */
            invokevirtual javafx.scene.Camera.getPeer:()Lcom/sun/javafx/sg/prism/NGNode;
            checkcast com.sun.javafx.sg.prism.NGCamera
            invokeinterface com.sun.javafx.tk.TKScene.setCamera:(Lcom/sun/javafx/sg/prism/NGCamera;)V
        12: .line 2421
      StackMap locals: javafx.scene.Camera
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getstatic javafx.scene.Scene$DirtyBits.CURSOR_DIRTY:Ljavafx/scene/Scene$DirtyBits;
            invokevirtual javafx.scene.Scene.isDirty:(Ljavafx/scene/Scene$DirtyBits;)Z
            ifeq 15
        13: .line 2422
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.mouseHandler:Ljavafx/scene/Scene$MouseHandler;
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getCursor:()Ljavafx/scene/Cursor;
            invokevirtual javafx.scene.Scene$MouseHandler.updateCursor:(Ljavafx/scene/Cursor;)V
        14: .line 2423
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.mouseHandler:Ljavafx/scene/Scene$MouseHandler;
            invokevirtual javafx.scene.Scene$MouseHandler.updateCursorFrame:()V
        15: .line 2426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.clearDirty:()V
        16: .line 2427
            iconst_0
            putstatic javafx.scene.Scene.inSynchronizer:Z
        17: .line 2428
            return
        end local 1 // javafx.scene.Camera cam
        end local 0 // javafx.scene.Scene$ScenePulseListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Ljavafx/scene/Scene$ScenePulseListener;
            5    8     1    tk  Lcom/sun/javafx/tk/Toolkit;
            9   18     1   cam  Ljavafx/scene/Camera;

  private void focusCleanup();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javafx.scene.Scene$ScenePulseListener this
         0: .line 2438
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.isFocusDirty:()Z
            ifeq 13
         1: .line 2439
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getFocusOwner:()Ljavafx/scene/Node;
            astore 1 /* oldOwner */
        start local 1 // javafx.scene.Node oldOwner
         2: .line 2440
            aload 1 /* oldOwner */
            ifnonnull 5
         3: .line 2441
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.focusInitial:()V
         4: .line 2442
            goto 12
      StackMap locals: javafx.scene.Node
      StackMap stack:
         5: aload 1 /* oldOwner */
            invokevirtual javafx.scene.Node.getScene:()Ljavafx/scene/Scene;
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            if_acmpeq 9
         6: .line 2443
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            aconst_null
            invokevirtual javafx.scene.Scene.requestFocus:(Ljavafx/scene/Node;)V
         7: .line 2444
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.focusInitial:()V
         8: .line 2445
            goto 12
      StackMap locals:
      StackMap stack:
         9: aload 1 /* oldOwner */
            invokevirtual javafx.scene.Node.isCanReceiveFocus:()Z
            ifne 12
        10: .line 2446
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            aconst_null
            invokevirtual javafx.scene.Scene.requestFocus:(Ljavafx/scene/Node;)V
        11: .line 2447
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            aload 1 /* oldOwner */
            invokevirtual javafx.scene.Scene.focusIneligible:(Ljavafx/scene/Node;)V
        12: .line 2449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            iconst_0
            invokevirtual javafx.scene.Scene.setFocusDirty:(Z)V
        end local 1 // javafx.scene.Node oldOwner
        13: .line 2451
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javafx.scene.Scene$ScenePulseListener this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Ljavafx/scene/Scene$ScenePulseListener;
            2   13     1  oldOwner  Ljavafx/scene/Node;

  public void pulse();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // javafx.scene.Scene$ScenePulseListener this
         0: .line 2455
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.tracker:Lcom/sun/javafx/perf/PerformanceTracker;
            ifnull 2
         1: .line 2456
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.tracker:Lcom/sun/javafx/perf/PerformanceTracker;
            invokevirtual com.sun.javafx.perf.PerformanceTracker.pulse:()V
         2: .line 2458
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.firstPulse:Z
            ifeq 4
         3: .line 2459
            ldc "Scene - first repaint"
            invokestatic com.sun.javafx.perf.PerformanceTracker.logEvent:(Ljava/lang/String;)V
         4: .line 2462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javafx.scene.Scene$ScenePulseListener.focusCleanup:()V
         5: .line 2464
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.disposeAccessibles:()V
         6: .line 2468
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.preLayoutPulseListeners:Ljava/util/List;
            ifnull 11
         7: .line 2469
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.preLayoutPulseListeners:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 10
      StackMap locals: javafx.scene.Scene$ScenePulseListener top java.util.Iterator
      StackMap stack:
         8: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Runnable
            astore 1 /* r */
        start local 1 // java.lang.Runnable r
         9: .line 2470
            aload 1 /* r */
            invokeinterface java.lang.Runnable.run:()V
        end local 1 // java.lang.Runnable r
        10: .line 2469
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 2474
      StackMap locals: javafx.scene.Scene$ScenePulseListener
      StackMap stack:
            getstatic com.sun.javafx.logging.PulseLogger.PULSE_LOGGING_ENABLED:Z
            ifeq 13
        12: .line 2475
            ldc "CSS Pass"
            invokestatic com.sun.javafx.logging.PulseLogger.newPhase:(Ljava/lang/String;)V
        13: .line 2477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.doCSSPass:()V
        14: .line 2479
            getstatic com.sun.javafx.logging.PulseLogger.PULSE_LOGGING_ENABLED:Z
            ifeq 16
        15: .line 2480
            ldc "Layout Pass"
            invokestatic com.sun.javafx.logging.PulseLogger.newPhase:(Ljava/lang/String;)V
        16: .line 2482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.doLayoutPass:()V
        17: .line 2486
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.postLayoutPulseListeners:Ljava/util/List;
            ifnull 22
        18: .line 2487
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.postLayoutPulseListeners:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 21
      StackMap locals: javafx.scene.Scene$ScenePulseListener top java.util.Iterator
      StackMap stack:
        19: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Runnable
            astore 1 /* r */
        start local 1 // java.lang.Runnable r
        20: .line 2488
            aload 1 /* r */
            invokeinterface java.lang.Runnable.run:()V
        end local 1 // java.lang.Runnable r
        21: .line 2487
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        22: .line 2492
      StackMap locals: javafx.scene.Scene$ScenePulseListener
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.dirtyNodes:[Ljavafx/scene/Node;
            ifnull 23
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.dirtyNodesSize:I
            ifne 23
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.isDirtyEmpty:()Z
            ifeq 23
            iconst_0
            goto 24
      StackMap locals:
      StackMap stack:
        23: iconst_1
      StackMap locals:
      StackMap stack: int
        24: istore 1 /* dirty */
        start local 1 // boolean dirty
        25: .line 2493
            iload 1 /* dirty */
            ifeq 55
        26: .line 2494
            getstatic com.sun.javafx.logging.PulseLogger.PULSE_LOGGING_ENABLED:Z
            ifeq 28
        27: .line 2495
            ldc "Update bounds"
            invokestatic com.sun.javafx.logging.PulseLogger.newPhase:(Ljava/lang/String;)V
        28: .line 2497
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getRoot:()Ljavafx/scene/Parent;
            invokevirtual javafx.scene.Parent.updateBounds:()V
        29: .line 2498
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.peer:Lcom/sun/javafx/tk/TKScene;
            ifnull 47
        30: .line 2500
            getstatic com.sun.javafx.logging.PulseLogger.PULSE_LOGGING_ENABLED:Z
            ifeq 32
        31: .line 2501
            ldc "Waiting for previous rendering"
            invokestatic com.sun.javafx.logging.PulseLogger.newPhase:(Ljava/lang/String;)V
        32: .line 2503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.peer:Lcom/sun/javafx/tk/TKScene;
            invokeinterface com.sun.javafx.tk.TKScene.waitForRenderingToComplete:()V
        33: .line 2504
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.peer:Lcom/sun/javafx/tk/TKScene;
            invokeinterface com.sun.javafx.tk.TKScene.waitForSynchronization:()V
        34: .line 2506
            getstatic com.sun.javafx.logging.PulseLogger.PULSE_LOGGING_ENABLED:Z
            ifeq 36
        35: .line 2507
            ldc "Copy state to render graph"
            invokestatic com.sun.javafx.logging.PulseLogger.newPhase:(Ljava/lang/String;)V
        36: .line 2509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.syncLights:()V
        37: .line 2510
            aload 0 /* this */
            invokevirtual javafx.scene.Scene$ScenePulseListener.synchronizeSceneProperties:()V
        38: .line 2512
            aload 0 /* this */
            invokevirtual javafx.scene.Scene$ScenePulseListener.synchronizeSceneNodes:()V
        39: .line 2513
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.mouseHandler:Ljavafx/scene/Scene$MouseHandler;
            invokevirtual javafx.scene.Scene$MouseHandler.pulse:()V
        40: .line 2515
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.peer:Lcom/sun/javafx/tk/TKScene;
            invokeinterface com.sun.javafx.tk.TKScene.markDirty:()V
        41: .line 2516
            goto 45
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 2
        43: .line 2517
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.peer:Lcom/sun/javafx/tk/TKScene;
            iconst_1
            invokeinterface com.sun.javafx.tk.TKScene.releaseSynchronization:(Z)V
        44: .line 2518
            aload 2
            athrow
        45: .line 2517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.peer:Lcom/sun/javafx/tk/TKScene;
            iconst_1
            invokeinterface com.sun.javafx.tk.TKScene.releaseSynchronization:(Z)V
        46: .line 2519
            goto 51
        47: .line 2520
      StackMap locals:
      StackMap stack:
            getstatic com.sun.javafx.logging.PulseLogger.PULSE_LOGGING_ENABLED:Z
            ifeq 49
        48: .line 2521
            ldc "Synchronize with null peer"
            invokestatic com.sun.javafx.logging.PulseLogger.newPhase:(Ljava/lang/String;)V
        49: .line 2523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javafx.scene.Scene$ScenePulseListener.synchronizeSceneNodes:()V
        50: .line 2524
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.mouseHandler:Ljavafx/scene/Scene$MouseHandler;
            invokevirtual javafx.scene.Scene$MouseHandler.pulse:()V
        51: .line 2527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getRoot:()Ljavafx/scene/Parent;
            getfield javafx.scene.Parent.cssFlag:Lcom/sun/javafx/scene/CssFlags;
            getstatic com.sun.javafx.scene.CssFlags.CLEAN:Lcom/sun/javafx/scene/CssFlags;
            if_acmpeq 55
        52: .line 2528
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getRoot:()Ljavafx/scene/Parent;
        53: .line 2529
            getstatic com.sun.javafx.scene.DirtyBits.NODE_CSS:Lcom/sun/javafx/scene/DirtyBits;
        54: .line 2528
            invokestatic com.sun.javafx.scene.NodeHelper.markDirty:(Ljavafx/scene/Node;Lcom/sun/javafx/scene/DirtyBits;)V
        55: .line 2534
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.mouseHandler:Ljavafx/scene/Scene$MouseHandler;
            invokevirtual javafx.scene.Scene$MouseHandler.updateCursorFrame:()V
        56: .line 2536
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.firstPulse:Z
            ifeq 64
        57: .line 2537
            invokestatic com.sun.javafx.perf.PerformanceTracker.isLoggingEnabled:()Z
            ifeq 63
        58: .line 2538
            ldc "Scene - first repaint - layout complete"
            invokestatic com.sun.javafx.perf.PerformanceTracker.logEvent:(Ljava/lang/String;)V
        59: .line 2539
            getstatic com.sun.prism.impl.PrismSettings.perfLogFirstPaintFlush:Z
            ifeq 61
        60: .line 2540
            invokestatic com.sun.javafx.perf.PerformanceTracker.outputLog:()V
        61: .line 2542
      StackMap locals:
      StackMap stack:
            getstatic com.sun.prism.impl.PrismSettings.perfLogFirstPaintExit:Z
            ifeq 63
        62: .line 2543
            iconst_0
            invokestatic java.lang.System.exit:(I)V
        63: .line 2546
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield javafx.scene.Scene$ScenePulseListener.firstPulse:Z
        64: .line 2549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.testPulseListener:Ljava/lang/Runnable;
            ifnull 66
        65: .line 2550
            aload 0 /* this */
            getfield javafx.scene.Scene$ScenePulseListener.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.testPulseListener:Ljava/lang/Runnable;
            invokeinterface java.lang.Runnable.run:()V
        66: .line 2552
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean dirty
        end local 0 // javafx.scene.Scene$ScenePulseListener this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   67     0   this  Ljavafx/scene/Scene$ScenePulseListener;
            9   10     1      r  Ljava/lang/Runnable;
           20   21     1      r  Ljava/lang/Runnable;
           25   67     1  dirty  Z
      Exception table:
        from    to  target  type
          30    42      42  any
}
SourceFile: "Scene.java"
NestHost: javafx.scene.Scene
InnerClasses:
  private final DirtyBits = javafx.scene.Scene$DirtyBits of javafx.scene.Scene
  MouseHandler = javafx.scene.Scene$MouseHandler of javafx.scene.Scene
  ScenePulseListener = javafx.scene.Scene$ScenePulseListener of javafx.scene.Scene