Test case for variable destructuring statement with object binding pattern and with default values

This commit is contained in:
Sheetal Nandi 2015-12-11 10:44:16 -08:00
parent df3a74b6ca
commit c7258db2b3
12 changed files with 1429 additions and 0 deletions

View File

@ -0,0 +1,35 @@
//// [sourceMapValidationDestructuringVariableStatementDefaultValues.ts]
interface Robot {
name: string;
skill: string;
}
declare var console: {
log(msg: string): void;
}
var hello = "hello";
var robotA: Robot = { name: "mower", skill: "mowing" };
var robotB: Robot = { name: "trimmer", skill: "trimming" };
var { name: nameA = "<NoName>" } = robotA;
var { name: nameB = "<NoName>", skill: skillB = "<skillUnspecified>" } = robotB;
var { name: nameC = "<NoName>", skill: skillC = "<skillUnspecified>" } = { name: "Edger", skill: "cutting edges" };
if (nameA == nameB) {
console.log(skillB);
}
else {
console.log(nameC);
}
//// [sourceMapValidationDestructuringVariableStatementDefaultValues.js]
var hello = "hello";
var robotA = { name: "mower", skill: "mowing" };
var robotB = { name: "trimmer", skill: "trimming" };
var _a = robotA.name, nameA = _a === void 0 ? "<NoName>" : _a;
var _b = robotB.name, nameB = _b === void 0 ? "<NoName>" : _b, _c = robotB.skill, skillB = _c === void 0 ? "<skillUnspecified>" : _c;
var _d = { name: "Edger", skill: "cutting edges" }, _e = _d.name, nameC = _e === void 0 ? "<NoName>" : _e, _f = _d.skill, skillC = _f === void 0 ? "<skillUnspecified>" : _f;
if (nameA == nameB) {
console.log(skillB);
}
else {
console.log(nameC);
}
//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementDefaultValues.js.map

View File

