Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consolidate contiguous var declarations in destructuring transform #4690

Merged
merged 4 commits into from Oct 14, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -1,10 +1,10 @@
var a = 1;
var b = 2;
var c = 3;
var d = 4;
var _e$f = { e: 5, f: 6 };
var e = _e$f.e;
var f = _e$f.f;
var _a$b = { a: 7, b: 8 };
var g = _a$b.a;
var h = _a$b.b;
var a = 1,
b = 2;
var c = 3,
d = 4;
var _e$f = { e: 5, f: 6 },
e = _e$f.e,
f = _e$f.f;
var _a$b = { a: 7, b: 8 },
g = _a$b.a,
h = _a$b.b;
Expand Up @@ -492,7 +492,21 @@ export default function ({ types: t }) {
}
}

path.replaceWithMultiple(nodes);
const nodesOut = [];
for (const node of nodes) {
const tail = nodesOut[nodesOut.length - 1];
if (tail && t.isVariableDeclaration(tail) && t.isVariableDeclaration(node) && tail.kind === node.kind) {
tail.declarations.push(...node.declarations);
} else {
nodesOut.push(node);
}
}

if (nodesOut.length === 1) {
path.replaceWith(nodesOut[0]);
} else {
path.replaceWithMultiple(nodesOut);
}
}
}
};
Expand Down
@@ -1,36 +1,36 @@
var a = 1;
var b = 2;
var a = 1;
var b = 2;
var a = 1;
var b = 2;
var c = [3, 4];
var a = 1;
var b = 2;
var c = [3, 4];
var _ref = [1, 2, 3];
var a = _ref[0];
var b = _ref[1];
var _ref2 = [1, 2, 3];
var a = _ref2[0];
var b = _ref2[1];
var _ref3 = [a, b];
var a = _ref3[0];
var b = _ref3[1];
var a = 1,
b = 2;
var a = 1,
b = 2;
var a = 1,
b = 2,
c = [3, 4];
var a = 1,
b = 2,
c = [3, 4];
var _ref = [1, 2, 3],
a = _ref[0],
b = _ref[1];
var _ref2 = [1, 2, 3],
a = _ref2[0],
b = _ref2[1];
var _ref3 = [a, b],
a = _ref3[0],
b = _ref3[1];
var _ref4 = [a[1], a[0]];
a[0] = _ref4[0];
a[1] = _ref4[1];

var _ref5 = [].concat(babelHelpers.toConsumableArray(foo), [bar]);
var _ref5 = [].concat(babelHelpers.toConsumableArray(foo), [bar]),
a = _ref5[0],
b = _ref5[1];

var a = _ref5[0];
var b = _ref5[1];
var _ref6 = [foo(), bar];
var a = _ref6[0];
var b = _ref6[1];
var _ref7 = [clazz.foo(), bar];
var a = _ref7[0];
var b = _ref7[1];
var _ref8 = [clazz.foo, bar];
var a = _ref8[0];
var b = _ref8[1];
var _ref6 = [foo(), bar],
a = _ref6[0],
b = _ref6[1];
var _ref7 = [clazz.foo(), bar],
a = _ref7[0],
b = _ref7[1];
var _ref8 = [clazz.foo, bar],
a = _ref8[0],
b = _ref8[1];
@@ -1,7 +1,7 @@
var a = "hello";
var _ref = [", ", "junk"];
var b = _ref[0];
var c = "world";
var a = "hello",
_ref = [", ", "junk"],
b = _ref[0],
c = "world";
a = "hello";
var _ref2 = [", ", "junk"];
b = _ref2[0];
Expand Down
@@ -1,11 +1,7 @@
var _ref = ["foo", "hello", [", ", "junk"], ["world"]];
var a = _ref[1];

var _ref$ = babelHelpers.slicedToArray(_ref[2], 1);

var b = _ref$[0];

var _ref$2 = babelHelpers.slicedToArray(_ref[3], 1);

var c = _ref$2[0];
var d = _ref[4];
var _ref = ["foo", "hello", [", ", "junk"], ["world"]],
a = _ref[1],
_ref$ = babelHelpers.slicedToArray(_ref[2], 1),
b = _ref$[0],
_ref$2 = babelHelpers.slicedToArray(_ref[3], 1),
c = _ref$2[0],
d = _ref[4];
@@ -1,11 +1,11 @@
var z = {};
var x = babelHelpers.objectWithoutProperties(z, []);
var x = z.x;
var y = babelHelpers.objectWithoutProperties(z, ["x"]);
var x = z[x];
var y = babelHelpers.objectWithoutProperties(z, [x]);
var x = z.x,
y = babelHelpers.objectWithoutProperties(z, ["x"]);
var x = z[x],
y = babelHelpers.objectWithoutProperties(z, [x]);

