Subject: bug#31306: 27.0.50; js-mode still missing ES2015 keywords

From: Jimmy Yuen Ho Wong <[email-masked]>
Date: Sat, 28 Apr 2018 21:56:14 +0100

Reproduction:

1. Install most recent Emacs 26 nightly build from
https://emacsformacosx.com/builds
2. Open a new .js file buffer in js-mode
3. Type:

import * as foo from 'bar';
for (const i of [1,2,3]) {}

4. The "as", "from" and "of" have been ECMAScript keywords since at
least 2015, but it's still not highlighted.

Expectation:

"as", "from", and "of" should be highlighted. Specially, "as" and "from"
should only be highlighted in an import statement. "of" should only be
highlighted in a for statement. Any other occurrances of "as", "from"
and "of" should not be highlighted as they are legal identifiers outside
of import and for statements respectively.

Jimmy Yuen Ho Wong

In GNU Emacs 27.0.50 (build 1, x86_64-apple-darwin13.4.0, NS 
appkit-1265.21 Version 10.9.5 (Build 13F1911))
of 2018-04-18 built on builder10-9.porkrind.org
Windowing system distributor 'Apple', version 10.3.1561
System Description: Mac OS X 10.13.4

Recent messages:
Quit [2 times]
Followed link to /Users/wyuenho/Documents/workspace/dotfiles/.importjs.js
Making completion list... [2 times]
Mark set [2 times]
Auto-saving...done
Followed link to /Users/wyuenho/Documents/workspace/dotfiles/.emacs
Mark saved where search started
Quit
Undo!
C-x C-g is undefined

Configured using:
'configure --with-ns '--enable-locallisppath=/Library/Application
Support/Emacs/${version}/site-lisp:/Library/Application
Support/Emacs/site-lisp' --with-modules'

Configured features:
NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS

Important settings:
value of $LANG: en_GB.UTF-8
locale-coding-system: utf-8-unix

Major mode: JavaScript

Minor modes in effect:
diff-auto-refine-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-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

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-config
gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils misearch multi-isearch vc-git
diff-mode easy-mmode js advice sgml-mode dom json map seq byte-opt gv
bytecomp byte-compile cconv imenu thingatpt cc-mode cc-fonts easymenu
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
cl-loaddefs cl-lib time-date elec-pair tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote kqueue cocoa ns multi-tty make-network-process emacs)

Memory information:
((conses 16 235839 10075)
(symbols 48 23375 2)
(miscs 40 83 326)
(strings 32 39937 2161)
(string-bytes 1 1179357)
(vectors 16 39760)
(vector-slots 8 764599 10838)
(floats 8 52 298)
(intervals 56 414 0)
(buffers 992 15))