Update runtime files.
diff --git a/runtime/ftplugin/javascript.vim b/runtime/ftplugin/javascript.vim
index af5e4a9..9a0b29e 100644
--- a/runtime/ftplugin/javascript.vim
+++ b/runtime/ftplugin/javascript.vim
@@ -1,11 +1,11 @@
 " Vim filetype plugin file
-" Language:	Javascript
-" Maintainer:	Doug Kearns <dougkearns@gmail.com>
-" Last Change:  2008 Jun 15
-" URL:		http://gus.gscit.monash.edu.au/~djkea2/vim/ftplugin/javascript.vim
+" Language:     Javascript
+" Maintainer:   Doug Kearns <dougkearns@gmail.com>
+" Last Change:  2020 Jun 23
+" Contributor:  Romain Lafourcade <romainlafourcade@gmail.com>
 
 if exists("b:did_ftplugin")
-  finish
+    finish
 endif
 let b:did_ftplugin = 1
 
@@ -13,7 +13,7 @@
 set cpo-=C
 
 " Set 'formatoptions' to break comment lines but not other lines,
-" " and insert the comment leader when hitting <CR> or using "o".
+" and insert the comment leader when hitting <CR> or using "o".
 setlocal formatoptions-=t formatoptions+=croql
 
 " Set completion with CTRL-X CTRL-O to autoloaded function.
@@ -26,13 +26,50 @@
 
 setlocal commentstring=//%s
 
-" Change the :browse e filter to primarily show Java-related files.
-if has("gui_win32")
-    let  b:browsefilter="Javascript Files (*.js)\t*.js\n" .
-		\	"All Files (*.*)\t*.*\n"
+" Change the :browse e filter to primarily show JavaScript-related files.
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+    let b:browsefilter =
+                \ "JavaScript Files (*.js)\t*.js\n"
+                \ .. "JSX Files (*.jsx)\t*.jsx\n"
+                \ .. "JavaScript Modules (*.es, *.es6, *.cjs, *.mjs, *.jsm)\t*.es;*.es6;*.cjs;*.mjs;*.jsm\n"
+                \ .. "Vue Templates (*.vue)\t*.vue\n"
+                \ .. "JSON Files (*.json)\t*.json\n"
+                \ .. "All Files (*.*)\t*.*\n"
 endif
-       
-let b:undo_ftplugin = "setl fo< ofu< com< cms<" 
+
+" The following suffixes should be implied when resolving filenames
+setlocal suffixesadd+=.js,.jsx,.es,.es6,.cjs,.mjs,.jsm,.vue,.json
+
+" The following suffixes should have low priority
+"   .snap    jest snapshot
+setlocal suffixes+=.snap
+
+" Remove irrelevant part of 'path'.
+" User is expected to augment it with contextually-relevant paths
+setlocal path-=/usr/include
+
+" Matchit configuration
+if exists("loaded_matchit")
+    let b:match_ignorecase = 0
+    let b:match_words =
+                \ '\<do\>:\<while\>,'
+                \ .. '<\@<=\([^ \t>/]\+\)\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\):<\@<=/\1>,'
+                \ .. '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>'
+endif
+
+" Set 'define' to a comprehensive value
+let &l:define =
+            \ '\(^\s*(*async\s\+function\|(*function\)'
+            \ .. '\|^\s*\(\*\|static\|async\|get\|set\|\i\+\.\)'
+            \ .. '\|^\s*\(\ze\i\+\)\(([^)]*).*{$\|\s*[:=,]\)'
+            \ .. '\|^\s*\(export\s\+\|export\s\+default\s\+\)*\(var\|let\|const\|function\|class\)'
+            \ .. '\|\<as\>'
+
+let b:undo_ftplugin =
+            \ "setl fo< ofu< com< cms< sua< su< def< pa<"
+            \ .. "| unlet! b:browsefilter b:match_ignorecase b:match_words"
 
 let &cpo = s:cpo_save
 unlet s:cpo_save
+
+" vim: textwidth=78 tabstop=8 shiftwidth=4 softtabstop=4 expandtab
diff --git a/runtime/ftplugin/javascriptreact.vim b/runtime/ftplugin/javascriptreact.vim
index af318a0..b9c39d5 100644
--- a/runtime/ftplugin/javascriptreact.vim
+++ b/runtime/ftplugin/javascriptreact.vim
@@ -1,2 +1,7 @@
+" Vim filetype plugin file
+" Language:	JavaScript React
+" Maintainer:	Doug Kearns <dougkearns@gmail.com>
+" Last Change:	2020 Aug 19
+
 " Placeholder for backwards compatilibity: .jsx used to stand for JavaScript.
 runtime! ftplugin/javascript.vim