π Search Terms
ES5, this alias
π Version & Regression Information
- This changed between versions 5.1.6 and 5.2.2
β― Playground Link
https://www.typescriptlang.org/play?target=1&ts=5.2.2#code/IYIwzgLgTsDGEAJYBthjAgYge2wg3gFAJLYB2kUArvNlABRgAW2VyAJgCpNTYDuALgQhcyAKbAyASgLESCAJYAzBIxZsuPfjKLz5ELXwRkxRgKJReDAOQAFcWjEIoY6AE9rUgNxySAXwQxZDAnXT1SCmxxADpkbABzemsAeQBpTx89Pzls7MIUNAwAIWAoQIAPCDEydgwcPDDYckoaCDp6HV8Ed1lwhDAqAAcxBmgqMW8ugNhgCFgmVTEhKjIAazJ+aV7wpsiYuMTrCyshawQAakWENARjuilogFsxdGB4iczwgHov51coNxdEgDYYMJTAYIfKY5Qh5ExGEoMbxAA
π» Code
// @target: es5
// @showEmit: true
abstract class Foo {
constructor(shouldThrow: boolean) {
if (shouldThrow) {
throw new Error('Please retry');
} else {
console.log('OK');
}
}
}
class Bar extends Foo {
constructor() {
try {
super(true);
} catch (e: unknown) {
console.log('Error: ' + (e as Error).message);
// retry
super(false);
}
}
}
new Bar();
Target: ES5
π Actual behavior
π Expected behavior
No error
Additional information about the issue
In TS5.2.2 output var _this = this; has been removed, but _this is still being used.
π Search Terms
ES5, this alias
π Version & Regression Information
β― Playground Link
https://www.typescriptlang.org/play?target=1&ts=5.2.2#code/IYIwzgLgTsDGEAJYBthjAgYge2wg3gFAJLYB2kUArvNlABRgAW2VyAJgCpNTYDuALgQhcyAKbAyASgLESCAJYAzBIxZsuPfjKLz5ELXwRkxRgKJReDAOQAFcWjEIoY6AE9rUgNxySAXwQxZDAnXT1SCmxxADpkbABzemsAeQBpTx89Pzls7MIUNAwAIWAoQIAPCDEydgwcPDDYckoaCDp6HV8Ed1lwhDAqAAcxBmgqMW8ugNhgCFgmVTEhKjIAazJ+aV7wpsiYuMTrCyshawQAakWENARjuilogFsxdGB4iczwgHov51coNxdEgDYYMJTAYIfKY5Qh5ExGEoMbxAA
π» Code
Target: ES5
π Actual behavior
π Expected behavior
No error
Additional information about the issue
In TS5.2.2 output
var _this = this;has been removed, but_thisis still being used.