Differences between original js2-mode.el
========================================
-Supported more popular indentation style
-----------------------------------------
+Popular indentation style
+-------------------------
-When js2-consistent-level-indent-inner-bracket-p is non-nil
+When `js2-consistent-level-indent-inner-bracket-p` is non-nil
[foo, bar, baz].forEach(function (v) {
if (validate(v))
return validate(v);
});
-When js2-consistent-level-indent-inner-bracket-p is nil
+When `js2-consistent-level-indent-inner-bracket-p` is nil
(Same as original js2-mode's indentation)
[foo, bar, baz].forEach(function (v) {
bar = 20,
baz = 30;
-Support for abbreviated destructuring assignments
--------------------------------------------------
+Abbreviated destructuring assignments
+-------------------------------------
let {a, b} = {a: 10, b: 20}; // Abbreviated (Not supported in original js2-mode.el)
let {a: a, b: b} = {a: 10, b: 20}; // Same as above (Supported in original js2-mode.el)
for (let [k, { name, age }] in Iterator(obj)) // nested
print(k, name, age);
-Support for expression closure in property value
-------------------------------------------------
+Expression closure in property value
+------------------------------------
let worker = {
get age() 20,
fire: function () _fire()
};
-Fixed odd indentation of "else if" with no braces
------------------------------------------------------
+Fix for odd indentation of "else if" with no braces
+---------------------------------------------------
In original js2-mode.el,