Merge pull request #237 from ef4/nicer-array-patterns
Improved ArrayPattern formatting
diff --git a/escodegen.js b/escodegen.js
index 3f1c330..84edc1a 100644
--- a/escodegen.js
+++ b/escodegen.js
@@ -2025,15 +2025,15 @@
},
ArrayPattern: function (expr, precedence, flags) {
- return this.ArrayExpression(expr, precedence, flags);
+ return this.ArrayExpression(expr, precedence, flags, true);
},
- ArrayExpression: function (expr, precedence, flags) {
+ ArrayExpression: function (expr, precedence, flags, isPattern) {
var result, multiline, that = this;
if (!expr.elements.length) {
return '[]';
}
- multiline = expr.elements.length > 1;
+ multiline = isPattern ? false : expr.elements.length > 1;
result = ['[', multiline ? newline : ''];
withIndent(function (indent) {
var i, iz;
diff --git a/test/compare-fixed-harmony/spread-element.expected.js b/test/compare-fixed-harmony/spread-element.expected.js
index 48a01ab..80bf18b 100644
--- a/test/compare-fixed-harmony/spread-element.expected.js
+++ b/test/compare-fixed-harmony/spread-element.expected.js
@@ -1,22 +1,6 @@
-var [
- a,
- b,
- ...rest
-] = array;
-const [
- a,
- b,
- ...rest
-] = array;
-function a([
- a,
- b,
- ...rest
-]) {
+var [a, b, ...rest] = array;
+const [a, b, ...rest] = array;
+function a([a, b, ...rest]) {
}
-([
- a,
- b,
- ...rest
-]) => {
+([a, b, ...rest]) => {
};
diff --git a/test/compare-harmony/destructuring-assignment.expected.js b/test/compare-harmony/destructuring-assignment.expected.js
index 227c366..6d4a1bb 100644
--- a/test/compare-harmony/destructuring-assignment.expected.js
+++ b/test/compare-harmony/destructuring-assignment.expected.js
@@ -2,27 +2,14 @@
}
function t2({responseText}) {
}
-function t3([
- a,
- b
-]) {
+function t3([a, b]) {
}
-var [
- i,
- j,
- k
-] = array;
+var [i, j, k] = array;
var {i, j, k} = obj;
let {i, j, k} = obj;
const {i, j, k} = obj;
var {value} = obj;
var {value} = obj;
var [obj.hello] = prop;
-var [
- obj.hello,
- ...obj.ok
-] = prop;
-var [
- obj.hello,
- ...obj['hello']
-] = prop;
+var [obj.hello, ...obj.ok] = prop;
+var [obj.hello, ...obj['hello']] = prop;
diff --git a/test/compare-harmony/spread-element.expected.js b/test/compare-harmony/spread-element.expected.js
index 2533b3c..9de0bf3 100644
--- a/test/compare-harmony/spread-element.expected.js
+++ b/test/compare-harmony/spread-element.expected.js
@@ -1,10 +1,2 @@
-var [
- a,
- b,
- ...rest
-] = array;
-const [
- a,
- b,
- ...rest
-] = array;
+var [a, b, ...rest] = array;
+const [a, b, ...rest] = array;
diff --git a/test/harmony.js b/test/harmony.js
index 68f94b3..1110293 100644
--- a/test/harmony.js
+++ b/test/harmony.js
@@ -1380,7 +1380,7 @@
}
},
- 'for (let [\n a,\n b\n ] in obj) {\n}': {
+ 'for (let [a, b] in obj) {\n}': {
generateFrom: {
type: 'Program',
body: [{
@@ -1421,7 +1421,7 @@
}
},
- 'function getIdField([\n a,\n b,\n c\n]) {\n}': {
+ 'function getIdField([a, b, c]) {\n}': {
generateFrom: {
type: 'Program',
body: [{
@@ -1461,7 +1461,7 @@
}
},
- '[\n x,\n ...y\n] = list;': {
+ '[x, ...y] = list;': {
generateFrom: {
"type": "Program",
"body": [