From fb8cc0c40a9c79f4ee31c226cd266b3e0df37aa8 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 9 Apr 2015 16:29:38 -0700 Subject: [PATCH] Don't emit '_this' declaration in ES6 or later. --- src/compiler/checker.ts | 2 +- tests/baselines/reference/computedPropertyNames31_ES6.js | 1 - .../reference/emitClassDeclarationWithSuperMethodCall01.js | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ea38a8f4b31..ea86b2b9b04 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5582,7 +5582,7 @@ module ts { needToCaptureLexicalThis = false; while (container && container.kind === SyntaxKind.ArrowFunction) { container = getSuperContainer(container, /*includeFunctions*/ true); - needToCaptureLexicalThis = true; + needToCaptureLexicalThis = languageVersion < ScriptTarget.ES6; } // topmost container must be something that is directly nested in the class declaration diff --git a/tests/baselines/reference/computedPropertyNames31_ES6.js b/tests/baselines/reference/computedPropertyNames31_ES6.js index 2c63dcee077..d17423223e3 100644 --- a/tests/baselines/reference/computedPropertyNames31_ES6.js +++ b/tests/baselines/reference/computedPropertyNames31_ES6.js @@ -23,7 +23,6 @@ class Base { } class C extends Base { foo() { - var _this = this; (() => { var obj = { [super.bar()]() { } // needs capture diff --git a/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.js b/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.js index f0712f8e131..77b91730156 100644 --- a/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.js +++ b/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.js @@ -18,7 +18,6 @@ class Parent { } class Foo extends Parent { foo() { - var _this = this; var x = () => super.foo(); } }