@ -0,0 +1,2 @@
//// [sourceMapValidationDestructuringVariableStatementDefaultValues.js.map]
{"version":3,"file":"sourceMapValidationDestructuringVariableStatementDefaultValues.js","sourceRoot":"","sources":["sourceMapValidationDestructuringVariableStatementDefaultValues.ts"],"names":[],"mappings":"AAOA,IAAI,KAAK,GAAG,OAAO,CAAC;AACpB,IAAI,MAAM,GAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACvD,IAAI,MAAM,GAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACrD,oBAAwB,EAAxB,uCAAwB,CAAY;AACpC,oBAAwB,EAAxB,uCAAwB,EAAE,iBAAoC,EAApC,kDAAoC,CAAY;AAChF,IAAA,8CAAkH,EAA5G,YAAwB,EAAxB,uCAAwB,EAAE,aAAoC,EAApC,kDAAoC,CAA+C;AACnH,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AACD,IAAI,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}

View File

@ -0,0 +1,344 @@
===================================================================
JsFile: sourceMapValidationDestructuringVariableStatementDefaultValues.js
mapUrl: sourceMapValidationDestructuringVariableStatementDefaultValues.js.map
sourceRoot:
sources: sourceMapValidationDestructuringVariableStatementDefaultValues.ts
===================================================================
-------------------------------------------------------------------
emittedFile:tests/cases/compiler/sourceMapValidationDestructuringVariableStatementDefaultValues.js
sourceFile:sourceMapValidationDestructuringVariableStatementDefaultValues.ts
-------------------------------------------------------------------
>>>var hello = "hello";
1 >
2 >^^^^
3 > ^^^^^
4 > ^^^
5 > ^^^^^^^
6 > ^
7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >interface Robot {
> name: string;
> skill: string;
>}
>declare var console: {
> log(msg: string): void;
>}
>
2 >var
3 > hello
4 > =
5 > "hello"
6 > ;
1 >Emitted(1, 1) Source(8, 1) + SourceIndex(0)
2 >Emitted(1, 5) Source(8, 5) + SourceIndex(0)
3 >Emitted(1, 10) Source(8, 10) + SourceIndex(0)
4 >Emitted(1, 13) Source(8, 13) + SourceIndex(0)
5 >Emitted(1, 20) Source(8, 20) + SourceIndex(0)
6 >Emitted(1, 21) Source(8, 21) + SourceIndex(0)
---
>>>var robotA = { name: "mower", skill: "mowing" };
1->
2 >^^^^
3 > ^^^^^^
4 > ^^^
5 > ^^
6 > ^^^^
7 > ^^
8 > ^^^^^^^
9 > ^^
10> ^^^^^
11> ^^
12> ^^^^^^^^
13> ^^
14> ^
15> ^^^^^->
1->
>
2 >var
3 > robotA
4 > : Robot =
5 > {
6 > name
7 > :
8 > "mower"
9 > ,
10> skill
11> :
12> "mowing"
13> }
14> ;
1->Emitted(2, 1) Source(9, 1) + SourceIndex(0)
2 >Emitted(2, 5) Source(9, 5) + SourceIndex(0)
3 >Emitted(2, 11) Source(9, 11) + SourceIndex(0)
4 >Emitted(2, 14) Source(9, 21) + SourceIndex(0)
5 >Emitted(2, 16) Source(9, 23) + SourceIndex(0)
6 >Emitted(2, 20) Source(9, 27) + SourceIndex(0)
7 >Emitted(2, 22) Source(9, 29) + SourceIndex(0)
8 >Emitted(2, 29) Source(9, 36) + SourceIndex(0)
9 >Emitted(2, 31) Source(9, 38) + SourceIndex(0)
10>Emitted(2, 36) Source(9, 43) + SourceIndex(0)
11>Emitted(2, 38) Source(9, 45) + SourceIndex(0)
12>Emitted(2, 46) Source(9, 53) + SourceIndex(0)
13>Emitted(2, 48) Source(9, 55) + SourceIndex(0)
14>Emitted(2, 49) Source(9, 56) + SourceIndex(0)
---
>>>var robotB = { name: "trimmer", skill: "trimming" };
1->
2 >^^^^
3 > ^^^^^^
4 > ^^^
5 > ^^
6 > ^^^^
7 > ^^
8 > ^^^^^^^^^
9 > ^^
10> ^^^^^
11> ^^
12> ^^^^^^^^^^
13> ^^
14> ^
15> ^^^^^^^^^^^->
1->
>
2 >var
3 > robotB
4 > : Robot =
5 > {
6 > name
7 > :
8 > "trimmer"
9 > ,
10> skill
11> :
12> "trimming"
13> }
14> ;
1->Emitted(3, 1) Source(10, 1) + SourceIndex(0)
2 >Emitted(3, 5) Source(10, 5) + SourceIndex(0)
3 >Emitted(3, 11) Source(10, 11) + SourceIndex(0)
4 >Emitted(3, 14) Source(10, 21) + SourceIndex(0)
5 >Emitted(3, 16) Source(10, 23) + SourceIndex(0)
6 >Emitted(3, 20) Source(10, 27) + SourceIndex(0)
7 >Emitted(3, 22) Source(10, 29) + SourceIndex(0)
8 >Emitted(3, 31) Source(10, 38) + SourceIndex(0)
9 >Emitted(3, 33) Source(10, 40) + SourceIndex(0)
10>Emitted(3, 38) Source(10, 45) + SourceIndex(0)
11>Emitted(3, 40) Source(10, 47) + SourceIndex(0)
12>Emitted(3, 50) Source(10, 57) + SourceIndex(0)
13>Emitted(3, 52) Source(10, 59) + SourceIndex(0)
14>Emitted(3, 53) Source(10, 60) + SourceIndex(0)
---
>>>var _a = robotA.name, nameA = _a === void 0 ? "<NoName>" : _a;
1->
2 >^^^^^^^^^^^^^^^^^^^^
3 > ^^
4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5 > ^
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>var {
2 >name: nameA = "<NoName>"
3 >
4 > name: nameA = "<NoName>"
5 > } = robotA;
1->Emitted(4, 1) Source(11, 7) + SourceIndex(0)
2 >Emitted(4, 21) Source(11, 31) + SourceIndex(0)
3 >Emitted(4, 23) Source(11, 7) + SourceIndex(0)
4 >Emitted(4, 62) Source(11, 31) + SourceIndex(0)
5 >Emitted(4, 63) Source(11, 43) + SourceIndex(0)
---
>>>var _b = robotB.name, nameB = _b === void 0 ? "<NoName>" : _b, _c = robotB.skill, skillB = _c === void 0 ? "<skillUnspecified>" : _c;
1->
2 >^^^^^^^^^^^^^^^^^^^^
3 > ^^
4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5 > ^^
6 > ^^^^^^^^^^^^^^^^^
7 > ^^
8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9 > ^
10> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>var {
2 >name: nameB = "<NoName>"
3 >
4 > name: nameB = "<NoName>"
5 > ,
6 > skill: skillB = "<skillUnspecified>"
7 >
8 > skill: skillB = "<skillUnspecified>"
9 > } = robotB;
1->Emitted(5, 1) Source(12, 7) + SourceIndex(0)
2 >Emitted(5, 21) Source(12, 31) + SourceIndex(0)
3 >Emitted(5, 23) Source(12, 7) + SourceIndex(0)
4 >Emitted(5, 62) Source(12, 31) + SourceIndex(0)
5 >Emitted(5, 64) Source(12, 33) + SourceIndex(0)
6 >Emitted(5, 81) Source(12, 69) + SourceIndex(0)
7 >Emitted(5, 83) Source(12, 33) + SourceIndex(0)
8 >Emitted(5, 133) Source(12, 69) + SourceIndex(0)
9 >Emitted(5, 134) Source(12, 81) + SourceIndex(0)
---
>>>var _d = { name: "Edger", skill: "cutting edges" }, _e = _d.name, nameC = _e === void 0 ? "<NoName>" : _e, _f = _d.skill, skillC = _f === void 0 ? "<skillUnspecified>" : _f;
1->
2 >^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^^
5 > ^^^^^^^^^^^^
6 > ^^
7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
8 > ^^
9 > ^^^^^^^^^^^^^
10> ^^
11> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12> ^
1->
>
2 >
3 > var { name: nameC = "<NoName>", skill: skillC = "<skillUnspecified>" } = { name: "Edger", skill: "cutting edges" }
4 >
5 > name: nameC = "<NoName>"
6 >
7 > name: nameC = "<NoName>"
8 > ,
9 > skill: skillC = "<skillUnspecified>"
10>
11> skill: skillC = "<skillUnspecified>"
12> } = { name: "Edger", skill: "cutting edges" };
1->Emitted(6, 1) Source(13, 1) + SourceIndex(0)
2 >Emitted(6, 5) Source(13, 1) + SourceIndex(0)
3 >Emitted(6, 51) Source(13, 115) + SourceIndex(0)
4 >Emitted(6, 53) Source(13, 7) + SourceIndex(0)
5 >Emitted(6, 65) Source(13, 31) + SourceIndex(0)
6 >Emitted(6, 67) Source(13, 7) + SourceIndex(0)
7 >Emitted(6, 106) Source(13, 31) + SourceIndex(0)
8 >Emitted(6, 108) Source(13, 33) + SourceIndex(0)
9 >Emitted(6, 121) Source(13, 69) + SourceIndex(0)
10>Emitted(6, 123) Source(13, 33) + SourceIndex(0)
11>Emitted(6, 173) Source(13, 69) + SourceIndex(0)
12>Emitted(6, 174) Source(13, 116) + SourceIndex(0)
---
>>>if (nameA == nameB) {
1 >
2 >^^
3 > ^
4 > ^
5 > ^^^^^
6 > ^^^^
7 > ^^^^^
8 > ^
9 > ^
10> ^
11> ^^^^->
1 >
>
2 >if
3 >
4 > (
5 > nameA
6 > ==
7 > nameB
8 > )
9 >
10> {
1 >Emitted(7, 1) Source(14, 1) + SourceIndex(0)
2 >Emitted(7, 3) Source(14, 3) + SourceIndex(0)
3 >Emitted(7, 4) Source(14, 4) + SourceIndex(0)
4 >Emitted(7, 5) Source(14, 5) + SourceIndex(0)
5 >Emitted(7, 10) Source(14, 10) + SourceIndex(0)
6 >Emitted(7, 14) Source(14, 14) + SourceIndex(0)
7 >Emitted(7, 19) Source(14, 19) + SourceIndex(0)
8 >Emitted(7, 20) Source(14, 20) + SourceIndex(0)
9 >Emitted(7, 21) Source(14, 21) + SourceIndex(0)
10>Emitted(7, 22) Source(14, 22) + SourceIndex(0)
---
>>> console.log(skillB);
1->^^^^
2 > ^^^^^^^
3 > ^
4 > ^^^
5 > ^
6 > ^^^^^^
7 > ^
8 > ^
1->
>
2 > console
3 > .
4 > log
5 > (
6 > skillB
7 > )
8 > ;
1->Emitted(8, 5) Source(15, 5) + SourceIndex(0)
2 >Emitted(8, 12) Source(15, 12) + SourceIndex(0)
3 >Emitted(8, 13) Source(15, 13) + SourceIndex(0)
4 >Emitted(8, 16) Source(15, 16) + SourceIndex(0)
5 >Emitted(8, 17) Source(15, 17) + SourceIndex(0)
6 >Emitted(8, 23) Source(15, 23) + SourceIndex(0)
7 >Emitted(8, 24) Source(15, 24) + SourceIndex(0)
8 >Emitted(8, 25) Source(15, 25) + SourceIndex(0)
---
>>>}
1 >
2 >^
3 > ^^^^^^->
1 >
>
2 >}
1 >Emitted(9, 1) Source(16, 1) + SourceIndex(0)
2 >Emitted(9, 2) Source(16, 2) + SourceIndex(0)
---
>>>else {
1->
2 >^^^^
3 > ^
4 > ^
5 > ^^^^^^^^^^^^^^^^^^->
1->
>
2 >else
3 >
4 > {
1->Emitted(10, 1) Source(17, 1) + SourceIndex(0)
2 >Emitted(10, 5) Source(17, 5) + SourceIndex(0)
3 >Emitted(10, 6) Source(17, 6) + SourceIndex(0)
4 >Emitted(10, 7) Source(17, 7) + SourceIndex(0)
---
>>> console.log(nameC);
1->^^^^
2 > ^^^^^^^
3 > ^
4 > ^^^
5 > ^
6 > ^^^^^
7 > ^
8 > ^
1->
>
2 > console
3 > .
4 > log
5 > (
6 > nameC
7 > )
8 > ;
1->Emitted(11, 5) Source(18, 5) + SourceIndex(0)
2 >Emitted(11, 12) Source(18, 12) + SourceIndex(0)
3 >Emitted(11, 13) Source(18, 13) + SourceIndex(0)
4 >Emitted(11, 16) Source(18, 16) + SourceIndex(0)
5 >Emitted(11, 17) Source(18, 17) + SourceIndex(0)
6 >Emitted(11, 22) Source(18, 22) + SourceIndex(0)
7 >Emitted(11, 23) Source(18, 23) + SourceIndex(0)
8 >Emitted(11, 24) Source(18, 24) + SourceIndex(0)
---
>>>}
1 >
2 >^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
2 >}
1 >Emitted(12, 1) Source(19, 1) + SourceIndex(0)
2 >Emitted(12, 2) Source(19, 2) + SourceIndex(0)
---
>>>//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementDefaultValues.js.map

