diff --git a/mode/javascript/javascript.js b/mode/javascript/javascript.js
index 0c67874e6f50731cfa402920321e3660c45bf59d..37f6f8737a66f89063089fe124522309aaee02f8 100644
--- a/mode/javascript/javascript.js
+++ b/mode/javascript/javascript.js
@@ -322,7 +322,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
       register(value);
       return isTS ? cont(maybetype, vardef2) : cont(vardef2);
     }
-    return cont();
+    return pass();
   }
   function vardef2(type, value) {
     if (value == "=") return cont(expression, vardef2);
@@ -388,7 +388,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
       var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;
       if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev;
       var type = lexical.type, closing = firstChar == type;
-      if (type == "vardef") return lexical.indented + 4;
+      if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? 4 : 0);
       else if (type == "form" && firstChar == "{") return lexical.indented;
       else if (type == "form") return lexical.indented + indentUnit;
       else if (type == "stat")