diff --git a/src/compiler/transformers/destructuring.ts b/src/compiler/transformers/destructuring.ts index 35101d3be7f..2dd8946e8e2 100644 --- a/src/compiler/transformers/destructuring.ts +++ b/src/compiler/transformers/destructuring.ts @@ -46,7 +46,7 @@ namespace ts { value = node.right; } else { - return value; + return visitNode(value, visitor, isExpression); } } } diff --git a/tests/baselines/reference/emptyArrayDestructuringExpressionVisitedByTransformer.js b/tests/baselines/reference/emptyArrayDestructuringExpressionVisitedByTransformer.js new file mode 100644 index 00000000000..5e7e333f7a6 --- /dev/null +++ b/tests/baselines/reference/emptyArrayDestructuringExpressionVisitedByTransformer.js @@ -0,0 +1,7 @@ +//// [emptyArrayDestructuringExpressionVisitedByTransformer.ts] +var a = [] = [1].map(_ => _); +var b = [1].map(_ => _); + +//// [emptyArrayDestructuringExpressionVisitedByTransformer.js] +var a = [1].map(function (_) { return _; }); +var b = [1].map(function (_) { return _; }); diff --git a/tests/baselines/reference/emptyArrayDestructuringExpressionVisitedByTransformer.symbols b/tests/baselines/reference/emptyArrayDestructuringExpressionVisitedByTransformer.symbols new file mode 100644 index 00000000000..5694d47c8c8 --- /dev/null +++ b/tests/baselines/reference/emptyArrayDestructuringExpressionVisitedByTransformer.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.ts === +var a = [] = [1].map(_ => _); +>a : Symbol(a, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 0, 3)) +>[1].map : Symbol(Array.map, Decl(lib.d.ts, --, --)) +>map : Symbol(Array.map, Decl(lib.d.ts, --, --)) +>_ : Symbol(_, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 0, 21)) +>_ : Symbol(_, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 0, 21)) + +var b = [1].map(_ => _); +>b : Symbol(b, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 1, 3)) +>[1].map : Symbol(Array.map, Decl(lib.d.ts, --, --)) +>map : Symbol(Array.map, Decl(lib.d.ts, --, --)) +>_ : Symbol(_, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 1, 16)) +>_ : Symbol(_, Decl(emptyArrayDestructuringExpressionVisitedByTransformer.ts, 1, 16)) + diff --git a/tests/baselines/reference/emptyArrayDestructuringExpressionVisitedByTransformer.types b/tests/baselines/reference/emptyArrayDestructuringExpressionVisitedByTransformer.types new file mode 100644 index 00000000000..450a24a0fa7 --- /dev/null +++ b/tests/baselines/reference/emptyArrayDestructuringExpressionVisitedByTransformer.types @@ -0,0 +1,25 @@ +=== tests/cases/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.ts === +var a = [] = [1].map(_ => _); +>a : number[] +>[] = [1].map(_ => _) : number[] +>[] : undefined[] +>[1].map(_ => _) : number[] +>[1].map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>[1] : number[] +>1 : 1 +>map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>_ => _ : (_: number) => number +>_ : number +>_ : number + +var b = [1].map(_ => _); +>b : number[] +>[1].map(_ => _) : number[] +>[1].map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>[1] : number[] +>1 : 1 +>map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>_ => _ : (_: number) => number +>_ : number +>_ : number + diff --git a/tests/cases/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.ts b/tests/cases/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.ts new file mode 100644 index 00000000000..01ad2d61122 --- /dev/null +++ b/tests/cases/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.ts @@ -0,0 +1,2 @@ +var a = [] = [1].map(_ => _); +var b = [1].map(_ => _); \ No newline at end of file