View File

@ -0,0 +1,69 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementDefaultValues.ts ===
interface Robot {
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 0, 0))
name: string;
>name : Symbol(name, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 0, 17))
skill: string;
>skill : Symbol(skill, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 1, 17))
}
declare var console: {
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 4, 11))
log(msg: string): void;
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 4, 22))
>msg : Symbol(msg, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 5, 8))
}
var hello = "hello";
>hello : Symbol(hello, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 7, 3))
var robotA: Robot = { name: "mower", skill: "mowing" };
>robotA : Symbol(robotA, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 8, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 0, 0))
>name : Symbol(name, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 8, 21))
>skill : Symbol(skill, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 8, 36))
var robotB: Robot = { name: "trimmer", skill: "trimming" };
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 9, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 0, 0))
>name : Symbol(name, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 9, 21))
>skill : Symbol(skill, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 9, 38))
var { name: nameA = "<NoName>" } = robotA;
>name : Symbol(Robot.name, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 0, 17))
>nameA : Symbol(nameA, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 10, 5))
>robotA : Symbol(robotA, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 8, 3))
var { name: nameB = "<NoName>", skill: skillB = "<skillUnspecified>" } = robotB;
>name : Symbol(Robot.name, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 0, 17))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 11, 5))
>skill : Symbol(Robot.skill, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 1, 17))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 11, 31))
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 9, 3))
var { name: nameC = "<NoName>", skill: skillC = "<skillUnspecified>" } = { name: "Edger", skill: "cutting edges" };
>name : Symbol(name, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 12, 74))
>nameC : Symbol(nameC, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 12, 5))
>skill : Symbol(skill, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 12, 89))
>skillC : Symbol(skillC, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 12, 31))
>name : Symbol(name, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 12, 74))
>skill : Symbol(skill, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 12, 89))
if (nameA == nameB) {
>nameA : Symbol(nameA, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 10, 5))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 11, 5))
console.log(skillB);
>console.log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 4, 22))
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 4, 11))
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 4, 22))
>skillB : Symbol(skillB, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 11, 31))
}
else {
console.log(nameC);
>console.log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 4, 22))
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 4, 11))
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 4, 22))
>nameC : Symbol(nameC, Decl(sourceMapValidationDestructuringVariableStatementDefaultValues.ts, 12, 5))
}

View File