(function (_ref) {
var x = _ref.x;
var y = babelHelpers.objectWithoutProperties(_ref, ["x"]);
var x = _ref.x,
y = babelHelpers.objectWithoutProperties(_ref, ["x"]);
});
@@ -1,6 +1,6 @@
var _ref = {};
var a = _ref.a;
var b = _ref.b;
var a = _ref.a,
b = _ref.b;
var _ref$c = _ref.c;
var d = _ref$c.d;
var _ref$c$e$f = _ref$c.e.f;
Expand Down
@@ -0,0 +1,4 @@
let list = [1, 2, 3, 4];
for (let i = 0, { length } = list; i < length; i++) {
list[i];
}
@@ -0,0 +1,4 @@
var list = [1, 2, 3, 4];
for (var i = 0, length = list.length; i < length; i++) {
list[i];
}
@@ -1,3 +1,3 @@
var z = [];
var x = z[0];
var y = z.slice(1);
var x = z[0],
y = z.slice(1);
@@ -1,11 +1,8 @@
var rect = {};

var _rect$topLeft = babelHelpers.slicedToArray(rect.topLeft, 2);

var x1 = _rect$topLeft[0];
var y1 = _rect$topLeft[1];

var _rect$bottomRight = babelHelpers.slicedToArray(rect.bottomRight, 2);

var x2 = _rect$bottomRight[0];
var y2 = _rect$bottomRight[1];
var _rect$topLeft = babelHelpers.slicedToArray(rect.topLeft, 2),
x1 = _rect$topLeft[0],
y1 = _rect$topLeft[1],
_rect$bottomRight = babelHelpers.slicedToArray(rect.bottomRight, 2),
x2 = _rect$bottomRight[0],
y2 = _rect$bottomRight[1];
@@ -1,4 +1,4 @@
var coords = [1, 2];
var x = coords.x;
var y = coords.y;
var foo = "bar";
var x = coords.x,
y = coords.y,
foo = "bar";
@@ -1,10 +1,10 @@
var rect = {};
var _rect$topLeft = rect.topLeft;
var x1 = _rect$topLeft.x;
var y1 = _rect$topLeft.y;
var _rect$bottomRight = rect.bottomRight;
var x2 = _rect$bottomRight.x;
var y2 = _rect$bottomRight.y;
var _ref = [0, 1, 2, 3, 4, 5, 6];
var foo = _ref[3];
var bar = _ref[5];
var _rect$topLeft = rect.topLeft,
x1 = _rect$topLeft.x,
y1 = _rect$topLeft.y,
_rect$bottomRight = rect.bottomRight,
x2 = _rect$bottomRight.x,
y2 = _rect$bottomRight.y;
var _ref = [0, 1, 2, 3, 4, 5, 6],
foo = _ref[3],
bar = _ref[5];
@@ -1,3 +1,3 @@
var coords = [1, 2];
var x = coords.x;
var y = coords.y;
var x = coords.x,
y = coords.y;
@@ -1,35 +1,33 @@
function somethingAdvanced(_ref, p2, p3) {
var _ref$topLeft = _ref.topLeft;
_ref$topLeft = _ref$topLeft === undefined ? {} : _ref$topLeft;
var x1 = _ref$topLeft.x;
var y1 = _ref$topLeft.y;
var _ref$bottomRight = _ref.bottomRight;
var x1 = _ref$topLeft.x,
y1 = _ref$topLeft.y,
_ref$bottomRight = _ref.bottomRight;
_ref$bottomRight = _ref$bottomRight === undefined ? {} : _ref$bottomRight;
var x2 = _ref$bottomRight.x;
var y2 = _ref$bottomRight.y;
var x2 = _ref$bottomRight.x,
y2 = _ref$bottomRight.y;
}

function unpackObject(_ref2) {
var title = _ref2.title;
var author = _ref2.author;
var title = _ref2.title,
author = _ref2.author;

return title + " " + author;
}

console.log(unpackObject({ title: "title", author: "author" }));

var unpackArray = function (_ref3, _ref4) {
var _ref6 = babelHelpers.slicedToArray(_ref3, 3);

var a = _ref6[0];
var b = _ref6[1];
var c = _ref6[2];

var _ref5 = babelHelpers.slicedToArray(_ref4, 3);

var x = _ref5[0];
var y = _ref5[1];
var z = _ref5[2];
var _ref6 = babelHelpers.slicedToArray(_ref3, 3),
a = _ref6[0],
b = _ref6[1],
c = _ref6[2];

var _ref5 = babelHelpers.slicedToArray(_ref4, 3),
x = _ref5[0],
y = _ref5[1],
z = _ref5[2];

return a + b + c;
};
Expand Down
@@ -1,10 +1,8 @@
function isSorted(_ref) {
var _ref2 = babelHelpers.toArray(_ref);

var x = _ref2[0];
var y = _ref2[1];

var wow = _ref2.slice(2);
var _ref2 = babelHelpers.toArray(_ref),
x = _ref2[0],
y = _ref2[1],
wow = _ref2.slice(2);

if (!zs.length) return true;
if (y > x) return isSorted(zs);
Expand Down
Expand Up @@ -8,8 +8,7 @@ var _foo2 = _interopRequireDefault(_foo);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var _bar = bar;

var _bar2 = _slicedToArray(_bar, 1);
var _bar = bar,
_bar2 = _slicedToArray(_bar, 1);

const x = _bar2[0];
Expand Up @@ -2,12 +2,12 @@
function t() {
var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "default";
var _ref = arguments[1];
var a = _ref.a;
var b = _ref.b;
var a = _ref.a,
b = _ref.b;

for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}

console.log(x, a, b, args);
}
}