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": [