@ -0,0 +1,87 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementDefaultValues.ts ===
interface Robot {
>Robot : Robot
name: string;
>name : string
skill: string;
>skill : string
}
declare var console: {
>console : { log(msg: string): void; }
log(msg: string): void;
>log : (msg: string) => void
>msg : string
}
var hello = "hello";
>hello : string
>"hello" : string
var robotA: Robot = { name: "mower", skill: "mowing" };
>robotA : Robot
>Robot : Robot
>{ name: "mower", skill: "mowing" } : { name: string; skill: string; }
>name : string
>"mower" : string
>skill : string
>"mowing" : string
var robotB: Robot = { name: "trimmer", skill: "trimming" };
>robotB : Robot
>Robot : Robot
>{ name: "trimmer", skill: "trimming" } : { name: string; skill: string; }
>name : string
>"trimmer" : string
>skill : string
>"trimming" : string
var { name: nameA = "<NoName>" } = robotA;
>name : any
>nameA : string
>"<NoName>" : string
>robotA : Robot
var { name: nameB = "<NoName>", skill: skillB = "<skillUnspecified>" } = robotB;
>name : any
>nameB : string
>"<NoName>" : string
>skill : any
>skillB : string
>"<skillUnspecified>" : string
>robotB : Robot
var { name: nameC = "<NoName>", skill: skillC = "<skillUnspecified>" } = { name: "Edger", skill: "cutting edges" };
>name : any
>nameC : string
>"<NoName>" : string
>skill : any
>skillC : string
>"<skillUnspecified>" : string
>{ name: "Edger", skill: "cutting edges" } : { name?: string; skill?: string; }
>name : string
>"Edger" : string
>skill : string
>"cutting edges" : string
if (nameA == nameB) {
>nameA == nameB : boolean
>nameA : string
>nameB : string
console.log(skillB);
>console.log(skillB) : void
>console.log : (msg: string) => void
>console : { log(msg: string): void; }
>log : (msg: string) => void
>skillB : string
}
else {
console.log(nameC);
>console.log(nameC) : void
>console.log : (msg: string) => void
>console : { log(msg: string): void; }
>log : (msg: string) => void
>nameC : string
}

View File

@ -0,0 +1,55 @@
//// [sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts]
declare var console: {
log(msg: string): void;
}
interface Robot {
name: string;
skills: {
primary?: string;
secondary?: string;
};
}
var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
var robotB: Robot = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } };
var {
skills: {
primary: primaryA = "noSkill",
secondary: secondaryA = "noSkill"
} = { primary: "noSkill", secondary: "noSkill" }
} = robotA;
var {
name: nameB = "noNameSpecified",
skills: {
primary: primaryB = "noSkill",
secondary: secondaryB = "noSkill"
} = { primary: "noSkill", secondary: "noSkill" }
} = robotB;
var {
name: nameC = "noNameSpecified",
skills: {
primary: primaryB = "noSkill",
secondary: secondaryB = "noSkill"
} = { primary: "noSkill", secondary: "noSkill" }
} = <Robot>{ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } };
if (nameB == nameB) {
console.log(nameC);
}
else {
console.log(nameC);
}
//// [sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.js]
var robotA = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
var robotB = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } };
var _a = robotA.skills, _b = _a === void 0 ? { primary: "noSkill", secondary: "noSkill" } : _a, _c = _b.primary, primaryA = _c === void 0 ? "noSkill" : _c, _d = _b.secondary, secondaryA = _d === void 0 ? "noSkill" : _d;
var _e = robotB.name, nameB = _e === void 0 ? "noNameSpecified" : _e, _f = robotB.skills, _g = _f === void 0 ? { primary: "noSkill", secondary: "noSkill" } : _f, _h = _g.primary, primaryB = _h === void 0 ? "noSkill" : _h, _j = _g.secondary, secondaryB = _j === void 0 ? "noSkill" : _j;
var _k = { name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } }, _l = _k.name, nameC = _l === void 0 ? "noNameSpecified" : _l, _m = _k.skills, _o = _m === void 0 ? { primary: "noSkill", secondary: "noSkill" } : _m, _p = _o.primary, primaryB = _p === void 0 ? "noSkill" : _p, _q = _o.secondary, secondaryB = _q === void 0 ? "noSkill" : _q;
if (nameB == nameB) {
console.log(nameC);
}
else {
console.log(nameC);
}
//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.js.map

View File

