mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-07 05:41:22 -06:00
Better the destructuring of nested array binding pattern
This commit is contained in:
parent
7945de4cd3
commit
de7626356c
@ -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));
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js.map]
|
||||
{"version":3,"file":"sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js","sourceRoot":"","sources":["sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts"],"names":[],"mappings":"AAIA,IAAI,WAAW,GAAsB,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,WAAW,GAAsB,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEzE,IAAI,uBAAwB,CAAC;AAC7B,IAAI,uBAAsB,CAAC;AAC3B,IAAK,uBAAM,uBAAG,qBAAa,EAAE,uBAAe,CAAiB;AAE7D,IAAI,6CAA4C,CAAC;AACjD,IAAkD,sCAAiC,EAA9E,eAAO,cAAG,qBAAa,EAAE,uBAAe,CAAuC;AAEpF,IAAI,sCAAkC,CAAC;AAEvC,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC"}
|
||||
{"version":3,"file":"sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js","sourceRoot":"","sources":["sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts"],"names":[],"mappings":"AAIA,IAAI,WAAW,GAAsB,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,WAAW,GAAsB,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEzE,IAAI,uBAAwB,CAAC;AAC7B,IAAI,uBAAsB,CAAC;AAC3B,IAAK,uBAAM,EAAE,mBAAgC,EAA/B,qBAAa,EAAE,uBAAe,CAAiB;AAE7D,IAAI,6CAA4C,CAAC;AACjD,IAAkD,sCAAiC,EAA9E,eAAO,EAAE,UAAgC,EAA/B,qBAAa,EAAE,uBAAe,CAAuC;AAEpF,IAAI,sCAAkC,CAAC;AAEvC,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC"}
|
||||
@ -139,28 +139,34 @@ sourceFile:sourceMapValidationDestructuringVariableStatementArrayBindingPattern2
|
||||
1->
|
||||
2 >^^^^
|
||||
3 > ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
4 > ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
5 > ^^^^^^^^^^^^^^^^^^^^^
|
||||
6 > ^^
|
||||
7 > ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
8 > ^
|
||||
4 > ^^
|
||||
5 > ^^^^^^^^^^^^^^^^^^^
|
||||
6 > ^^
|
||||
7 > ^^^^^^^^^^^^^^^^^^^^^
|
||||
8 > ^^
|
||||
9 > ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
10> ^
|
||||
1->
|
||||
>
|
||||
2 >let [
|
||||
3 > nameMA
|
||||
4 > , [
|
||||
5 > primarySkillA
|
||||
6 > ,
|
||||
7 > secondarySkillA
|
||||
8 > ]] = multiRobotA;
|
||||
4 > ,
|
||||
5 > [primarySkillA, secondarySkillA]
|
||||
6 >
|
||||
7 > primarySkillA
|
||||
8 > ,
|
||||
9 > secondarySkillA
|
||||
10> ]] = multiRobotA;
|
||||
1->Emitted(5, 1) Source(10, 1) + SourceIndex(0)
|
||||
2 >Emitted(5, 5) Source(10, 6) + SourceIndex(0)
|
||||
3 >Emitted(5, 28) Source(10, 12) + SourceIndex(0)
|
||||
4 >Emitted(5, 51) Source(10, 15) + SourceIndex(0)
|
||||
5 >Emitted(5, 72) Source(10, 28) + SourceIndex(0)
|
||||
6 >Emitted(5, 74) Source(10, 30) + SourceIndex(0)
|
||||
7 >Emitted(5, 97) Source(10, 45) + SourceIndex(0)
|
||||
8 >Emitted(5, 98) Source(10, 62) + SourceIndex(0)
|
||||
4 >Emitted(5, 30) Source(10, 14) + SourceIndex(0)
|
||||
5 >Emitted(5, 49) Source(10, 46) + SourceIndex(0)
|
||||
6 >Emitted(5, 51) Source(10, 15) + SourceIndex(0)
|
||||
7 >Emitted(5, 72) Source(10, 28) + SourceIndex(0)
|
||||
8 >Emitted(5, 74) Source(10, 30) + SourceIndex(0)
|
||||
9 >Emitted(5, 97) Source(10, 45) + SourceIndex(0)
|
||||
10>Emitted(5, 98) Source(10, 62) + SourceIndex(0)
|
||||
---
|
||||
>>>var nameMC = ["roomba", ["vaccum", "mopping"]][0];
|
||||
1 >
|
||||
@ -185,32 +191,38 @@ sourceFile:sourceMapValidationDestructuringVariableStatementArrayBindingPattern2
|
||||
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
4 > ^^
|
||||
5 > ^^^^^^^^^^^^^^^
|
||||
6 > ^^^^^^^^^^^^^^
|
||||
7 > ^^^^^^^^^^^^^^^^^^^^^
|
||||
8 > ^^
|
||||
9 > ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
10> ^
|
||||
6 > ^^
|
||||
7 > ^^^^^^^^^^
|
||||
8 > ^^
|
||||
9 > ^^^^^^^^^^^^^^^^^^^^^
|
||||
10> ^^
|
||||
11> ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
12> ^
|
||||
1->
|
||||
>
|
||||
2 >let [nameMC2, [primarySkillC, secondarySkillC]] =
|
||||
3 > ["roomba", ["vaccum", "mopping"]]
|
||||
4 >
|
||||
5 > nameMC2
|
||||
6 > , [
|
||||
7 > primarySkillC
|
||||
8 > ,
|
||||
9 > secondarySkillC
|
||||
10> ]] = ["roomba", ["vaccum", "mopping"]];
|
||||
6 > ,
|
||||
7 > [primarySkillC, secondarySkillC]
|
||||
8 >
|
||||
9 > primarySkillC
|
||||
10> ,
|
||||
11> secondarySkillC
|
||||
12> ]] = ["roomba", ["vaccum", "mopping"]];
|
||||
1->Emitted(7, 1) Source(13, 1) + SourceIndex(0)
|
||||
2 >Emitted(7, 5) Source(13, 51) + SourceIndex(0)
|
||||
3 >Emitted(7, 43) Source(13, 84) + SourceIndex(0)
|
||||
4 >Emitted(7, 45) Source(13, 6) + SourceIndex(0)
|
||||
5 >Emitted(7, 60) Source(13, 13) + SourceIndex(0)
|
||||
6 >Emitted(7, 74) Source(13, 16) + SourceIndex(0)
|
||||
7 >Emitted(7, 95) Source(13, 29) + SourceIndex(0)
|
||||
8 >Emitted(7, 97) Source(13, 31) + SourceIndex(0)
|
||||
9 >Emitted(7, 120) Source(13, 46) + SourceIndex(0)
|
||||
10>Emitted(7, 121) Source(13, 85) + SourceIndex(0)
|
||||
6 >Emitted(7, 62) Source(13, 15) + SourceIndex(0)
|
||||
7 >Emitted(7, 72) Source(13, 47) + SourceIndex(0)
|
||||
8 >Emitted(7, 74) Source(13, 16) + SourceIndex(0)
|
||||
9 >Emitted(7, 95) Source(13, 29) + SourceIndex(0)
|
||||
10>Emitted(7, 97) Source(13, 31) + SourceIndex(0)
|
||||
11>Emitted(7, 120) Source(13, 46) + SourceIndex(0)
|
||||
12>Emitted(7, 121) Source(13, 85) + SourceIndex(0)
|
||||
---
|
||||
>>>var multiRobotAInfo = multiRobotA.slice(0);
|
||||
1 >
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user