Skip to content

Commit 2e90c2b

Browse files
Merge pull request estools#237 from ef4/nicer-array-patterns
Improved ArrayPattern formatting
2 parents ed529d5 + 5070077 commit 2e90c2b

5 files changed

Lines changed: 16 additions & 53 deletions

File tree

escodegen.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2025,15 +2025,15 @@
20252025
},
20262026

20272027
ArrayPattern: function (expr, precedence, flags) {
2028-
return this.ArrayExpression(expr, precedence, flags);
2028+
return this.ArrayExpression(expr, precedence, flags, true);
20292029
},
20302030

2031-
ArrayExpression: function (expr, precedence, flags) {
2031+
ArrayExpression: function (expr, precedence, flags, isPattern) {
20322032
var result, multiline, that = this;
20332033
if (!expr.elements.length) {
20342034
return '[]';
20352035
}
2036-
multiline = expr.elements.length > 1;
2036+
multiline = isPattern ? false : expr.elements.length > 1;
20372037
result = ['[', multiline ? newline : ''];
20382038
withIndent(function (indent) {
20392039
var i, iz;
Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,6 @@
1-
var [
2-
a,
3-
b,
4-
...rest
5-
] = array;
6-
const [
7-
a,
8-
b,
9-
...rest
10-
] = array;
11-
function a([
12-
a,
13-
b,
14-
...rest
15-
]) {
1+
var [a, b, ...rest] = array;
2+
const [a, b, ...rest] = array;
3+
function a([a, b, ...rest]) {
164
}
17-
([
18-
a,
19-
b,
20-
...rest
21-
]) => {
5+
([a, b, ...rest]) => {
226
};

test/compare-harmony/destructuring-assignment.expected.js

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,14 @@ function t1({responseText: responseText}) {
22
}
33
function t2({responseText}) {
44
}
5-
function t3([
6-
a,
7-
b
8-
]) {
5+
function t3([a, b]) {
96
}
10-
var [
11-
i,
12-
j,
13-
k
14-
] = array;
7+
var [i, j, k] = array;
158
var {i, j, k} = obj;
169
let {i, j, k} = obj;
1710
const {i, j, k} = obj;
1811
var {value} = obj;
1912
var {value} = obj;
2013
var [obj.hello] = prop;
21-
var [
22-
obj.hello,
23-
...obj.ok
24-
] = prop;
25-
var [
26-
obj.hello,
27-
...obj['hello']
28-
] = prop;
14+
var [obj.hello, ...obj.ok] = prop;
15+
var [obj.hello, ...obj['hello']] = prop;
Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,2 @@
1-
var [
2-
a,
3-
b,
4-
...rest
5-
] = array;
6-
const [
7-
a,
8-
b,
9-
...rest
10-
] = array;
1+
var [a, b, ...rest] = array;
2+
const [a, b, ...rest] = array;

test/harmony.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1380,7 +1380,7 @@ data = {
13801380
}
13811381
},
13821382

1383-
'for (let [\n a,\n b\n ] in obj) {\n}': {
1383+
'for (let [a, b] in obj) {\n}': {
13841384
generateFrom: {
13851385
type: 'Program',
13861386
body: [{
@@ -1421,7 +1421,7 @@ data = {
14211421
}
14221422
},
14231423

1424-
'function getIdField([\n a,\n b,\n c\n]) {\n}': {
1424+
'function getIdField([a, b, c]) {\n}': {
14251425
generateFrom: {
14261426
type: 'Program',
14271427
body: [{
@@ -1461,7 +1461,7 @@ data = {
14611461
}
14621462
},
14631463

1464-
'[\n x,\n ...y\n] = list;': {
1464+
'[x, ...y] = list;': {
14651465
generateFrom: {
14661466
"type": "Program",
14671467
"body": [

0 commit comments

Comments
 (0)