@ -0,0 +1,2 @@
//// [sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.js.map]
{"version":3,"file":"sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.js","sourceRoot":"","sources":["sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts"],"names":[],"mappings":"AAUA,IAAI,MAAM,GAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;AACxF,IAAI,MAAM,GAAU,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC;AAG1F,sBAGgD,EAHhD,sEAGgD,EAF5C,eAA6B,EAA7B,yCAA6B,EAC7B,iBAAiC,EAAjC,2CAAiC,CAE9B;AAEP,oBAA+B,EAA/B,8CAA+B,EAC/B,kBAGgD,EAHhD,sEAGgD,EAF5C,eAA6B,EAA7B,yCAA6B,EAC7B,iBAAiC,EAAjC,2CAAiC,CAE9B;AACX,IAAA,mFAMyF,EALrF,YAA+B,EAA/B,8CAA+B,EAC/B,cAGgD,EAHhD,sEAGgD,EAF5C,eAA6B,EAA7B,yCAA6B,EAC7B,iBAAiC,EAAjC,2CAAiC,CAEiD;AAE1F,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AACD,IAAI,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}

View File

@ -0,0 +1,484 @@
===================================================================
JsFile: sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.js
mapUrl: sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.js.map
sourceRoot:
sources: sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts
===================================================================
-------------------------------------------------------------------
emittedFile:tests/cases/compiler/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.js
sourceFile:sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts
-------------------------------------------------------------------
>>>var robotA = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
1 >
2 >^^^^
3 > ^^^^^^
4 > ^^^
5 > ^^
6 > ^^^^
7 > ^^
8 > ^^^^^^^
9 > ^^
10> ^^^^^^
11> ^^
12> ^^
13> ^^^^^^^
14> ^^
15> ^^^^^^^^
16> ^^
17> ^^^^^^^^^
18> ^^
19> ^^^^^^
20> ^^
21> ^^
22> ^
23> ^^^^^^^->
1 >declare var console: {
> log(msg: string): void;
>}
>interface Robot {
> name: string;
> skills: {
> primary?: string;
> secondary?: string;
> };
>}
>
2 >var
3 > robotA
4 > : Robot =
5 > {
6 > name
7 > :
8 > "mower"
9 > ,
10> skills
11> :
12> {
13> primary
14> :
15> "mowing"
16> ,
17> secondary
18> :
19> "none"
20> }
21> }
22> ;
1 >Emitted(1, 1) Source(11, 1) + SourceIndex(0)
2 >Emitted(1, 5) Source(11, 5) + SourceIndex(0)
3 >Emitted(1, 11) Source(11, 11) + SourceIndex(0)
4 >Emitted(1, 14) Source(11, 21) + SourceIndex(0)
5 >Emitted(1, 16) Source(11, 23) + SourceIndex(0)
6 >Emitted(1, 20) Source(11, 27) + SourceIndex(0)
7 >Emitted(1, 22) Source(11, 29) + SourceIndex(0)
8 >Emitted(1, 29) Source(11, 36) + SourceIndex(0)
9 >Emitted(1, 31) Source(11, 38) + SourceIndex(0)
10>Emitted(1, 37) Source(11, 44) + SourceIndex(0)
11>Emitted(1, 39) Source(11, 46) + SourceIndex(0)
12>Emitted(1, 41) Source(11, 48) + SourceIndex(0)
13>Emitted(1, 48) Source(11, 55) + SourceIndex(0)
14>Emitted(1, 50) Source(11, 57) + SourceIndex(0)
15>Emitted(1, 58) Source(11, 65) + SourceIndex(0)
16>Emitted(1, 60) Source(11, 67) + SourceIndex(0)
17>Emitted(1, 69) Source(11, 76) + SourceIndex(0)
18>Emitted(1, 71) Source(11, 78) + SourceIndex(0)
19>Emitted(1, 77) Source(11, 84) + SourceIndex(0)
20>Emitted(1, 79) Source(11, 86) + SourceIndex(0)
21>Emitted(1, 81) Source(11, 88) + SourceIndex(0)
22>Emitted(1, 82) Source(11, 89) + SourceIndex(0)
---
>>>var robotB = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } };
1->
2 >^^^^
3 > ^^^^^^
4 > ^^^
5 > ^^
6 > ^^^^
7 > ^^
8 > ^^^^^^^^^
9 > ^^
10> ^^^^^^
11> ^^
12> ^^
13> ^^^^^^^
14> ^^
15> ^^^^^^^^^^
16> ^^
17> ^^^^^^^^^
18> ^^
19> ^^^^^^^^
20> ^^
21> ^^
22> ^
23> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>
2 >var
3 > robotB
4 > : Robot =
5 > {
6 > name
7 > :
8 > "trimmer"
9 > ,
10> skills
11> :
12> {
13> primary
14> :
15> "trimming"
16> ,
17> secondary
18> :
19> "edging"
20> }
21> }
22> ;
1->Emitted(2, 1) Source(12, 1) + SourceIndex(0)
2 >Emitted(2, 5) Source(12, 5) + SourceIndex(0)
3 >Emitted(2, 11) Source(12, 11) + SourceIndex(0)
4 >Emitted(2, 14) Source(12, 21) + SourceIndex(0)
5 >Emitted(2, 16) Source(12, 23) + SourceIndex(0)
6 >Emitted(2, 20) Source(12, 27) + SourceIndex(0)
7 >Emitted(2, 22) Source(12, 29) + SourceIndex(0)
8 >Emitted(2, 31) Source(12, 38) + SourceIndex(0)
9 >Emitted(2, 33) Source(12, 40) + SourceIndex(0)
10>Emitted(2, 39) Source(12, 46) + SourceIndex(0)
11>Emitted(2, 41) Source(12, 48) + SourceIndex(0)
12>Emitted(2, 43) Source(12, 50) + SourceIndex(0)
13>Emitted(2, 50) Source(12, 57) + SourceIndex(0)
14>Emitted(2, 52) Source(12, 59) + SourceIndex(0)
15>Emitted(2, 62) Source(12, 69) + SourceIndex(0)
16>Emitted(2, 64) Source(12, 71) + SourceIndex(0)
17>Emitted(2, 73) Source(12, 80) + SourceIndex(0)
18>Emitted(2, 75) Source(12, 82) + SourceIndex(0)
19>Emitted(2, 83) Source(12, 90) + SourceIndex(0)
20>Emitted(2, 85) Source(12, 92) + SourceIndex(0)
21>Emitted(2, 87) Source(12, 94) + SourceIndex(0)
22>Emitted(2, 88) Source(12, 95) + SourceIndex(0)
---
>>>var _a = robotA.skills, _b = _a === void 0 ? { primary: "noSkill", secondary: "noSkill" } : _a, _c = _b.primary, primaryA = _c === void 0 ? "noSkill" : _c, _d = _b.secondary, secondaryA = _d === void 0 ? "noSkill" : _d;
1->
2 >^^^^^^^^^^^^^^^^^^^^^^
3 > ^^
4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5 > ^^
6 > ^^^^^^^^^^^^^^^
7 > ^^
8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9 > ^^
10> ^^^^^^^^^^^^^^^^^
11> ^^
12> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
13> ^
14> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>
>var {
>
2 >skills: {
> primary: primaryA = "noSkill",
> secondary: secondaryA = "noSkill"
> } = { primary: "noSkill", secondary: "noSkill" }
3 >
4 > skills: {
> primary: primaryA = "noSkill",
> secondary: secondaryA = "noSkill"
> } = { primary: "noSkill", secondary: "noSkill" }
5 >
6 > primary: primaryA = "noSkill"
7 >
8 > primary: primaryA = "noSkill"
9 > ,
>
10> secondary: secondaryA = "noSkill"
11>
12> secondary: secondaryA = "noSkill"
13>
> } = { primary: "noSkill", secondary: "noSkill" }
> } = robotA;
1->Emitted(3, 1) Source(15, 5) + SourceIndex(0)
2 >Emitted(3, 23) Source(18, 53) + SourceIndex(0)
3 >Emitted(3, 25) Source(15, 5) + SourceIndex(0)
4 >Emitted(3, 95) Source(18, 53) + SourceIndex(0)
5 >Emitted(3, 97) Source(16, 9) + SourceIndex(0)
6 >Emitted(3, 112) Source(16, 38) + SourceIndex(0)
7 >Emitted(3, 114) Source(16, 9) + SourceIndex(0)
8 >Emitted(3, 155) Source(16, 38) + SourceIndex(0)
9 >Emitted(3, 157) Source(17, 9) + SourceIndex(0)
10>Emitted(3, 174) Source(17, 42) + SourceIndex(0)
11>Emitted(3, 176) Source(17, 9) + SourceIndex(0)
12>Emitted(3, 219) Source(17, 42) + SourceIndex(0)
13>Emitted(3, 220) Source(19, 12) + SourceIndex(0)
---
>>>var _e = robotB.name, nameB = _e === void 0 ? "noNameSpecified" : _e, _f = robotB.skills, _g = _f === void 0 ? { primary: "noSkill", secondary: "noSkill" } : _f, _h = _g.primary, primaryB = _h === void 0 ? "noSkill" : _h, _j = _g.secondary, secondaryB = _j === void 0 ? "noSkill" : _j;
1->
2 >^^^^^^^^^^^^^^^^^^^^
3 > ^^
4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5 > ^^
6 > ^^^^^^^^^^^^^^^^^^
7 > ^^
8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9 > ^^
10> ^^^^^^^^^^^^^^^
11> ^^
12> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
13> ^^
14> ^^^^^^^^^^^^^^^^^
15> ^^
16> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17> ^
18> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>var {
>
2 >name: nameB = "noNameSpecified"
3 >
4 > name: nameB = "noNameSpecified"
5 > ,
>
6 > skills: {
> primary: primaryB = "noSkill",
> secondary: secondaryB = "noSkill"
> } = { primary: "noSkill", secondary: "noSkill" }
7 >
8 > skills: {
> primary: primaryB = "noSkill",
> secondary: secondaryB = "noSkill"
> } = { primary: "noSkill", secondary: "noSkill" }
9 >
10> primary: primaryB = "noSkill"
11>
12> primary: primaryB = "noSkill"
13> ,
>
14> secondary: secondaryB = "noSkill"
15>
16> secondary: secondaryB = "noSkill"
17>
> } = { primary: "noSkill", secondary: "noSkill" }
> } = robotB;
1->Emitted(4, 1) Source(21, 5) + SourceIndex(0)
2 >Emitted(4, 21) Source(21, 36) + SourceIndex(0)
3 >Emitted(4, 23) Source(21, 5) + SourceIndex(0)
4 >Emitted(4, 69) Source(21, 36) + SourceIndex(0)
5 >Emitted(4, 71) Source(22, 5) + SourceIndex(0)
6 >Emitted(4, 89) Source(25, 53) + SourceIndex(0)
7 >Emitted(4, 91) Source(22, 5) + SourceIndex(0)
8 >Emitted(4, 161) Source(25, 53) + SourceIndex(0)
9 >Emitted(4, 163) Source(23, 9) + SourceIndex(0)
10>Emitted(4, 178) Source(23, 38) + SourceIndex(0)
11>Emitted(4, 180) Source(23, 9) + SourceIndex(0)
12>Emitted(4, 221) Source(23, 38) + SourceIndex(0)
13>Emitted(4, 223) Source(24, 9) + SourceIndex(0)
14>Emitted(4, 240) Source(24, 42) + SourceIndex(0)
15>Emitted(4, 242) Source(24, 9) + SourceIndex(0)
16>Emitted(4, 285) Source(24, 42) + SourceIndex(0)
17>Emitted(4, 286) Source(26, 12) + SourceIndex(0)
---
>>>var _k = { name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } }, _l = _k.name, nameC = _l === void 0 ? "noNameSpecified" : _l, _m = _k.skills, _o = _m === void 0 ? { primary: "noSkill", secondary: "noSkill" } : _m, _p = _o.primary, primaryB = _p === void 0 ? "noSkill" : _p, _q = _o.secondary, secondaryB = _q === void 0 ? "noSkill" : _q;
1->
2 >^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^^
5 > ^^^^^^^^^^^^
6 > ^^
7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
8 > ^^
9 > ^^^^^^^^^^^^^^
10> ^^
11> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12> ^^
13> ^^^^^^^^^^^^^^^
14> ^^
15> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16> ^^
17> ^^^^^^^^^^^^^^^^^
18> ^^
19> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20> ^
1->
>
2 >
3 > var {
> name: nameC = "noNameSpecified",
> skills: {
> primary: primaryB = "noSkill",
> secondary: secondaryB = "noSkill"
> } = { primary: "noSkill", secondary: "noSkill" }
> } = <Robot>{ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } }
4 >
5 > name: nameC = "noNameSpecified"
6 >
7 > name: nameC = "noNameSpecified"
8 > ,
>
9 > skills: {
> primary: primaryB = "noSkill",
> secondary: secondaryB = "noSkill"
> } = { primary: "noSkill", secondary: "noSkill" }
10>
11> skills: {
> primary: primaryB = "noSkill",
> secondary: secondaryB = "noSkill"
> } = { primary: "noSkill", secondary: "noSkill" }
12>
13> primary: primaryB = "noSkill"
14>
15> primary: primaryB = "noSkill"
16> ,
>
17> secondary: secondaryB = "noSkill"
18>
19> secondary: secondaryB = "noSkill"
20>
> } = { primary: "noSkill", secondary: "noSkill" }
> } = <Robot>{ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } };
1->Emitted(5, 1) Source(27, 1) + SourceIndex(0)
2 >Emitted(5, 5) Source(27, 1) + SourceIndex(0)
3 >Emitted(5, 88) Source(33, 90) + SourceIndex(0)
4 >Emitted(5, 90) Source(28, 5) + SourceIndex(0)
5 >Emitted(5, 102) Source(28, 36) + SourceIndex(0)
6 >Emitted(5, 104) Source(28, 5) + SourceIndex(0)
7 >Emitted(5, 150) Source(28, 36) + SourceIndex(0)
8 >Emitted(5, 152) Source(29, 5) + SourceIndex(0)
9 >Emitted(5, 166) Source(32, 53) + SourceIndex(0)
10>Emitted(5, 168) Source(29, 5) + SourceIndex(0)
11>Emitted(5, 238) Source(32, 53) + SourceIndex(0)
12>Emitted(5, 240) Source(30, 9) + SourceIndex(0)
13>Emitted(5, 255) Source(30, 38) + SourceIndex(0)
14>Emitted(5, 257) Source(30, 9) + SourceIndex(0)
15>Emitted(5, 298) Source(30, 38) + SourceIndex(0)
16>Emitted(5, 300) Source(31, 9) + SourceIndex(0)
17>Emitted(5, 317) Source(31, 42) + SourceIndex(0)
18>Emitted(5, 319) Source(31, 9) + SourceIndex(0)
19>Emitted(5, 362) Source(31, 42) + SourceIndex(0)
20>Emitted(5, 363) Source(33, 91) + SourceIndex(0)
---
>>>if (nameB == nameB) {
1 >
2 >^^
3 > ^
4 > ^
5 > ^^^^^
6 > ^^^^
7 > ^^^^^
8 > ^
9 > ^
10> ^
11> ^^^->
1 >
>
>
2 >if
3 >
4 > (
5 > nameB
6 > ==
7 > nameB
8 > )
9 >
10> {
1 >Emitted(6, 1) Source(35, 1) + SourceIndex(0)
2 >Emitted(6, 3) Source(35, 3) + SourceIndex(0)
3 >Emitted(6, 4) Source(35, 4) + SourceIndex(0)
4 >Emitted(6, 5) Source(35, 5) + SourceIndex(0)
5 >Emitted(6, 10) Source(35, 10) + SourceIndex(0)
6 >Emitted(6, 14) Source(35, 14) + SourceIndex(0)
7 >Emitted(6, 19) Source(35, 19) + SourceIndex(0)
8 >Emitted(6, 20) Source(35, 20) + SourceIndex(0)
9 >Emitted(6, 21) Source(35, 21) + SourceIndex(0)
10>Emitted(6, 22) Source(35, 22) + SourceIndex(0)
---
>>> console.log(nameC);
1->^^^^
2 > ^^^^^^^
3 > ^
4 > ^^^
5 > ^
6 > ^^^^^
7 > ^
8 > ^
1->
>
2 > console
3 > .
4 > log
5 > (
6 > nameC
7 > )
8 > ;
1->Emitted(7, 5) Source(36, 5) + SourceIndex(0)
2 >Emitted(7, 12) Source(36, 12) + SourceIndex(0)
3 >Emitted(7, 13) Source(36, 13) + SourceIndex(0)
4 >Emitted(7, 16) Source(36, 16) + SourceIndex(0)
5 >Emitted(7, 17) Source(36, 17) + SourceIndex(0)
6 >Emitted(7, 22) Source(36, 22) + SourceIndex(0)
7 >Emitted(7, 23) Source(36, 23) + SourceIndex(0)
8 >Emitted(7, 24) Source(36, 24) + SourceIndex(0)
---
>>>}
1 >
2 >^
3 > ^^^^^^->
1 >
>
2 >}
1 >Emitted(8, 1) Source(37, 1) + SourceIndex(0)
2 >Emitted(8, 2) Source(37, 2) + SourceIndex(0)
---
>>>else {
1->
2 >^^^^
3 > ^
4 > ^
5 > ^^^^^^^^^^^^^^^^^^->
1->
>
2 >else
3 >
4 > {
1->Emitted(9, 1) Source(38, 1) + SourceIndex(0)
2 >Emitted(9, 5) Source(38, 5) + SourceIndex(0)
3 >Emitted(9, 6) Source(38, 6) + SourceIndex(0)
4 >Emitted(9, 7) Source(38, 7) + SourceIndex(0)
---
>>> console.log(nameC);
1->^^^^
2 > ^^^^^^^
3 > ^
4 > ^^^
5 > ^
6 > ^^^^^
7 > ^
8 > ^
1->
>
2 > console
3 > .
4 > log
5 > (
6 > nameC
7 > )
8 > ;
1->Emitted(10, 5) Source(39, 5) + SourceIndex(0)
2 >Emitted(10, 12) Source(39, 12) + SourceIndex(0)
3 >Emitted(10, 13) Source(39, 13) + SourceIndex(0)
4 >Emitted(10, 16) Source(39, 16) + SourceIndex(0)
5 >Emitted(10, 17) Source(39, 17) + SourceIndex(0)
6 >Emitted(10, 22) Source(39, 22) + SourceIndex(0)
7 >Emitted(10, 23) Source(39, 23) + SourceIndex(0)
8 >Emitted(10, 24) Source(39, 24) + SourceIndex(0)
---
>>>}
1 >
2 >^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
2 >}
1 >Emitted(11, 1) Source(40, 1) + SourceIndex(0)
2 >Emitted(11, 2) Source(40, 2) + SourceIndex(0)
---
>>>//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.js.map

