mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 08:11:30 -06:00
Fix merge lexical environment to *always* respect prologue statements (#24602)
This commit is contained in:
parent
886377f8d3
commit
779fa98475
@ -1468,7 +1468,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
return isNodeArray(statements)
|
||||
? setTextRange(createNodeArray(concatenate(declarations, statements)), statements)
|
||||
? setTextRange(createNodeArray(prependStatements(statements.slice(), declarations)), statements)
|
||||
: prependStatements(statements, declarations);
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
//// [destructuringTempOccursAfterPrologue.ts]
|
||||
function test(p: any) {
|
||||
'use strict';
|
||||
p = { prop: p } = p;
|
||||
}
|
||||
|
||||
//// [destructuringTempOccursAfterPrologue.js]
|
||||
function test(p) {
|
||||
'use strict';
|
||||
var _a;
|
||||
p = (_a = p, p = _a.prop, _a);
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
=== tests/cases/compiler/destructuringTempOccursAfterPrologue.ts ===
|
||||
function test(p: any) {
|
||||
>test : Symbol(test, Decl(destructuringTempOccursAfterPrologue.ts, 0, 0))
|
||||
>p : Symbol(p, Decl(destructuringTempOccursAfterPrologue.ts, 0, 14))
|
||||
|
||||
'use strict';
|
||||
p = { prop: p } = p;
|
||||
>p : Symbol(p, Decl(destructuringTempOccursAfterPrologue.ts, 0, 14))
|
||||
>prop : Symbol(prop, Decl(destructuringTempOccursAfterPrologue.ts, 2, 9))
|
||||
>p : Symbol(p, Decl(destructuringTempOccursAfterPrologue.ts, 0, 14))
|
||||
>p : Symbol(p, Decl(destructuringTempOccursAfterPrologue.ts, 0, 14))
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
=== tests/cases/compiler/destructuringTempOccursAfterPrologue.ts ===
|
||||
function test(p: any) {
|
||||
>test : (p: any) => void
|
||||
>p : any
|
||||
|
||||
'use strict';
|
||||
>'use strict' : "use strict"
|
||||
|
||||
p = { prop: p } = p;
|
||||
>p = { prop: p } = p : any
|
||||
>p : any
|
||||
>{ prop: p } = p : any
|
||||
>{ prop: p } : { prop: any; }
|
||||
>prop : any
|
||||
>p : any
|
||||
>p : any
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
function test(p: any) {
|
||||
'use strict';
|
||||
p = { prop: p } = p;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user