//// [arrowFunctionContexts.ts] // Arrow function used in with statement with (window) { var p = () => this; } // Arrow function as argument to super call class Base { constructor(n: any) { } } class Derived extends Base { constructor() { super(() => this); } } // Arrow function as function argument window.setTimeout(() => null, 100); // Arrow function as value in array literal var obj = (n: number) => ''; var obj: { (n: number): string; }; // OK var arr = [(n: number) => '']; var arr: { (n: number): string; }[]; // Incorrect error here (bug 829597) // Arrow function as enum value enum E { x = () => 4, // Error expected y = (() => this).length // error, can't use this in enum } // Arrow function as module variable initializer module M { export var a = (s) => ''; var b = (s) => s; } // Repeat above for module members that are functions? (necessary to redo all of them?) module M2 { // Arrow function used in with statement with (window) { var p = () => this; } // Arrow function as argument to super call class Base { constructor(n: any) { } } class Derived extends Base { constructor() { super(() => this); } } // Arrow function as function argument window.setTimeout(() => null, 100); // Arrow function as value in array literal var obj = (n: number) => ''; var obj: { (n: number): string; }; // OK var arr = [(n: number) => '']; var arr: { (n: number): string; }[]; // Incorrect error here (bug 829597) // Arrow function as enum value enum E { x = () => 4, // Error expected y = (() => this).length } // Arrow function as module variable initializer module M { export var a = (s) => ''; var b = (s) => s; } } // (ParamList) => { ... } is a generic arrow function var generic1 = (n: T) => [n]; var generic1: { (n: T): T[] }; // Incorrect error, Bug 829597 var generic2 = (n: T) => { return [n]; }; var generic2: { (n: T): T[] }; // ((ParamList) => { ... } ) is a type assertion to an arrow function var asserted1 = ((n) => [n]); var asserted1: any; var asserted2 = ((n) => { return n; }); var asserted2: any; //// [arrowFunctionContexts.js] var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } __.prototype = b.prototype; d.prototype = new __(); }; // Arrow function used in with statement with (window) { var p = function () { return this; }; } // Arrow function as argument to super call var Base = (function () { function Base(n) { } return Base; })(); var Derived = (function (_super) { __extends(Derived, _super); function Derived() { var _this = this; _super.call(this, function () { return _this; }); } return Derived; })(Base); // Arrow function as function argument window.setTimeout(function () { return null; }, 100); // Arrow function as value in array literal var obj = function (n) { return ''; }; var obj; // OK var arr = [function (n) { return ''; }]; var arr; // Incorrect error here (bug 829597) // Arrow function as enum value var E; (function (E) { E[E["x"] = function () { return 4; }] = "x"; E[E["y"] = (function () { return _this; }).length] = "y"; // error, can't use this in enum })(E || (E = {})); // Arrow function as module variable initializer var M; (function (M) { M.a = function (s) { return ''; }; var b = function (s) { return s; }; })(M || (M = {})); // Repeat above for module members that are functions? (necessary to redo all of them?) var M2; (function (M2) { // Arrow function used in with statement with (window) { var p = function () { return this; }; } // Arrow function as argument to super call var Base = (function () { function Base(n) { } return Base; })(); var Derived = (function (_super) { __extends(Derived, _super); function Derived() { var _this = this; _super.call(this, function () { return _this; }); } return Derived; })(Base); // Arrow function as function argument window.setTimeout(function () { return null; }, 100); // Arrow function as value in array literal var obj = function (n) { return ''; }; var obj; // OK var arr = [function (n) { return ''; }]; var arr; // Incorrect error here (bug 829597) // Arrow function as enum value var E; (function (E) { E[E["x"] = function () { return 4; }] = "x"; E[E["y"] = (function () { return _this; }).length] = "y"; })(E || (E = {})); // Arrow function as module variable initializer var M; (function (M) { M.a = function (s) { return ''; }; var b = function (s) { return s; }; })(M || (M = {})); })(M2 || (M2 = {})); // (ParamList) => { ... } is a generic arrow function var generic1 = function (n) { return [n]; }; var generic1; // Incorrect error, Bug 829597 var generic2 = function (n) { return [n]; }; var generic2; // ((ParamList) => { ... } ) is a type assertion to an arrow function var asserted1 = (function (n) { return [n]; }); var asserted1; var asserted2 = (function (n) { return n; }); var asserted2;