update to RestElement - @RReverser

This commit is contained in:
Sebastian McKenzie 2015-01-23 23:20:45 +11:00
parent 4fee58e7bc
commit a22cd72440
5 changed files with 13 additions and 5 deletions

View File

@ -6,6 +6,7 @@ exports.Identifier = function (node) {
this.push(node.name);
};
exports.RestElement =
exports.SpreadElement =
exports.SpreadProperty = function (node, print) {
this.push("...");

View File

@ -31,6 +31,11 @@ def("ImportBatchSpecifier")
.build("name")
.field("name", def("Identifier"));
def("RestElement")
.bases("Node")
.build("argument")
.field("argument", def("Expression"));
// Abstract references
def("VirtualPropertyExpression")
.bases("Expression")

View File

@ -103,15 +103,15 @@ var pushArrayPattern = function (opts, nodes, pattern, parentId) {
var i;
var hasSpreadElement = false;
var hasRest = false;
for (i = 0; i < pattern.elements.length; i++) {
if (t.isSpreadElement(pattern.elements[i])) {
hasSpreadElement = true;
if (t.isRestElement(pattern.elements[i])) {
hasRest = true;
break;
}
}
var toArray = opts.file.toArray(parentId, !hasSpreadElement && pattern.elements.length);
var toArray = opts.file.toArray(parentId, !hasRest && pattern.elements.length);
var _parentId = opts.scope.generateUidBasedOnNode(parentId, opts.file);
nodes.push(buildVariableDeclar(opts, _parentId, toArray));
@ -125,7 +125,7 @@ var pushArrayPattern = function (opts, nodes, pattern, parentId) {
var newPatternId;
if (t.isSpreadElement(elem)) {
if (t.isRestElement(elem)) {
newPatternId = opts.file.toArray(parentId);
if (i > 0) {

View File

@ -488,6 +488,7 @@ t.getIds.nodes = {
ClassDeclaration: ["id"],
MemeberExpression: ["object"],
SpreadElement: ["argument"],
RestElement: ["argument"],
Property: ["value"],
ComprehensionBlock: ["left"],
AssignmentPattern: ["left"]

View File

@ -48,6 +48,7 @@
"PrivateDeclaration": ["declarations"],
"Program": ["body"],
"Property": ["key", "value"],
"RestElement": ["argument"],
"ReturnStatement": ["argument"],
"SequenceExpression": ["expressions"],
"SpreadElement": ["argument"],