 
 (defun js2r--something-to-close-statement ()
   (cond
+   ((and (js2-block-node-p (js2-node-at-point)) (looking-at " *}")) ";")
    ((not (eolp)) "")
    ((js2-array-node-p (js2-node-at-point)) (js2r--comma-unless "]"))
    ((js2-object-node-p (js2-node-at-point)) (concat ": " (js2r--comma-unless "}")))


;; Set up wrapping of pairs, with the possiblity of semicolons thrown into the mix

(defun js2r--setup-wrapping-pair (open close semicolonp)
  (define-key js2-mode-map (kbd open) (λ (js2r--self-insert-wrapping open close semicolonp)))
  (unless (s-equals? open close)
    (define-key js2-mode-map (kbd close) (λ (js2r--self-insert-closing open close)))))


         (forward-char)
       (funcall 'self-insert-command 1))))

(defun js2r--self-insert-wrapping (open close)
  (cond
   ((use-region-p)
    (save-excursion
