Subject: bug#29798: 24.3; Javascript: Too much indentation with + and -

From: Gavin Haynes <[email-masked]>
Date: Wed, 20 Dec 2017 23:53:37 -0800

Please describe exactly what actions triggered the bug, and the precise
symptoms of the bug. If you can, give a recipe starting from `emacs -Q':
Write the following in a .js file: { -2, 2, +2 } Then, put your cursor over
each line and press tab to indent it. The lines having -2 and +2 get twice
as much indentation as expected. The line having just 2 has the correct
indentation. If Emacs crashed, and you have the Emacs process in the gdb
debugger, please include the output from the following gdb commands: `bt
full' and `xbacktrace'. For information about debugging Emacs, please read
the file /usr/share/emacs/24.3/etc/DEBUG. In GNU Emacs 24.3.1
(x86_64-pc-linux-gnu, GTK+ Version 3.10.8) of 2017-09-19 on lcy01-35,
modified by Debian System Description: Ubuntu 14.04.5 LTS Configured using:
`configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'
'--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
'--localstatedir=/var/lib' '--infodir=/usr/share/info'
'--mandir=/usr/share/man' '--with-pop=yes'
'--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
'--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'
'--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars'
'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'
'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro'
'CPPFLAGS=-D_FORTIFY_SOURCE=2'' Important settings: value of $LANG:
en_CA.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix
default enable-multibyte-characters: t Major mode: Javascript Minor modes
in effect: tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t
menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t
font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t
auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent
input: ESC [ > 1 ; 3 4 0 9 ; 0 c C-n C-n C-e RET - 2 , TAB RET 3 TAB C-x
C-s C-p C-p RET TAB d e l e t e SPC 2 TAB , TAB TAB C-n TAB C-p TAB C-b C-b
C-b C-b C-b C-b C-b DEL TAB C-e C-n RET + 1 , TAB RET ~ 4 TAB , TAB RET ! 0
TAB , TAB C-p C-p C-n C-n RET - 2 TAB DEL DEL DEL DEL C-a C-k C-p C-e ESC x
r e p o r t - e m a c s - b u g RET Recent messages: Loading
/etc/emacs/site-start.d/50erlang-mode.el (source)...done Loading
/etc/emacs/site-start.d/50festival.el (source)...done Loading
/etc/emacs/site-start.d/50gtk-doc-tools.el (source)...done Loading
/etc/emacs/site-start.d/50lilypond-data.el (source)...done Loading
/etc/emacs/site-start.d/50mdk.el (source)...done For information about GNU
Emacs and the GNU system, type C-h C-a. Saving file /tmp/a.js... Wrote
/tmp/a.js Auto-saving...done Auto-saving...done Load-path shadows:
/usr/share/emacs/24.3/site-lisp/debian-startup hides
/usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs24/site-lisp/cmake-data/cmake-mode hides
/usr/share/emacs/site-lisp/cmake-mode Features: (shadow sort gnus-util
mail-extr emacsbug message format-spec rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils js json
imenu thingatpt cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs time-date byte-opt warnings
bytecomp byte-compile cconv advice help-fns cl-lib advice-preload
tide-autoloads flycheck-autoloads seq-autoloads let-alist-autoloads
pkg-info-autoloads epl-autoloads finder-inf s-autoloads dash-autoloads
typescript-mode-autoloads package erlang-start devhelp tooltip ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list newcomment lisp-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian
slovak czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face
macroexp files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)