docs: private void init() {
          menubar = new Menubar(this);
          setJMenuBar(menubar);
          toolBar = new JToolBar();
          JButton button;
          JButton breakButton, goButton, stepIntoButton,
              stepOverButton, stepOutButton;
          String [] toolTips = {"Break (Pause)",
                                "Go (F5)",
                                "Step Into (F11)",
                                "Step Over (F7)",
                                "Step Out (F8)"};
          int count = 0;
          button = breakButton = new JButton("Break");
          button.setToolTipText("Break");
          button.setActionCommand("Break");
          button.addActionListener(menubar);
          button.setEnabled(true);
          button.setToolTipText(toolTips[count++]);
  
          button = goButton = new JButton("Go");
          button.setToolTipText("Go");
          button.setActionCommand("Go");
          button.addActionListener(menubar);
          button.setEnabled(false);
          button.setToolTipText(toolTips[count++]);
  
          button = stepIntoButton = new JButton("Step Into");
          button.setToolTipText("Step Into");
          button.setActionCommand("Step Into");
          button.addActionListener(menubar);
          button.setEnabled(false);
          button.setToolTipText(toolTips[count++]);
  
          button = stepOverButton = new JButton("Step Over");
          button.setToolTipText("Step Over");
          button.setActionCommand("Step Over");
          button.setEnabled(false);
          button.addActionListener(menubar);
          button.setToolTipText(toolTips[count++]);
  
          button = stepOutButton = new JButton("Step Out");
          button.setToolTipText("Step Out");
          button.setActionCommand("Step Out");
          button.setEnabled(false);
          button.addActionListener(menubar);
          button.setToolTipText(toolTips[count++]);
  
          Dimension dim = stepOverButton.getPreferredSize();
          breakButton.setPreferredSize(dim);
          breakButton.setMinimumSize(dim);
          breakButton.setMaximumSize(dim);
          breakButton.setSize(dim);
          goButton.setPreferredSize(dim);
          goButton.setMinimumSize(dim);
          goButton.setMaximumSize(dim);
          stepIntoButton.setPreferredSize(dim);
          stepIntoButton.setMinimumSize(dim);
          stepIntoButton.setMaximumSize(dim);
          stepOverButton.setPreferredSize(dim);
          stepOverButton.setMinimumSize(dim);
          stepOverButton.setMaximumSize(dim);
          stepOutButton.setPreferredSize(dim);
          stepOutButton.setMinimumSize(dim);
          stepOutButton.setMaximumSize(dim);
          toolBar.add(breakButton);
          toolBar.add(goButton);
          toolBar.add(stepIntoButton);
          toolBar.add(stepOverButton);
          toolBar.add(stepOutButton);
  
          JPanel contentPane = new JPanel();
          contentPane.setLayout(new BorderLayout());
          getContentPane().add(toolBar, BorderLayout.NORTH);
          getContentPane().add(contentPane, BorderLayout.CENTER);
          desk = new JDesktopPane();
          desk.setPreferredSize(new Dimension(600, 300));
          desk.setMinimumSize(new Dimension(150, 50));
          desk.add(console = new JSInternalConsole("JavaScript Console"));
          context = new ContextWindow(this);
          context.setPreferredSize(new Dimension(600, 120));
          context.setMinimumSize(new Dimension(50, 50));
  
          split1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, desk,
                                            context);
          split1.setOneTouchExpandable(true);
          SwingGui.setResizeWeight(split1, 0.66);
          contentPane.add(split1, BorderLayout.CENTER);
          statusBar = new JLabel();
          statusBar.setText("Thread: ");
          contentPane.add(statusBar, BorderLayout.SOUTH);
          dlg = new JFileChooser();
  
          javax.swing.filechooser.FileFilter filter =
              new javax.swing.filechooser.FileFilter() {
                      @Override
                      public boolean accept(File f) {
                          if (f.isDirectory()) {
                              return true;
                          }
                          String n = f.getName();
                          int i = n.lastIndexOf('.');
                          if (i > 0 && i < n.length() -1) {
                              String ext = n.substring(i + 1).toLowerCase();
                              if (ext.equals("js")) {
                                  return true;
                              }
                          }
                          return false;
                      }
  
                      @Override
                      public String getDescription() {
                          return "JavaScript Files (*.js)";
                      }
                  };
          dlg.addChoosableFileFilter(filter);
          addWindowListener(new WindowAdapter() {
                  @Override
                  public void windowClosing(WindowEvent e) {
                      exit();
                  }
              });
      }