Function: js-end-of-defun
js-end-of-defun is a byte-compiled function defined in js.el.gz.
Signature
(js-end-of-defun &optional ARG)
Documentation
Value of end-of-defun-function for js-mode.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/js.el.gz
(defun js-end-of-defun (&optional arg)
"Value of `end-of-defun-function' for `js-mode'."
(setq arg (or arg 1))
(while (and (not (bobp)) (< arg 0))
(cl-incf arg)
(js-beginning-of-defun)
(js-beginning-of-defun)
(unless (bobp)
(js-end-of-defun)))
(while (> arg 0)
(cl-decf arg)
;; look for function backward. if we're inside it, go to that
;; function's end. otherwise, search for the next function's end and
;; go there
(if js-flat-functions
(js--end-of-defun-flat)
;; if we're doing nested functions, see whether we're in the
;; prologue. If we are, go to the end of the function; otherwise,
;; call js--end-of-defun-nested to do the real work
(let ((prologue-begin (js--function-prologue-beginning)))
(cond ((and prologue-begin (<= prologue-begin (point)))
(goto-char prologue-begin)
(re-search-forward "\\_<function")
(goto-char (match-beginning 0))
(js--forward-function-decl)
(forward-list))
(t (js--end-of-defun-nested)))))))