mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-08 11:53:15 -05:00
Merge branch 'master' of https://github.com/Microsoft/TypeScript into tupleTypesAny
This commit is contained in:
@@ -3249,7 +3249,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
function emitAssignmentExpression(root: BinaryExpression) {
|
||||
let target = root.left;
|
||||
let value = root.right;
|
||||
if (isAssignmentExpressionStatement) {
|
||||
|
||||
if (isEmptyObjectLiteralOrArrayLiteral(target)) {
|
||||
emit(value);
|
||||
}
|
||||
else if (isAssignmentExpressionStatement) {
|
||||
emitDestructuringAssignment(target, value);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -1981,6 +1981,17 @@ namespace ts {
|
||||
(node.parent.kind === SyntaxKind.PropertyAccessExpression && (<PropertyAccessExpression>node.parent).name === node);
|
||||
}
|
||||
|
||||
export function isEmptyObjectLiteralOrArrayLiteral(expression: Node): boolean {
|
||||
let kind = expression.kind;
|
||||
if (kind === SyntaxKind.ObjectLiteralExpression) {
|
||||
return (<ObjectLiteralExpression>expression).properties.length === 0;
|
||||
}
|
||||
if (kind === SyntaxKind.ArrayLiteralExpression) {
|
||||
return (<ArrayLiteralExpression>expression).elements.length === 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
export function getLocalSymbolForExportDefault(symbol: Symbol) {
|
||||
return symbol && symbol.valueDeclaration && (symbol.valueDeclaration.flags & NodeFlags.Default) ? symbol.valueDeclaration.localSymbol : undefined;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
|
||||
function f([]) {
|
||||
var x, y, z;
|
||||
var x, y, z;
|
||||
}
|
||||
|
||||
//// [emptyArrayBindingPatternParameter01.js]
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
function f([]) {
|
||||
>f : Symbol(f, Decl(emptyArrayBindingPatternParameter01.ts, 0, 0))
|
||||
|
||||
var x, y, z;
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter01.ts, 3, 4))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter01.ts, 3, 7))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter01.ts, 3, 10))
|
||||
var x, y, z;
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter01.ts, 3, 7))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter01.ts, 3, 10))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter01.ts, 3, 13))
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
function f([]) {
|
||||
>f : ([]: any[]) => void
|
||||
|
||||
var x, y, z;
|
||||
var x, y, z;
|
||||
>x : any
|
||||
>y : any
|
||||
>z : any
|
||||
|
||||
11
tests/baselines/reference/emptyAssignmentPatterns01_ES5.js
Normal file
11
tests/baselines/reference/emptyAssignmentPatterns01_ES5.js
Normal file
@@ -0,0 +1,11 @@
|
||||
//// [emptyAssignmentPatterns01_ES5.ts]
|
||||
|
||||
var a: any;
|
||||
|
||||
({} = a);
|
||||
([] = a);
|
||||
|
||||
//// [emptyAssignmentPatterns01_ES5.js]
|
||||
var a;
|
||||
(a);
|
||||
(a);
|
||||
@@ -0,0 +1,11 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns01_ES5.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns01_ES5.ts, 1, 3))
|
||||
|
||||
({} = a);
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns01_ES5.ts, 1, 3))
|
||||
|
||||
([] = a);
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns01_ES5.ts, 1, 3))
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns01_ES5.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
({} = a);
|
||||
>({} = a) : any
|
||||
>{} = a : any
|
||||
>{} : {}
|
||||
>a : any
|
||||
|
||||
([] = a);
|
||||
>([] = a) : any
|
||||
>[] = a : any
|
||||
>[] : undefined[]
|
||||
>a : any
|
||||
|
||||
11
tests/baselines/reference/emptyAssignmentPatterns01_ES6.js
Normal file
11
tests/baselines/reference/emptyAssignmentPatterns01_ES6.js
Normal file
@@ -0,0 +1,11 @@
|
||||
//// [emptyAssignmentPatterns01_ES6.ts]
|
||||
|
||||
var a: any;
|
||||
|
||||
({} = a);
|
||||
([] = a);
|
||||
|
||||
//// [emptyAssignmentPatterns01_ES6.js]
|
||||
var a;
|
||||
({} = a);
|
||||
([] = a);
|
||||
@@ -0,0 +1,11 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns01_ES6.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns01_ES6.ts, 1, 3))
|
||||
|
||||
({} = a);
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns01_ES6.ts, 1, 3))
|
||||
|
||||
([] = a);
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns01_ES6.ts, 1, 3))
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns01_ES6.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
({} = a);
|
||||
>({} = a) : any
|
||||
>{} = a : any
|
||||
>{} : {}
|
||||
>a : any
|
||||
|
||||
([] = a);
|
||||
>([] = a) : any
|
||||
>[] = a : any
|
||||
>[] : undefined[]
|
||||
>a : any
|
||||
|
||||
13
tests/baselines/reference/emptyAssignmentPatterns02_ES5.js
Normal file
13
tests/baselines/reference/emptyAssignmentPatterns02_ES5.js
Normal file
@@ -0,0 +1,13 @@
|
||||
//// [emptyAssignmentPatterns02_ES5.ts]
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
({} = { x, y, z } = a);
|
||||
([] = [ a1, a2, a3] = a);
|
||||
|
||||
//// [emptyAssignmentPatterns02_ES5.js]
|
||||
var a;
|
||||
var x, y, z, a1, a2, a3;
|
||||
((x = a.x, y = a.y, z = a.z, a));
|
||||
((a1 = a[0], a2 = a[1], a3 = a[2], a));
|
||||
@@ -0,0 +1,25 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns02_ES5.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns02_ES5.ts, 1, 3))
|
||||
|
||||
let x, y, z, a1, a2, a3;
|
||||
>x : Symbol(x, Decl(emptyAssignmentPatterns02_ES5.ts, 2, 3))
|
||||
>y : Symbol(y, Decl(emptyAssignmentPatterns02_ES5.ts, 2, 6))
|
||||
>z : Symbol(z, Decl(emptyAssignmentPatterns02_ES5.ts, 2, 9))
|
||||
>a1 : Symbol(a1, Decl(emptyAssignmentPatterns02_ES5.ts, 2, 12))
|
||||
>a2 : Symbol(a2, Decl(emptyAssignmentPatterns02_ES5.ts, 2, 16))
|
||||
>a3 : Symbol(a3, Decl(emptyAssignmentPatterns02_ES5.ts, 2, 20))
|
||||
|
||||
({} = { x, y, z } = a);
|
||||
>x : Symbol(x, Decl(emptyAssignmentPatterns02_ES5.ts, 4, 7))
|
||||
>y : Symbol(y, Decl(emptyAssignmentPatterns02_ES5.ts, 4, 10))
|
||||
>z : Symbol(z, Decl(emptyAssignmentPatterns02_ES5.ts, 4, 13))
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns02_ES5.ts, 1, 3))
|
||||
|
||||
([] = [ a1, a2, a3] = a);
|
||||
>a1 : Symbol(a1, Decl(emptyAssignmentPatterns02_ES5.ts, 2, 12))
|
||||
>a2 : Symbol(a2, Decl(emptyAssignmentPatterns02_ES5.ts, 2, 16))
|
||||
>a3 : Symbol(a3, Decl(emptyAssignmentPatterns02_ES5.ts, 2, 20))
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns02_ES5.ts, 1, 3))
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns02_ES5.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
let x, y, z, a1, a2, a3;
|
||||
>x : any
|
||||
>y : any
|
||||
>z : any
|
||||
>a1 : any
|
||||
>a2 : any
|
||||
>a3 : any
|
||||
|
||||
({} = { x, y, z } = a);
|
||||
>({} = { x, y, z } = a) : any
|
||||
>{} = { x, y, z } = a : any
|
||||
>{} : {}
|
||||
>{ x, y, z } = a : any
|
||||
>{ x, y, z } : { x: any; y: any; z: any; }
|
||||
>x : any
|
||||
>y : any
|
||||
>z : any
|
||||
>a : any
|
||||
|
||||
([] = [ a1, a2, a3] = a);
|
||||
>([] = [ a1, a2, a3] = a) : any
|
||||
>[] = [ a1, a2, a3] = a : any
|
||||
>[] : undefined[]
|
||||
>[ a1, a2, a3] = a : any
|
||||
>[ a1, a2, a3] : [any, any, any]
|
||||
>a1 : any
|
||||
>a2 : any
|
||||
>a3 : any
|
||||
>a : any
|
||||
|
||||
13
tests/baselines/reference/emptyAssignmentPatterns02_ES6.js
Normal file
13
tests/baselines/reference/emptyAssignmentPatterns02_ES6.js
Normal file
@@ -0,0 +1,13 @@
|
||||
//// [emptyAssignmentPatterns02_ES6.ts]
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
({} = { x, y, z } = a);
|
||||
([] = [ a1, a2, a3] = a);
|
||||
|
||||
//// [emptyAssignmentPatterns02_ES6.js]
|
||||
var a;
|
||||
let x, y, z, a1, a2, a3;
|
||||
({} = { x, y, z } = a);
|
||||
([] = [a1, a2, a3] = a);
|
||||
@@ -0,0 +1,25 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns02_ES6.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns02_ES6.ts, 1, 3))
|
||||
|
||||
let x, y, z, a1, a2, a3;
|
||||
>x : Symbol(x, Decl(emptyAssignmentPatterns02_ES6.ts, 2, 3))
|
||||
>y : Symbol(y, Decl(emptyAssignmentPatterns02_ES6.ts, 2, 6))
|
||||
>z : Symbol(z, Decl(emptyAssignmentPatterns02_ES6.ts, 2, 9))
|
||||
>a1 : Symbol(a1, Decl(emptyAssignmentPatterns02_ES6.ts, 2, 12))
|
||||
>a2 : Symbol(a2, Decl(emptyAssignmentPatterns02_ES6.ts, 2, 16))
|
||||
>a3 : Symbol(a3, Decl(emptyAssignmentPatterns02_ES6.ts, 2, 20))
|
||||
|
||||
({} = { x, y, z } = a);
|
||||
>x : Symbol(x, Decl(emptyAssignmentPatterns02_ES6.ts, 4, 7))
|
||||
>y : Symbol(y, Decl(emptyAssignmentPatterns02_ES6.ts, 4, 10))
|
||||
>z : Symbol(z, Decl(emptyAssignmentPatterns02_ES6.ts, 4, 13))
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns02_ES6.ts, 1, 3))
|
||||
|
||||
([] = [ a1, a2, a3] = a);
|
||||
>a1 : Symbol(a1, Decl(emptyAssignmentPatterns02_ES6.ts, 2, 12))
|
||||
>a2 : Symbol(a2, Decl(emptyAssignmentPatterns02_ES6.ts, 2, 16))
|
||||
>a3 : Symbol(a3, Decl(emptyAssignmentPatterns02_ES6.ts, 2, 20))
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns02_ES6.ts, 1, 3))
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns02_ES6.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
let x, y, z, a1, a2, a3;
|
||||
>x : any
|
||||
>y : any
|
||||
>z : any
|
||||
>a1 : any
|
||||
>a2 : any
|
||||
>a3 : any
|
||||
|
||||
({} = { x, y, z } = a);
|
||||
>({} = { x, y, z } = a) : any
|
||||
>{} = { x, y, z } = a : any
|
||||
>{} : {}
|
||||
>{ x, y, z } = a : any
|
||||
>{ x, y, z } : { x: any; y: any; z: any; }
|
||||
>x : any
|
||||
>y : any
|
||||
>z : any
|
||||
>a : any
|
||||
|
||||
([] = [ a1, a2, a3] = a);
|
||||
>([] = [ a1, a2, a3] = a) : any
|
||||
>[] = [ a1, a2, a3] = a : any
|
||||
>[] : undefined[]
|
||||
>[ a1, a2, a3] = a : any
|
||||
>[ a1, a2, a3] : [any, any, any]
|
||||
>a1 : any
|
||||
>a2 : any
|
||||
>a3 : any
|
||||
>a : any
|
||||
|
||||
11
tests/baselines/reference/emptyAssignmentPatterns03_ES5.js
Normal file
11
tests/baselines/reference/emptyAssignmentPatterns03_ES5.js
Normal file
@@ -0,0 +1,11 @@
|
||||
//// [emptyAssignmentPatterns03_ES5.ts]
|
||||
|
||||
var a: any;
|
||||
|
||||
({} = {} = a);
|
||||
([] = [] = a);
|
||||
|
||||
//// [emptyAssignmentPatterns03_ES5.js]
|
||||
var a;
|
||||
(a);
|
||||
(a);
|
||||
@@ -0,0 +1,11 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns03_ES5.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns03_ES5.ts, 1, 3))
|
||||
|
||||
({} = {} = a);
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns03_ES5.ts, 1, 3))
|
||||
|
||||
([] = [] = a);
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns03_ES5.ts, 1, 3))
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns03_ES5.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
({} = {} = a);
|
||||
>({} = {} = a) : any
|
||||
>{} = {} = a : any
|
||||
>{} : {}
|
||||
>{} = a : any
|
||||
>{} : {}
|
||||
>a : any
|
||||
|
||||
([] = [] = a);
|
||||
>([] = [] = a) : any
|
||||
>[] = [] = a : any
|
||||
>[] : undefined[]
|
||||
>[] = a : any
|
||||
>[] : undefined[]
|
||||
>a : any
|
||||
|
||||
11
tests/baselines/reference/emptyAssignmentPatterns03_ES6.js
Normal file
11
tests/baselines/reference/emptyAssignmentPatterns03_ES6.js
Normal file
@@ -0,0 +1,11 @@
|
||||
//// [emptyAssignmentPatterns03_ES6.ts]
|
||||
|
||||
var a: any;
|
||||
|
||||
({} = {} = a);
|
||||
([] = [] = a);
|
||||
|
||||
//// [emptyAssignmentPatterns03_ES6.js]
|
||||
var a;
|
||||
({} = {} = a);
|
||||
([] = [] = a);
|
||||
@@ -0,0 +1,11 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns03_ES6.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns03_ES6.ts, 1, 3))
|
||||
|
||||
({} = {} = a);
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns03_ES6.ts, 1, 3))
|
||||
|
||||
([] = [] = a);
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns03_ES6.ts, 1, 3))
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns03_ES6.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
({} = {} = a);
|
||||
>({} = {} = a) : any
|
||||
>{} = {} = a : any
|
||||
>{} : {}
|
||||
>{} = a : any
|
||||
>{} : {}
|
||||
>a : any
|
||||
|
||||
([] = [] = a);
|
||||
>([] = [] = a) : any
|
||||
>[] = [] = a : any
|
||||
>[] : undefined[]
|
||||
>[] = a : any
|
||||
>[] : undefined[]
|
||||
>a : any
|
||||
|
||||
14
tests/baselines/reference/emptyAssignmentPatterns04_ES5.js
Normal file
14
tests/baselines/reference/emptyAssignmentPatterns04_ES5.js
Normal file
@@ -0,0 +1,14 @@
|
||||
//// [emptyAssignmentPatterns04_ES5.ts]
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
({ x, y, z } = {} = a);
|
||||
([ a1, a2, a3] = [] = a);
|
||||
|
||||
//// [emptyAssignmentPatterns04_ES5.js]
|
||||
var a;
|
||||
var x, y, z, a1, a2, a3;
|
||||
(_a = a, x = _a.x, y = _a.y, z = _a.z, _a);
|
||||
(_b = a, a1 = _b[0], a2 = _b[1], a3 = _b[2], _b);
|
||||
var _a, _b;
|
||||
@@ -0,0 +1,25 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns04_ES5.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns04_ES5.ts, 1, 3))
|
||||
|
||||
let x, y, z, a1, a2, a3;
|
||||
>x : Symbol(x, Decl(emptyAssignmentPatterns04_ES5.ts, 2, 3))
|
||||
>y : Symbol(y, Decl(emptyAssignmentPatterns04_ES5.ts, 2, 6))
|
||||
>z : Symbol(z, Decl(emptyAssignmentPatterns04_ES5.ts, 2, 9))
|
||||
>a1 : Symbol(a1, Decl(emptyAssignmentPatterns04_ES5.ts, 2, 12))
|
||||
>a2 : Symbol(a2, Decl(emptyAssignmentPatterns04_ES5.ts, 2, 16))
|
||||
>a3 : Symbol(a3, Decl(emptyAssignmentPatterns04_ES5.ts, 2, 20))
|
||||
|
||||
({ x, y, z } = {} = a);
|
||||
>x : Symbol(x, Decl(emptyAssignmentPatterns04_ES5.ts, 4, 2))
|
||||
>y : Symbol(y, Decl(emptyAssignmentPatterns04_ES5.ts, 4, 5))
|
||||
>z : Symbol(z, Decl(emptyAssignmentPatterns04_ES5.ts, 4, 8))
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns04_ES5.ts, 1, 3))
|
||||
|
||||
([ a1, a2, a3] = [] = a);
|
||||
>a1 : Symbol(a1, Decl(emptyAssignmentPatterns04_ES5.ts, 2, 12))
|
||||
>a2 : Symbol(a2, Decl(emptyAssignmentPatterns04_ES5.ts, 2, 16))
|
||||
>a3 : Symbol(a3, Decl(emptyAssignmentPatterns04_ES5.ts, 2, 20))
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns04_ES5.ts, 1, 3))
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns04_ES5.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
let x, y, z, a1, a2, a3;
|
||||
>x : any
|
||||
>y : any
|
||||
>z : any
|
||||
>a1 : any
|
||||
>a2 : any
|
||||
>a3 : any
|
||||
|
||||
({ x, y, z } = {} = a);
|
||||
>({ x, y, z } = {} = a) : any
|
||||
>{ x, y, z } = {} = a : any
|
||||
>{ x, y, z } : { x: any; y: any; z: any; }
|
||||
>x : any
|
||||
>y : any
|
||||
>z : any
|
||||
>{} = a : any
|
||||
>{} : {}
|
||||
>a : any
|
||||
|
||||
([ a1, a2, a3] = [] = a);
|
||||
>([ a1, a2, a3] = [] = a) : any
|
||||
>[ a1, a2, a3] = [] = a : any
|
||||
>[ a1, a2, a3] : [any, any, any]
|
||||
>a1 : any
|
||||
>a2 : any
|
||||
>a3 : any
|
||||
>[] = a : any
|
||||
>[] : undefined[]
|
||||
>a : any
|
||||
|
||||
13
tests/baselines/reference/emptyAssignmentPatterns04_ES6.js
Normal file
13
tests/baselines/reference/emptyAssignmentPatterns04_ES6.js
Normal file
@@ -0,0 +1,13 @@
|
||||
//// [emptyAssignmentPatterns04_ES6.ts]
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
({ x, y, z } = {} = a);
|
||||
([ a1, a2, a3] = [] = a);
|
||||
|
||||
//// [emptyAssignmentPatterns04_ES6.js]
|
||||
var a;
|
||||
let x, y, z, a1, a2, a3;
|
||||
({ x, y, z } = {} = a);
|
||||
([a1, a2, a3] = [] = a);
|
||||
@@ -0,0 +1,25 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns04_ES6.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns04_ES6.ts, 1, 3))
|
||||
|
||||
let x, y, z, a1, a2, a3;
|
||||
>x : Symbol(x, Decl(emptyAssignmentPatterns04_ES6.ts, 2, 3))
|
||||
>y : Symbol(y, Decl(emptyAssignmentPatterns04_ES6.ts, 2, 6))
|
||||
>z : Symbol(z, Decl(emptyAssignmentPatterns04_ES6.ts, 2, 9))
|
||||
>a1 : Symbol(a1, Decl(emptyAssignmentPatterns04_ES6.ts, 2, 12))
|
||||
>a2 : Symbol(a2, Decl(emptyAssignmentPatterns04_ES6.ts, 2, 16))
|
||||
>a3 : Symbol(a3, Decl(emptyAssignmentPatterns04_ES6.ts, 2, 20))
|
||||
|
||||
({ x, y, z } = {} = a);
|
||||
>x : Symbol(x, Decl(emptyAssignmentPatterns04_ES6.ts, 4, 2))
|
||||
>y : Symbol(y, Decl(emptyAssignmentPatterns04_ES6.ts, 4, 5))
|
||||
>z : Symbol(z, Decl(emptyAssignmentPatterns04_ES6.ts, 4, 8))
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns04_ES6.ts, 1, 3))
|
||||
|
||||
([ a1, a2, a3] = [] = a);
|
||||
>a1 : Symbol(a1, Decl(emptyAssignmentPatterns04_ES6.ts, 2, 12))
|
||||
>a2 : Symbol(a2, Decl(emptyAssignmentPatterns04_ES6.ts, 2, 16))
|
||||
>a3 : Symbol(a3, Decl(emptyAssignmentPatterns04_ES6.ts, 2, 20))
|
||||
>a : Symbol(a, Decl(emptyAssignmentPatterns04_ES6.ts, 1, 3))
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyAssignmentPatterns04_ES6.ts ===
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
let x, y, z, a1, a2, a3;
|
||||
>x : any
|
||||
>y : any
|
||||
>z : any
|
||||
>a1 : any
|
||||
>a2 : any
|
||||
>a3 : any
|
||||
|
||||
({ x, y, z } = {} = a);
|
||||
>({ x, y, z } = {} = a) : any
|
||||
>{ x, y, z } = {} = a : any
|
||||
>{ x, y, z } : { x: any; y: any; z: any; }
|
||||
>x : any
|
||||
>y : any
|
||||
>z : any
|
||||
>{} = a : any
|
||||
>{} : {}
|
||||
>a : any
|
||||
|
||||
([ a1, a2, a3] = [] = a);
|
||||
>([ a1, a2, a3] = [] = a) : any
|
||||
>[ a1, a2, a3] = [] = a : any
|
||||
>[ a1, a2, a3] : [any, any, any]
|
||||
>a1 : any
|
||||
>a2 : any
|
||||
>a3 : any
|
||||
>[] = a : any
|
||||
>[] : undefined[]
|
||||
>a : any
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
|
||||
function f([]) {
|
||||
var x, y, z;
|
||||
var x, y, z;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
// @target: es5
|
||||
|
||||
var a: any;
|
||||
|
||||
({} = a);
|
||||
([] = a);
|
||||
@@ -0,0 +1,6 @@
|
||||
// @target: es6
|
||||
|
||||
var a: any;
|
||||
|
||||
({} = a);
|
||||
([] = a);
|
||||
@@ -0,0 +1,7 @@
|
||||
// @target: es5
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
({} = { x, y, z } = a);
|
||||
([] = [ a1, a2, a3] = a);
|
||||
@@ -0,0 +1,7 @@
|
||||
// @target: es6
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
({} = { x, y, z } = a);
|
||||
([] = [ a1, a2, a3] = a);
|
||||
@@ -0,0 +1,6 @@
|
||||
// @target: es5
|
||||
|
||||
var a: any;
|
||||
|
||||
({} = {} = a);
|
||||
([] = [] = a);
|
||||
@@ -0,0 +1,6 @@
|
||||
// @target: es6
|
||||
|
||||
var a: any;
|
||||
|
||||
({} = {} = a);
|
||||
([] = [] = a);
|
||||
@@ -0,0 +1,7 @@
|
||||
// @target: es5
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
({ x, y, z } = {} = a);
|
||||
([ a1, a2, a3] = [] = a);
|
||||
@@ -0,0 +1,7 @@
|
||||
// @target: es6
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
({ x, y, z } = {} = a);
|
||||
([ a1, a2, a3] = [] = a);
|
||||
Reference in New Issue
Block a user