Better the destructuring of nested array binding pattern

This commit is contained in:
Sheetal Nandi
2015-12-04 13:41:10 -08:00
parent 7945de4cd3
commit de7626356c
3 changed files with 46 additions and 34 deletions

View File

@@ -1986,8 +1986,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
return result;
}
function createElementAccessExpression(expression: Expression, argumentExpression: Expression): ElementAccessExpression {
const result = <ElementAccessExpression>createSourceMappedSynthesizedNode(SyntaxKind.ElementAccessExpression, argumentExpression);
function createElementAccessExpression(expression: Expression, argumentExpression: Expression, sourceMapNode?: Node): ElementAccessExpression {
const result = <ElementAccessExpression>createSourceMappedSynthesizedNode(SyntaxKind.ElementAccessExpression, sourceMapNode || argumentExpression);
result.expression = parenthesizeForAccess(expression);
result.argumentExpression = argumentExpression;
@@ -3996,7 +3996,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
else if (element.kind !== SyntaxKind.OmittedExpression) {
if (!element.dotDotDotToken) {
// Rewrite element to a declaration that accesses array element at index i
emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i)));
emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i), element));
}
else if (i === numElements - 1) {
emitBindingElement(element, createSliceCall(value, i));