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