View File

@ -0,0 +1,127 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts ===
declare var console: {
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 0, 11))
log(msg: string): void;
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 0, 22))
>msg : Symbol(msg, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 1, 8))
}
interface Robot {
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 2, 1))
name: string;
>name : Symbol(name, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 3, 17))
skills: {
>skills : Symbol(skills, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 4, 17))
primary?: string;
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 5, 13))
secondary?: string;
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 6, 25))
};
}
var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
>robotA : Symbol(robotA, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 10, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 2, 1))
>name : Symbol(name, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 10, 21))
>skills : Symbol(skills, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 10, 36))
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 10, 46))
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 10, 65))
var robotB: Robot = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } };
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 11, 3))
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 2, 1))
>name : Symbol(name, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 11, 21))
>skills : Symbol(skills, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 11, 38))
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 11, 48))
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 11, 69))
var {
skills: {
>skills : Symbol(Robot.skills, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 4, 17))
primary: primaryA = "noSkill",
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 5, 13))
>primaryA : Symbol(primaryA, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 14, 13))
secondary: secondaryA = "noSkill"
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 6, 25))
>secondaryA : Symbol(secondaryA, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 15, 38))
} = { primary: "noSkill", secondary: "noSkill" }
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 17, 9))
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 17, 29))
} = robotA;
>robotA : Symbol(robotA, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 10, 3))
var {
name: nameB = "noNameSpecified",
>name : Symbol(Robot.name, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 3, 17))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 19, 5))
skills: {
>skills : Symbol(Robot.skills, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 4, 17))
primary: primaryB = "noSkill",
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 5, 13))
>primaryB : Symbol(primaryB, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 21, 13), Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 28, 13))
secondary: secondaryB = "noSkill"
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 6, 25))
>secondaryB : Symbol(secondaryB, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 22, 38), Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 29, 38))
} = { primary: "noSkill", secondary: "noSkill" }
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 24, 9))
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 24, 29))
} = robotB;
>robotB : Symbol(robotB, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 11, 3))
var {
name: nameC = "noNameSpecified",
>name : Symbol(Robot.name, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 3, 17))
>nameC : Symbol(nameC, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 26, 5))
skills: {
>skills : Symbol(Robot.skills, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 4, 17))
primary: primaryB = "noSkill",
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 5, 13))
>primaryB : Symbol(primaryB, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 21, 13), Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 28, 13))
secondary: secondaryB = "noSkill"
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 6, 25))
>secondaryB : Symbol(secondaryB, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 22, 38), Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 29, 38))
} = { primary: "noSkill", secondary: "noSkill" }
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 31, 9))
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 31, 29))
} = <Robot>{ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } };
>Robot : Symbol(Robot, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 2, 1))
>name : Symbol(name, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 32, 12))
>skills : Symbol(skills, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 32, 27))
>primary : Symbol(primary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 32, 37))
>secondary : Symbol(secondary, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 32, 56))
if (nameB == nameB) {
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 19, 5))
>nameB : Symbol(nameB, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 19, 5))
console.log(nameC);
>console.log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 0, 22))
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 0, 11))
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 0, 22))
>nameC : Symbol(nameC, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 26, 5))
}
else {
console.log(nameC);
>console.log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 0, 22))
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 0, 11))
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 0, 22))
>nameC : Symbol(nameC, Decl(sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts, 26, 5))
}

