diff --git a/tests/baselines/reference/emitDefaultParametersFunction.js b/tests/baselines/reference/emitDefaultParametersFunction.js new file mode 100644 index 00000000000..6be7ae9dbfe --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunction.js @@ -0,0 +1,27 @@ +//// [emitDefaultParametersFunction.ts] +function foo(x: string, y = 10) { } +function baz(x: string, y = 5, ...rest) { } +function bar(y = 10) { } +function bar1(y = 10, ...rest) { } + +//// [emitDefaultParametersFunction.js] +function foo(x, y) { + if (y === void 0) { y = 10; } +} +function baz(x, y) { + if (y === void 0) { y = 5; } + var rest = []; + for (var _i = 2; _i < arguments.length; _i++) { + rest[_i - 2] = arguments[_i]; + } +} +function bar(y) { + if (y === void 0) { y = 10; } +} +function bar1(y) { + if (y === void 0) { y = 10; } + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } +} diff --git a/tests/baselines/reference/emitDefaultParametersFunction.types b/tests/baselines/reference/emitDefaultParametersFunction.types new file mode 100644 index 00000000000..a8dec6335a9 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunction.types @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunction.ts === +function foo(x: string, y = 10) { } +>foo : (x: string, y?: number) => void +>x : string +>y : number + +function baz(x: string, y = 5, ...rest) { } +>baz : (x: string, y?: number, ...rest: any[]) => void +>x : string +>y : number +>rest : any[] + +function bar(y = 10) { } +>bar : (y?: number) => void +>y : number + +function bar1(y = 10, ...rest) { } +>bar1 : (y?: number, ...rest: any[]) => void +>y : number +>rest : any[] + diff --git a/tests/baselines/reference/emitDefaultParametersFunctionES6.js b/tests/baselines/reference/emitDefaultParametersFunctionES6.js new file mode 100644 index 00000000000..f4084a16f6f --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionES6.js @@ -0,0 +1,15 @@ +//// [emitDefaultParametersFunctionES6.ts] +function foo(x: string, y = 10) { } +function baz(x: string, y = 5, ...rest) { } +function bar(y = 10) { } +function bar1(y = 10, ...rest) { } + +//// [emitDefaultParametersFunctionES6.js] +function foo(x, y = 10) { +} +function baz(x, y = 5, ...rest) { +} +function bar(y = 10) { +} +function bar1(y = 10, ...rest) { +} diff --git a/tests/baselines/reference/emitDefaultParametersFunctionES6.types b/tests/baselines/reference/emitDefaultParametersFunctionES6.types new file mode 100644 index 00000000000..1c67032264f --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionES6.types @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionES6.ts === +function foo(x: string, y = 10) { } +>foo : (x: string, y?: number) => void +>x : string +>y : number + +function baz(x: string, y = 5, ...rest) { } +>baz : (x: string, y?: number, ...rest: any[]) => void +>x : string +>y : number +>rest : any[] + +function bar(y = 10) { } +>bar : (y?: number) => void +>y : number + +function bar1(y = 10, ...rest) { } +>bar1 : (y?: number, ...rest: any[]) => void +>y : number +>rest : any[] + diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpression.js b/tests/baselines/reference/emitDefaultParametersFunctionExpression.js new file mode 100644 index 00000000000..bcfe5b240f2 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpression.js @@ -0,0 +1,54 @@ +//// [emitDefaultParametersFunctionExpression.ts] +var lambda1 = (y = "hello") => { } +var lambda2 = (x: number, y = "hello") => { } +var lambda3 = (x: number, y = "hello", ...rest) => { } +var lambda4 = (y = "hello", ...rest) => { } + +var x = function (str = "hello", ...rest) { } +var y = (function (num = 10, boo = false, ...rest) { })() +var z = (function (num: number, boo = false, ...rest) { })(10) + + +//// [emitDefaultParametersFunctionExpression.js] +var lambda1 = function (y) { + if (y === void 0) { y = "hello"; } +}; +var lambda2 = function (x, y) { + if (y === void 0) { y = "hello"; } +}; +var lambda3 = function (x, y) { + if (y === void 0) { y = "hello"; } + var rest = []; + for (var _i = 2; _i < arguments.length; _i++) { + rest[_i - 2] = arguments[_i]; + } +}; +var lambda4 = function (y) { + if (y === void 0) { y = "hello"; } + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } +}; +var x = function (str) { + if (str === void 0) { str = "hello"; } + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } +}; +var y = (function (num, boo) { + if (num === void 0) { num = 10; } + if (boo === void 0) { boo = false; } + var rest = []; + for (var _i = 2; _i < arguments.length; _i++) { + rest[_i - 2] = arguments[_i]; + } +})(); +var z = (function (num, boo) { + if (boo === void 0) { boo = false; } + var rest = []; + for (var _i = 2; _i < arguments.length; _i++) { + rest[_i - 2] = arguments[_i]; + } +})(10); diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpression.types b/tests/baselines/reference/emitDefaultParametersFunctionExpression.types new file mode 100644 index 00000000000..5c223ff1344 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpression.types @@ -0,0 +1,49 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpression.ts === +var lambda1 = (y = "hello") => { } +>lambda1 : (y?: string) => void +>(y = "hello") => { } : (y?: string) => void +>y : string + +var lambda2 = (x: number, y = "hello") => { } +>lambda2 : (x: number, y?: string) => void +>(x: number, y = "hello") => { } : (x: number, y?: string) => void +>x : number +>y : string + +var lambda3 = (x: number, y = "hello", ...rest) => { } +>lambda3 : (x: number, y?: string, ...rest: any[]) => void +>(x: number, y = "hello", ...rest) => { } : (x: number, y?: string, ...rest: any[]) => void +>x : number +>y : string +>rest : any[] + +var lambda4 = (y = "hello", ...rest) => { } +>lambda4 : (y?: string, ...rest: any[]) => void +>(y = "hello", ...rest) => { } : (y?: string, ...rest: any[]) => void +>y : string +>rest : any[] + +var x = function (str = "hello", ...rest) { } +>x : (str?: string, ...rest: any[]) => void +>function (str = "hello", ...rest) { } : (str?: string, ...rest: any[]) => void +>str : string +>rest : any[] + +var y = (function (num = 10, boo = false, ...rest) { })() +>y : void +>(function (num = 10, boo = false, ...rest) { })() : void +>(function (num = 10, boo = false, ...rest) { }) : (num?: number, boo?: boolean, ...rest: any[]) => void +>function (num = 10, boo = false, ...rest) { } : (num?: number, boo?: boolean, ...rest: any[]) => void +>num : number +>boo : boolean +>rest : any[] + +var z = (function (num: number, boo = false, ...rest) { })(10) +>z : void +>(function (num: number, boo = false, ...rest) { })(10) : void +>(function (num: number, boo = false, ...rest) { }) : (num: number, boo?: boolean, ...rest: any[]) => void +>function (num: number, boo = false, ...rest) { } : (num: number, boo?: boolean, ...rest: any[]) => void +>num : number +>boo : boolean +>rest : any[] + diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js new file mode 100644 index 00000000000..eabb0e1e344 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js @@ -0,0 +1,25 @@ +//// [emitDefaultParametersFunctionExpressionES6.ts] +var lambda1 = (y = "hello") => { } +var lambda2 = (x: number, y = "hello") => { } +var lambda3 = (x: number, y = "hello", ...rest) => { } +var lambda4 = (y = "hello", ...rest) => { } + +var x = function (str = "hello", ...rest) { } +var y = (function (num = 10, boo = false, ...rest) { })() +var z = (function (num: number, boo = false, ...rest) { })(10) + +//// [emitDefaultParametersFunctionExpressionES6.js] +var lambda1 = function (y = "hello") { +}; +var lambda2 = function (x, y = "hello") { +}; +var lambda3 = function (x, y = "hello", ...rest) { +}; +var lambda4 = function (y = "hello", ...rest) { +}; +var x = function (str = "hello", ...rest) { +}; +var y = (function (num = 10, boo = false, ...rest) { +})(); +var z = (function (num, boo = false, ...rest) { +})(10); diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.types b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.types new file mode 100644 index 00000000000..9b8805dfa2b --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.types @@ -0,0 +1,49 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpressionES6.ts === +var lambda1 = (y = "hello") => { } +>lambda1 : (y?: string) => void +>(y = "hello") => { } : (y?: string) => void +>y : string + +var lambda2 = (x: number, y = "hello") => { } +>lambda2 : (x: number, y?: string) => void +>(x: number, y = "hello") => { } : (x: number, y?: string) => void +>x : number +>y : string + +var lambda3 = (x: number, y = "hello", ...rest) => { } +>lambda3 : (x: number, y?: string, ...rest: any[]) => void +>(x: number, y = "hello", ...rest) => { } : (x: number, y?: string, ...rest: any[]) => void +>x : number +>y : string +>rest : any[] + +var lambda4 = (y = "hello", ...rest) => { } +>lambda4 : (y?: string, ...rest: any[]) => void +>(y = "hello", ...rest) => { } : (y?: string, ...rest: any[]) => void +>y : string +>rest : any[] + +var x = function (str = "hello", ...rest) { } +>x : (str?: string, ...rest: any[]) => void +>function (str = "hello", ...rest) { } : (str?: string, ...rest: any[]) => void +>str : string +>rest : any[] + +var y = (function (num = 10, boo = false, ...rest) { })() +>y : void +>(function (num = 10, boo = false, ...rest) { })() : void +>(function (num = 10, boo = false, ...rest) { }) : (num?: number, boo?: boolean, ...rest: any[]) => void +>function (num = 10, boo = false, ...rest) { } : (num?: number, boo?: boolean, ...rest: any[]) => void +>num : number +>boo : boolean +>rest : any[] + +var z = (function (num: number, boo = false, ...rest) { })(10) +>z : void +>(function (num: number, boo = false, ...rest) { })(10) : void +>(function (num: number, boo = false, ...rest) { }) : (num: number, boo?: boolean, ...rest: any[]) => void +>function (num: number, boo = false, ...rest) { } : (num: number, boo?: boolean, ...rest: any[]) => void +>num : number +>boo : boolean +>rest : any[] + diff --git a/tests/baselines/reference/emitDefaultParametersFunctionProperty.js b/tests/baselines/reference/emitDefaultParametersFunctionProperty.js new file mode 100644 index 00000000000..16cac41a4ce --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionProperty.js @@ -0,0 +1,32 @@ +//// [emitDefaultParametersFunctionProperty.ts] +var obj2 = { + func1(y = 10, ...rest) { }, + func2(x = "hello") { }, + func3(x: string, z: number, y = "hello") { }, + func4(x: string, z: number, y = "hello", ...rest) { }, +} + + +//// [emitDefaultParametersFunctionProperty.js] +var obj2 = { + func1: function (y) { + if (y === void 0) { y = 10; } + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } + }, + func2: function (x) { + if (x === void 0) { x = "hello"; } + }, + func3: function (x, z, y) { + if (y === void 0) { y = "hello"; } + }, + func4: function (x, z, y) { + if (y === void 0) { y = "hello"; } + var rest = []; + for (var _i = 3; _i < arguments.length; _i++) { + rest[_i - 3] = arguments[_i]; + } + }, +}; diff --git a/tests/baselines/reference/emitDefaultParametersFunctionProperty.types b/tests/baselines/reference/emitDefaultParametersFunctionProperty.types new file mode 100644 index 00000000000..7c1ea6a5da3 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionProperty.types @@ -0,0 +1,28 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionProperty.ts === +var obj2 = { +>obj2 : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; } +>{ func1(y = 10, ...rest) { }, func2(x = "hello") { }, func3(x: string, z: number, y = "hello") { }, func4(x: string, z: number, y = "hello", ...rest) { },} : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; } + + func1(y = 10, ...rest) { }, +>func1 : (y?: number, ...rest: any[]) => void +>y : number +>rest : any[] + + func2(x = "hello") { }, +>func2 : (x?: string) => void +>x : string + + func3(x: string, z: number, y = "hello") { }, +>func3 : (x: string, z: number, y?: string) => void +>x : string +>z : number +>y : string + + func4(x: string, z: number, y = "hello", ...rest) { }, +>func4 : (x: string, z: number, y?: string, ...rest: any[]) => void +>x : string +>z : number +>y : string +>rest : any[] +} + diff --git a/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.js b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.js new file mode 100644 index 00000000000..fce694a453a --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.js @@ -0,0 +1,19 @@ +//// [emitDefaultParametersFunctionPropertyES6.ts] +var obj2 = { + func1(y = 10, ...rest) { }, + func2(x = "hello") { }, + func3(x: string, z: number, y = "hello") { }, + func4(x: string, z: number, y = "hello", ...rest) { }, +} + +//// [emitDefaultParametersFunctionPropertyES6.js] +var obj2 = { + func1(y = 10, ...rest) { + }, + func2(x = "hello") { + }, + func3(x, z, y = "hello") { + }, + func4(x, z, y = "hello", ...rest) { + }, +}; diff --git a/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.types b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.types new file mode 100644 index 00000000000..ed80158ffd1 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.types @@ -0,0 +1,27 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionPropertyES6.ts === +var obj2 = { +>obj2 : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; } +>{ func1(y = 10, ...rest) { }, func2(x = "hello") { }, func3(x: string, z: number, y = "hello") { }, func4(x: string, z: number, y = "hello", ...rest) { },} : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; } + + func1(y = 10, ...rest) { }, +>func1 : (y?: number, ...rest: any[]) => void +>y : number +>rest : any[] + + func2(x = "hello") { }, +>func2 : (x?: string) => void +>x : string + + func3(x: string, z: number, y = "hello") { }, +>func3 : (x: string, z: number, y?: string) => void +>x : string +>z : number +>y : string + + func4(x: string, z: number, y = "hello", ...rest) { }, +>func4 : (x: string, z: number, y?: string, ...rest: any[]) => void +>x : string +>z : number +>y : string +>rest : any[] +} diff --git a/tests/baselines/reference/emitDefaultParametersMethod.js b/tests/baselines/reference/emitDefaultParametersMethod.js new file mode 100644 index 00000000000..126c19305b3 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersMethod.js @@ -0,0 +1,62 @@ +//// [emitDefaultParametersMethod.ts] +class C { + constructor(t: boolean, z: string, x: number, y = "hello") { } + + public foo(x: string, t = false) { } + public foo1(x: string, t = false, ...rest) { } + public bar(t = false) { } + public boo(t = false, ...rest) { } +} + +class D { + constructor(y = "hello") { } +} + +class E { + constructor(y = "hello", ...rest) { } +} + + +//// [emitDefaultParametersMethod.js] +var C = (function () { + function C(t, z, x, y) { + if (y === void 0) { y = "hello"; } + } + C.prototype.foo = function (x, t) { + if (t === void 0) { t = false; } + }; + C.prototype.foo1 = function (x, t) { + if (t === void 0) { t = false; } + var rest = []; + for (var _i = 2; _i < arguments.length; _i++) { + rest[_i - 2] = arguments[_i]; + } + }; + C.prototype.bar = function (t) { + if (t === void 0) { t = false; } + }; + C.prototype.boo = function (t) { + if (t === void 0) { t = false; } + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } + }; + return C; +})(); +var D = (function () { + function D(y) { + if (y === void 0) { y = "hello"; } + } + return D; +})(); +var E = (function () { + function E(y) { + if (y === void 0) { y = "hello"; } + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } + } + return E; +})(); diff --git a/tests/baselines/reference/emitDefaultParametersMethod.types b/tests/baselines/reference/emitDefaultParametersMethod.types new file mode 100644 index 00000000000..5b2f08d4f70 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersMethod.types @@ -0,0 +1,46 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethod.ts === +class C { +>C : C + + constructor(t: boolean, z: string, x: number, y = "hello") { } +>t : boolean +>z : string +>x : number +>y : string + + public foo(x: string, t = false) { } +>foo : (x: string, t?: boolean) => void +>x : string +>t : boolean + + public foo1(x: string, t = false, ...rest) { } +>foo1 : (x: string, t?: boolean, ...rest: any[]) => void +>x : string +>t : boolean +>rest : any[] + + public bar(t = false) { } +>bar : (t?: boolean) => void +>t : boolean + + public boo(t = false, ...rest) { } +>boo : (t?: boolean, ...rest: any[]) => void +>t : boolean +>rest : any[] +} + +class D { +>D : D + + constructor(y = "hello") { } +>y : string +} + +class E { +>E : E + + constructor(y = "hello", ...rest) { } +>y : string +>rest : any[] +} + diff --git a/tests/baselines/reference/emitDefaultParametersMethodES6.js b/tests/baselines/reference/emitDefaultParametersMethodES6.js new file mode 100644 index 00000000000..bf96e00e375 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersMethodES6.js @@ -0,0 +1,42 @@ +//// [emitDefaultParametersMethodES6.ts] +class C { + constructor(t: boolean, z: string, x: number, y = "hello") { } + + public foo(x: string, t = false) { } + public foo1(x: string, t = false, ...rest) { } + public bar(t = false) { } + public boo(t = false, ...rest) { } +} + +class D { + constructor(y = "hello") { } +} + +class E { + constructor(y = "hello", ...rest) { } +} + +//// [emitDefaultParametersMethodES6.js] +var C = (function () { + function C(t, z, x, y = "hello") { + } + C.prototype.foo = function (x, t = false) { + }; + C.prototype.foo1 = function (x, t = false, ...rest) { + }; + C.prototype.bar = function (t = false) { + }; + C.prototype.boo = function (t = false, ...rest) { + }; + return C; +})(); +var D = (function () { + function D(y = "hello") { + } + return D; +})(); +var E = (function () { + function E(y = "hello", ...rest) { + } + return E; +})(); diff --git a/tests/baselines/reference/emitDefaultParametersMethodES6.types b/tests/baselines/reference/emitDefaultParametersMethodES6.types new file mode 100644 index 00000000000..54312714b1d --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersMethodES6.types @@ -0,0 +1,45 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethodES6.ts === +class C { +>C : C + + constructor(t: boolean, z: string, x: number, y = "hello") { } +>t : boolean +>z : string +>x : number +>y : string + + public foo(x: string, t = false) { } +>foo : (x: string, t?: boolean) => void +>x : string +>t : boolean + + public foo1(x: string, t = false, ...rest) { } +>foo1 : (x: string, t?: boolean, ...rest: any[]) => void +>x : string +>t : boolean +>rest : any[] + + public bar(t = false) { } +>bar : (t?: boolean) => void +>t : boolean + + public boo(t = false, ...rest) { } +>boo : (t?: boolean, ...rest: any[]) => void +>t : boolean +>rest : any[] +} + +class D { +>D : D + + constructor(y = "hello") { } +>y : string +} + +class E { +>E : E + + constructor(y = "hello", ...rest) { } +>y : string +>rest : any[] +} diff --git a/tests/baselines/reference/emitRestParametersFunction.js b/tests/baselines/reference/emitRestParametersFunction.js new file mode 100644 index 00000000000..01116f2ac92 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunction.js @@ -0,0 +1,17 @@ +//// [emitRestParametersFunction.ts] +function bar(...rest) { } +function foo(x: number, y: string, ...rest) { } + +//// [emitRestParametersFunction.js] +function bar() { + var rest = []; + for (var _i = 0; _i < arguments.length; _i++) { + rest[_i - 0] = arguments[_i]; + } +} +function foo(x, y) { + var rest = []; + for (var _i = 2; _i < arguments.length; _i++) { + rest[_i - 2] = arguments[_i]; + } +} diff --git a/tests/baselines/reference/emitRestParametersFunction.types b/tests/baselines/reference/emitRestParametersFunction.types new file mode 100644 index 00000000000..a65adb57702 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunction.types @@ -0,0 +1,11 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunction.ts === +function bar(...rest) { } +>bar : (...rest: any[]) => void +>rest : any[] + +function foo(x: number, y: string, ...rest) { } +>foo : (x: number, y: string, ...rest: any[]) => void +>x : number +>y : string +>rest : any[] + diff --git a/tests/baselines/reference/emitRestParametersFunctionES6.js b/tests/baselines/reference/emitRestParametersFunctionES6.js new file mode 100644 index 00000000000..242c40f252d --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionES6.js @@ -0,0 +1,9 @@ +//// [emitRestParametersFunctionES6.ts] +function bar(...rest) { } +function foo(x: number, y: string, ...rest) { } + +//// [emitRestParametersFunctionES6.js] +function bar(...rest) { +} +function foo(x, y, ...rest) { +} diff --git a/tests/baselines/reference/emitRestParametersFunctionES6.types b/tests/baselines/reference/emitRestParametersFunctionES6.types new file mode 100644 index 00000000000..5689d64c4df --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionES6.types @@ -0,0 +1,11 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionES6.ts === +function bar(...rest) { } +>bar : (...rest: any[]) => void +>rest : any[] + +function foo(x: number, y: string, ...rest) { } +>foo : (x: number, y: string, ...rest: any[]) => void +>x : number +>y : string +>rest : any[] + diff --git a/tests/baselines/reference/emitRestParametersFunctionExpression.js b/tests/baselines/reference/emitRestParametersFunctionExpression.js new file mode 100644 index 00000000000..da87cc79f2d --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionExpression.js @@ -0,0 +1,32 @@ +//// [emitRestParametersFunctionExpression.ts] +var funcExp = (...rest) => { } +var funcExp1 = (X: number, ...rest) => { } +var funcExp2 = function (...rest) { } +var funcExp3 = (function (...rest) { })() + + +//// [emitRestParametersFunctionExpression.js] +var funcExp = function () { + var rest = []; + for (var _i = 0; _i < arguments.length; _i++) { + rest[_i - 0] = arguments[_i]; + } +}; +var funcExp1 = function (X) { + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } +}; +var funcExp2 = function () { + var rest = []; + for (var _i = 0; _i < arguments.length; _i++) { + rest[_i - 0] = arguments[_i]; + } +}; +var funcExp3 = (function () { + var rest = []; + for (var _i = 0; _i < arguments.length; _i++) { + rest[_i - 0] = arguments[_i]; + } +})(); diff --git a/tests/baselines/reference/emitRestParametersFunctionExpression.types b/tests/baselines/reference/emitRestParametersFunctionExpression.types new file mode 100644 index 00000000000..9f08b9d9d83 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionExpression.types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpression.ts === +var funcExp = (...rest) => { } +>funcExp : (...rest: any[]) => void +>(...rest) => { } : (...rest: any[]) => void +>rest : any[] + +var funcExp1 = (X: number, ...rest) => { } +>funcExp1 : (X: number, ...rest: any[]) => void +>(X: number, ...rest) => { } : (X: number, ...rest: any[]) => void +>X : number +>rest : any[] + +var funcExp2 = function (...rest) { } +>funcExp2 : (...rest: any[]) => void +>function (...rest) { } : (...rest: any[]) => void +>rest : any[] + +var funcExp3 = (function (...rest) { })() +>funcExp3 : void +>(function (...rest) { })() : void +>(function (...rest) { }) : (...rest: any[]) => void +>function (...rest) { } : (...rest: any[]) => void +>rest : any[] + diff --git a/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js new file mode 100644 index 00000000000..6c79e4956ae --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js @@ -0,0 +1,15 @@ +//// [emitRestParametersFunctionExpressionES6.ts] +var funcExp = (...rest) => { } +var funcExp1 = (X: number, ...rest) => { } +var funcExp2 = function (...rest) { } +var funcExp3 = (function (...rest) { })() + +//// [emitRestParametersFunctionExpressionES6.js] +var funcExp = function (...rest) { +}; +var funcExp1 = function (X, ...rest) { +}; +var funcExp2 = function (...rest) { +}; +var funcExp3 = (function (...rest) { +})(); diff --git a/tests/baselines/reference/emitRestParametersFunctionExpressionES6.types b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.types new file mode 100644 index 00000000000..224cb37367a --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpressionES6.ts === +var funcExp = (...rest) => { } +>funcExp : (...rest: any[]) => void +>(...rest) => { } : (...rest: any[]) => void +>rest : any[] + +var funcExp1 = (X: number, ...rest) => { } +>funcExp1 : (X: number, ...rest: any[]) => void +>(X: number, ...rest) => { } : (X: number, ...rest: any[]) => void +>X : number +>rest : any[] + +var funcExp2 = function (...rest) { } +>funcExp2 : (...rest: any[]) => void +>function (...rest) { } : (...rest: any[]) => void +>rest : any[] + +var funcExp3 = (function (...rest) { })() +>funcExp3 : void +>(function (...rest) { })() : void +>(function (...rest) { }) : (...rest: any[]) => void +>function (...rest) { } : (...rest: any[]) => void +>rest : any[] + diff --git a/tests/baselines/reference/emitRestParametersFunctionProperty.js b/tests/baselines/reference/emitRestParametersFunctionProperty.js new file mode 100644 index 00000000000..4fd60a9269d --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionProperty.js @@ -0,0 +1,19 @@ +//// [emitRestParametersFunctionProperty.ts] +var obj: { + func1: (...rest) => void +} + +var obj2 = { + func(...rest) { } +} + +//// [emitRestParametersFunctionProperty.js] +var obj; +var obj2 = { + func: function () { + var rest = []; + for (var _i = 0; _i < arguments.length; _i++) { + rest[_i - 0] = arguments[_i]; + } + } +}; diff --git a/tests/baselines/reference/emitRestParametersFunctionProperty.types b/tests/baselines/reference/emitRestParametersFunctionProperty.types new file mode 100644 index 00000000000..8242e742ee0 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionProperty.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionProperty.ts === +var obj: { +>obj : { func1: (...rest: any[]) => void; } + + func1: (...rest) => void +>func1 : (...rest: any[]) => void +>rest : any[] +} + +var obj2 = { +>obj2 : { func(...rest: any[]): void; } +>{ func(...rest) { }} : { func(...rest: any[]): void; } + + func(...rest) { } +>func : (...rest: any[]) => void +>rest : any[] +} diff --git a/tests/baselines/reference/emitRestParametersFunctionPropertyES6.js b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.js new file mode 100644 index 00000000000..87aa489ecf3 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.js @@ -0,0 +1,15 @@ +//// [emitRestParametersFunctionPropertyES6.ts] +var obj: { + func1: (...rest) => void +} + +var obj2 = { + func(...rest) { } +} + +//// [emitRestParametersFunctionPropertyES6.js] +var obj; +var obj2 = { + func(...rest) { + } +}; diff --git a/tests/baselines/reference/emitRestParametersFunctionPropertyES6.types b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.types new file mode 100644 index 00000000000..07a008cd4c0 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionPropertyES6.ts === +var obj: { +>obj : { func1: (...rest: any[]) => void; } + + func1: (...rest) => void +>func1 : (...rest: any[]) => void +>rest : any[] +} + +var obj2 = { +>obj2 : { func(...rest: any[]): void; } +>{ func(...rest) { }} : { func(...rest: any[]): void; } + + func(...rest) { } +>func : (...rest: any[]) => void +>rest : any[] +} diff --git a/tests/baselines/reference/emitRestParametersMethod.js b/tests/baselines/reference/emitRestParametersMethod.js new file mode 100644 index 00000000000..5ceb6d768f8 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersMethod.js @@ -0,0 +1,58 @@ +//// [emitRestParametersMethod.ts] +class C { + constructor(name: string, ...rest) { } + + public bar(...rest) { } + public foo(x: number, ...rest) { } +} + +class D { + constructor(...rest) { } + + public bar(...rest) { } + public foo(x: number, ...rest) { } +} + +//// [emitRestParametersMethod.js] +var C = (function () { + function C(name) { + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } + } + C.prototype.bar = function () { + var rest = []; + for (var _i = 0; _i < arguments.length; _i++) { + rest[_i - 0] = arguments[_i]; + } + }; + C.prototype.foo = function (x) { + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } + }; + return C; +})(); +var D = (function () { + function D() { + var rest = []; + for (var _i = 0; _i < arguments.length; _i++) { + rest[_i - 0] = arguments[_i]; + } + } + D.prototype.bar = function () { + var rest = []; + for (var _i = 0; _i < arguments.length; _i++) { + rest[_i - 0] = arguments[_i]; + } + }; + D.prototype.foo = function (x) { + var rest = []; + for (var _i = 1; _i < arguments.length; _i++) { + rest[_i - 1] = arguments[_i]; + } + }; + return D; +})(); diff --git a/tests/baselines/reference/emitRestParametersMethod.types b/tests/baselines/reference/emitRestParametersMethod.types new file mode 100644 index 00000000000..c94561ca737 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersMethod.types @@ -0,0 +1,33 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersMethod.ts === +class C { +>C : C + + constructor(name: string, ...rest) { } +>name : string +>rest : any[] + + public bar(...rest) { } +>bar : (...rest: any[]) => void +>rest : any[] + + public foo(x: number, ...rest) { } +>foo : (x: number, ...rest: any[]) => void +>x : number +>rest : any[] +} + +class D { +>D : D + + constructor(...rest) { } +>rest : any[] + + public bar(...rest) { } +>bar : (...rest: any[]) => void +>rest : any[] + + public foo(x: number, ...rest) { } +>foo : (x: number, ...rest: any[]) => void +>x : number +>rest : any[] +} diff --git a/tests/baselines/reference/emitRestParametersMethodES6.js b/tests/baselines/reference/emitRestParametersMethodES6.js new file mode 100644 index 00000000000..d0a0e2a120c --- /dev/null +++ b/tests/baselines/reference/emitRestParametersMethodES6.js @@ -0,0 +1,35 @@ +//// [emitRestParametersMethodES6.ts] +class C { + constructor(name: string, ...rest) { } + + public bar(...rest) { } + public foo(x: number, ...rest) { } +} + +class D { + constructor(...rest) { } + + public bar(...rest) { } + public foo(x: number, ...rest) { } +} + + +//// [emitRestParametersMethodES6.js] +var C = (function () { + function C(name, ...rest) { + } + C.prototype.bar = function (...rest) { + }; + C.prototype.foo = function (x, ...rest) { + }; + return C; +})(); +var D = (function () { + function D(...rest) { + } + D.prototype.bar = function (...rest) { + }; + D.prototype.foo = function (x, ...rest) { + }; + return D; +})(); diff --git a/tests/baselines/reference/emitRestParametersMethodES6.types b/tests/baselines/reference/emitRestParametersMethodES6.types new file mode 100644 index 00000000000..4555a5c666d --- /dev/null +++ b/tests/baselines/reference/emitRestParametersMethodES6.types @@ -0,0 +1,34 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersMethodES6.ts === +class C { +>C : C + + constructor(name: string, ...rest) { } +>name : string +>rest : any[] + + public bar(...rest) { } +>bar : (...rest: any[]) => void +>rest : any[] + + public foo(x: number, ...rest) { } +>foo : (x: number, ...rest: any[]) => void +>x : number +>rest : any[] +} + +class D { +>D : D + + constructor(...rest) { } +>rest : any[] + + public bar(...rest) { } +>bar : (...rest: any[]) => void +>rest : any[] + + public foo(x: number, ...rest) { } +>foo : (x: number, ...rest: any[]) => void +>x : number +>rest : any[] +} + diff --git a/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunction.ts b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunction.ts new file mode 100644 index 00000000000..12480939a39 --- /dev/null +++ b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunction.ts @@ -0,0 +1,5 @@ +// @target: es5 +function foo(x: string, y = 10) { } +function baz(x: string, y = 5, ...rest) { } +function bar(y = 10) { } +function bar1(y = 10, ...rest) { } \ No newline at end of file diff --git a/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionES6.ts b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionES6.ts new file mode 100644 index 00000000000..00afc306546 --- /dev/null +++ b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionES6.ts @@ -0,0 +1,5 @@ +// @target:es6 +function foo(x: string, y = 10) { } +function baz(x: string, y = 5, ...rest) { } +function bar(y = 10) { } +function bar1(y = 10, ...rest) { } \ No newline at end of file diff --git a/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpression.ts b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpression.ts new file mode 100644 index 00000000000..f8e10c0ae14 --- /dev/null +++ b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpression.ts @@ -0,0 +1,9 @@ +// @target: es5 +var lambda1 = (y = "hello") => { } +var lambda2 = (x: number, y = "hello") => { } +var lambda3 = (x: number, y = "hello", ...rest) => { } +var lambda4 = (y = "hello", ...rest) => { } + +var x = function (str = "hello", ...rest) { } +var y = (function (num = 10, boo = false, ...rest) { })() +var z = (function (num: number, boo = false, ...rest) { })(10) diff --git a/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpressionES6.ts b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpressionES6.ts new file mode 100644 index 00000000000..aebed249a65 --- /dev/null +++ b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpressionES6.ts @@ -0,0 +1,9 @@ +// @target:es6 +var lambda1 = (y = "hello") => { } +var lambda2 = (x: number, y = "hello") => { } +var lambda3 = (x: number, y = "hello", ...rest) => { } +var lambda4 = (y = "hello", ...rest) => { } + +var x = function (str = "hello", ...rest) { } +var y = (function (num = 10, boo = false, ...rest) { })() +var z = (function (num: number, boo = false, ...rest) { })(10) \ No newline at end of file diff --git a/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionProperty.ts b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionProperty.ts new file mode 100644 index 00000000000..8e280894af0 --- /dev/null +++ b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionProperty.ts @@ -0,0 +1,7 @@ +// @target: es5 +var obj2 = { + func1(y = 10, ...rest) { }, + func2(x = "hello") { }, + func3(x: string, z: number, y = "hello") { }, + func4(x: string, z: number, y = "hello", ...rest) { }, +} diff --git a/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionPropertyES6.ts b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionPropertyES6.ts new file mode 100644 index 00000000000..cb1cfb78546 --- /dev/null +++ b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionPropertyES6.ts @@ -0,0 +1,7 @@ +// @target:es6 +var obj2 = { + func1(y = 10, ...rest) { }, + func2(x = "hello") { }, + func3(x: string, z: number, y = "hello") { }, + func4(x: string, z: number, y = "hello", ...rest) { }, +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethod.ts b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethod.ts new file mode 100644 index 00000000000..be4a563836f --- /dev/null +++ b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethod.ts @@ -0,0 +1,17 @@ +// @target: es5 +class C { + constructor(t: boolean, z: string, x: number, y = "hello") { } + + public foo(x: string, t = false) { } + public foo1(x: string, t = false, ...rest) { } + public bar(t = false) { } + public boo(t = false, ...rest) { } +} + +class D { + constructor(y = "hello") { } +} + +class E { + constructor(y = "hello", ...rest) { } +} diff --git a/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethodES6.ts b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethodES6.ts new file mode 100644 index 00000000000..886b2e9235b --- /dev/null +++ b/tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethodES6.ts @@ -0,0 +1,17 @@ +// @target:es6 +class C { + constructor(t: boolean, z: string, x: number, y = "hello") { } + + public foo(x: string, t = false) { } + public foo1(x: string, t = false, ...rest) { } + public bar(t = false) { } + public boo(t = false, ...rest) { } +} + +class D { + constructor(y = "hello") { } +} + +class E { + constructor(y = "hello", ...rest) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/restParameters/emitRestParametersFunction.ts b/tests/cases/conformance/es6/restParameters/emitRestParametersFunction.ts new file mode 100644 index 00000000000..ee170d2bcb9 --- /dev/null +++ b/tests/cases/conformance/es6/restParameters/emitRestParametersFunction.ts @@ -0,0 +1,3 @@ +// @target: es5 +function bar(...rest) { } +function foo(x: number, y: string, ...rest) { } \ No newline at end of file diff --git a/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionES6.ts b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionES6.ts new file mode 100644 index 00000000000..366905d764b --- /dev/null +++ b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionES6.ts @@ -0,0 +1,3 @@ +// @target: es6 +function bar(...rest) { } +function foo(x: number, y: string, ...rest) { } \ No newline at end of file diff --git a/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpression.ts b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpression.ts new file mode 100644 index 00000000000..a9ddf83c816 --- /dev/null +++ b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpression.ts @@ -0,0 +1,5 @@ +// @target: es5 +var funcExp = (...rest) => { } +var funcExp1 = (X: number, ...rest) => { } +var funcExp2 = function (...rest) { } +var funcExp3 = (function (...rest) { })() diff --git a/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpressionES6.ts b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpressionES6.ts new file mode 100644 index 00000000000..310dcfd1557 --- /dev/null +++ b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpressionES6.ts @@ -0,0 +1,5 @@ +// @target: es6 +var funcExp = (...rest) => { } +var funcExp1 = (X: number, ...rest) => { } +var funcExp2 = function (...rest) { } +var funcExp3 = (function (...rest) { })() \ No newline at end of file diff --git a/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionProperty.ts b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionProperty.ts new file mode 100644 index 00000000000..c8a8ed16e7b --- /dev/null +++ b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionProperty.ts @@ -0,0 +1,8 @@ +// @target: es5 +var obj: { + func1: (...rest) => void +} + +var obj2 = { + func(...rest) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionPropertyES6.ts b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionPropertyES6.ts new file mode 100644 index 00000000000..34bb0cae6b7 --- /dev/null +++ b/tests/cases/conformance/es6/restParameters/emitRestParametersFunctionPropertyES6.ts @@ -0,0 +1,8 @@ +// @target: es6 +var obj: { + func1: (...rest) => void +} + +var obj2 = { + func(...rest) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/restParameters/emitRestParametersMethod.ts b/tests/cases/conformance/es6/restParameters/emitRestParametersMethod.ts new file mode 100644 index 00000000000..6b9e70fd196 --- /dev/null +++ b/tests/cases/conformance/es6/restParameters/emitRestParametersMethod.ts @@ -0,0 +1,14 @@ +// @target: es5 +class C { + constructor(name: string, ...rest) { } + + public bar(...rest) { } + public foo(x: number, ...rest) { } +} + +class D { + constructor(...rest) { } + + public bar(...rest) { } + public foo(x: number, ...rest) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/restParameters/emitRestParametersMethodES6.ts b/tests/cases/conformance/es6/restParameters/emitRestParametersMethodES6.ts new file mode 100644 index 00000000000..df2f2293c75 --- /dev/null +++ b/tests/cases/conformance/es6/restParameters/emitRestParametersMethodES6.ts @@ -0,0 +1,14 @@ +// @target: es6 +class C { + constructor(name: string, ...rest) { } + + public bar(...rest) { } + public foo(x: number, ...rest) { } +} + +class D { + constructor(...rest) { } + + public bar(...rest) { } + public foo(x: number, ...rest) { } +}