code: function gli_new_window(type, rock) {
      var win = {};
      win.type = type;
      win.rock = rock;
      win.disprock = undefined;
  
      win.parent = null;
      win.str = gli_stream_open_window(win);
      win.echostr = null;
      win.style = Const.style_Normal;
      win.hyperlink = 0;
  
      win.input_generation = null;
      win.linebuf = null;
      win.char_request = false;
      win.line_request = false;
      win.char_request_uni = false;
      win.line_request_uni = false;
      win.hyperlink_request = false;
      win.mouse_request = false;
      win.echo_line_input = true;
      win.line_input_terminators = [];
      win.request_echo_line_input = null; /* only used during a request */
  
      /* window-type-specific info is set up in glk_window_open */
  
      win.prev = null;
      win.next = gli_windowlist;
      gli_windowlist = win;
      if (win.next)
          win.next.prev = win;
  
      if (GiDispa)
          GiDispa.class_register('window', win);
      else
          win.disprock = gli_api_display_rocks++;
      /* We need to assign a disprock even if there's no GiDispa layer,
         because GlkOte differentiates windows by their disprock. */
      geometry_changed = true;
  
      return win;
  }
docs: /* last interval sent to GlkOte