View File

@ -0,0 +1,163 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts ===
declare var console: {
>console : { log(msg: string): void; }
log(msg: string): void;
>log : (msg: string) => void
>msg : string
}
interface Robot {
>Robot : Robot
name: string;
>name : string
skills: {
>skills : { primary?: string; secondary?: string; }
primary?: string;
>primary : string
secondary?: string;
>secondary : string
};
}
var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
>robotA : Robot
>Robot : Robot
>{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; }
>name : string
>"mower" : string
>skills : { primary: string; secondary: string; }
>{ primary: "mowing", secondary: "none" } : { primary: string; secondary: string; }
>primary : string
>"mowing" : string
>secondary : string
>"none" : string
var robotB: Robot = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } };
>robotB : Robot
>Robot : Robot
>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } } : { name: string; skills: { primary: string; secondary: string; }; }
>name : string
>"trimmer" : string
>skills : { primary: string; secondary: string; }
>{ primary: "trimming", secondary: "edging" } : { primary: string; secondary: string; }
>primary : string
>"trimming" : string
>secondary : string
>"edging" : string
var {
skills: {
>skills : any
primary: primaryA = "noSkill",
>primary : any
>primaryA : string
>"noSkill" : string
secondary: secondaryA = "noSkill"
>secondary : any
>secondaryA : string
>"noSkill" : string
} = { primary: "noSkill", secondary: "noSkill" }
>{ primary: "noSkill", secondary: "noSkill" } : { primary?: string; secondary?: string; }
>primary : string
>"noSkill" : string
>secondary : string
>"noSkill" : string
} = robotA;
>robotA : Robot
var {
name: nameB = "noNameSpecified",
>name : any
>nameB : string
>"noNameSpecified" : string
skills: {
>skills : any
primary: primaryB = "noSkill",
>primary : any
>primaryB : string
>"noSkill" : string
secondary: secondaryB = "noSkill"
>secondary : any
>secondaryB : string
>"noSkill" : string
} = { primary: "noSkill", secondary: "noSkill" }
>{ primary: "noSkill", secondary: "noSkill" } : { primary?: string; secondary?: string; }
>primary : string
>"noSkill" : string
>secondary : string
>"noSkill" : string
} = robotB;
>robotB : Robot
var {
name: nameC = "noNameSpecified",
>name : any
>nameC : string
>"noNameSpecified" : string
skills: {
>skills : any
primary: primaryB = "noSkill",
>primary : any
>primaryB : string
>"noSkill" : string
secondary: secondaryB = "noSkill"
>secondary : any
>secondaryB : string
>"noSkill" : string
} = { primary: "noSkill", secondary: "noSkill" }
>{ primary: "noSkill", secondary: "noSkill" } : { primary?: string; secondary?: string; }
>primary : string
>"noSkill" : string
>secondary : string
>"noSkill" : string
} = <Robot>{ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } };
><Robot>{ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } } : Robot
>Robot : Robot
>{ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } } : { name: string; skills: { primary: string; secondary: string; }; }
>name : string
>"Edger" : string
>skills : { primary: string; secondary: string; }
>{ primary: "edging", secondary: "branch trimming" } : { primary: string; secondary: string; }
>primary : string
>"edging" : string
>secondary : string
>"branch trimming" : string
if (nameB == nameB) {
>nameB == nameB : boolean
>nameB : string
>nameB : string
console.log(nameC);
>console.log(nameC) : void
>console.log : (msg: string) => void
>console : { log(msg: string): void; }
>log : (msg: string) => void
>nameC : string
}
else {
console.log(nameC);
>console.log(nameC) : void
>console.log : (msg: string) => void
>console : { log(msg: string): void; }
>log : (msg: string) => void
>nameC : string
}

