From 22bf60e43101e0f668af0dcff99f90672f46cec8 Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 5 Jan 2015 13:22:15 -0800 Subject: [PATCH] Add tests covering emitting default parameters natively in ES6 --- .../emitDefaultParametersFunction.js | 27 ++++++++ .../emitDefaultParametersFunction.types | 21 +++++++ .../emitDefaultParametersFunctionES6.js | 15 +++++ .../emitDefaultParametersFunctionES6.types | 21 +++++++ ...emitDefaultParametersFunctionExpression.js | 54 ++++++++++++++++ ...tDefaultParametersFunctionExpression.types | 49 +++++++++++++++ ...tDefaultParametersFunctionExpressionES6.js | 25 ++++++++ ...faultParametersFunctionExpressionES6.types | 49 +++++++++++++++ .../emitDefaultParametersFunctionProperty.js | 32 ++++++++++ ...mitDefaultParametersFunctionProperty.types | 28 +++++++++ ...mitDefaultParametersFunctionPropertyES6.js | 19 ++++++ ...DefaultParametersFunctionPropertyES6.types | 27 ++++++++ .../reference/emitDefaultParametersMethod.js | 62 +++++++++++++++++++ .../emitDefaultParametersMethod.types | 46 ++++++++++++++ .../emitDefaultParametersMethodES6.js | 42 +++++++++++++ .../emitDefaultParametersMethodES6.types | 45 ++++++++++++++ .../emitDefaultParametersFunction.ts | 5 ++ .../emitDefaultParametersFunctionES6.ts | 5 ++ ...emitDefaultParametersFunctionExpression.ts | 9 +++ ...tDefaultParametersFunctionExpressionES6.ts | 9 +++ .../emitDefaultParametersFunctionProperty.ts | 7 +++ ...mitDefaultParametersFunctionPropertyES6.ts | 7 +++ .../emitDefaultParametersMethod.ts | 17 +++++ .../emitDefaultParametersMethodES6.ts | 17 +++++ 24 files changed, 638 insertions(+) create mode 100644 tests/baselines/reference/emitDefaultParametersFunction.js create mode 100644 tests/baselines/reference/emitDefaultParametersFunction.types create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionES6.js create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionES6.types create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionExpression.js create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionExpression.types create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.types create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionProperty.js create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionProperty.types create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.js create mode 100644 tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.types create mode 100644 tests/baselines/reference/emitDefaultParametersMethod.js create mode 100644 tests/baselines/reference/emitDefaultParametersMethod.types create mode 100644 tests/baselines/reference/emitDefaultParametersMethodES6.js create mode 100644 tests/baselines/reference/emitDefaultParametersMethodES6.types create mode 100644 tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunction.ts create mode 100644 tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionES6.ts create mode 100644 tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpression.ts create mode 100644 tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpressionES6.ts create mode 100644 tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionProperty.ts create mode 100644 tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionPropertyES6.ts create mode 100644 tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethod.ts create mode 100644 tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethodES6.ts 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/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