View File

@ -0,0 +1,20 @@
// @sourcemap: true
interface Robot {
name: string;
skill: string;
}
declare var console: {
log(msg: string): void;
}
var hello = "hello";
var robotA: Robot = { name: "mower", skill: "mowing" };
var robotB: Robot = { name: "trimmer", skill: "trimming" };
var { name: nameA = "<NoName>" } = robotA;
var { name: nameB = "<NoName>", skill: skillB = "<skillUnspecified>" } = robotB;
var { name: nameC = "<NoName>", skill: skillC = "<skillUnspecified>" } = { name: "Edger", skill: "cutting edges" };
if (nameA == nameB) {
console.log(skillB);
}
else {
console.log(nameC);
}

View File

@ -0,0 +1,41 @@
// @sourcemap: true
declare var console: {
log(msg: string): void;
}
interface Robot {
name: string;
skills: {
primary?: string;
secondary?: string;
};
}
var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
var robotB: Robot = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } };
var {
skills: {
primary: primaryA = "noSkill",
secondary: secondaryA = "noSkill"
} = { primary: "noSkill", secondary: "noSkill" }
} = robotA;
var {
name: nameB = "noNameSpecified",
skills: {
primary: primaryB = "noSkill",
secondary: secondaryB = "noSkill"
} = { primary: "noSkill", secondary: "noSkill" }
} = robotB;
var {
name: nameC = "noNameSpecified",
skills: {
primary: primaryB = "noSkill",
secondary: secondaryB = "noSkill"
} = { primary: "noSkill", secondary: "noSkill" }
} = <Robot>{ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } };
if (nameB == nameB) {
console.log(nameC);
}
else {
console.log(nameC);
}