Merge pull request #1604 from Microsoft/addTestsForRestAndDefault
Add tests for rest and default
This commit is contained in:
commit
778c91ef47
27
tests/baselines/reference/emitDefaultParametersFunction.js
Normal file
27
tests/baselines/reference/emitDefaultParametersFunction.js
Normal file
|
@ -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];
|
||||
}
|
||||
}
|
|
@ -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[]
|
||||
|
|
@ -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) {
|
||||
}
|
|
@ -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[]
|
||||
|
|
@ -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);
|
|
@ -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[]
|
||||
|
|
@ -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);
|
|
@ -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[]
|
||||
|
|
@ -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];
|
||||
}
|
||||
},
|
||||
};
|
|
@ -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[]
|
||||
}
|
||||
|
|
@ -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) {
|
||||
},
|
||||
};
|
|
@ -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[]
|
||||
}
|
62
tests/baselines/reference/emitDefaultParametersMethod.js
Normal file
62
tests/baselines/reference/emitDefaultParametersMethod.js
Normal file
|
@ -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;
|
||||
})();
|
46
tests/baselines/reference/emitDefaultParametersMethod.types
Normal file
46
tests/baselines/reference/emitDefaultParametersMethod.types
Normal file
|
@ -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[]
|
||||
}
|
||||
|
42
tests/baselines/reference/emitDefaultParametersMethodES6.js
Normal file
42
tests/baselines/reference/emitDefaultParametersMethodES6.js
Normal file
|
@ -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;
|
||||
})();
|
|
@ -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[]
|
||||
}
|
17
tests/baselines/reference/emitRestParametersFunction.js
Normal file
17
tests/baselines/reference/emitRestParametersFunction.js
Normal file
|
@ -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];
|
||||
}
|
||||
}
|
11
tests/baselines/reference/emitRestParametersFunction.types
Normal file
11
tests/baselines/reference/emitRestParametersFunction.types
Normal file
|
@ -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[]
|
||||
|
|
@ -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) {
|
||||
}
|
|
@ -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[]
|
||||
|
|
@ -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];
|
||||
}
|
||||
})();
|
|
@ -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[]
|
||||
|
|
@ -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) {
|
||||
})();
|
|
@ -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[]
|
||||
|
|
@ -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];
|
||||
}
|
||||
}
|
||||
};
|
|
@ -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[]
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
//// [emitRestParametersFunctionPropertyES6.ts]
|
||||
var obj: {
|
||||
func1: (...rest) => void
|
||||
}
|
||||
|
||||
var obj2 = {
|
||||
func(...rest) { }
|
||||
}
|
||||
|
||||
//// [emitRestParametersFunctionPropertyES6.js]
|
||||
var obj;
|
||||
var obj2 = {
|
||||
func(...rest) {
|
||||
}
|
||||
};
|
|
@ -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[]
|
||||
}
|
58
tests/baselines/reference/emitRestParametersMethod.js
Normal file
58
tests/baselines/reference/emitRestParametersMethod.js
Normal file
|
@ -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;
|
||||
})();
|
33
tests/baselines/reference/emitRestParametersMethod.types
Normal file
33
tests/baselines/reference/emitRestParametersMethod.types
Normal file
|
@ -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[]
|
||||
}
|
35
tests/baselines/reference/emitRestParametersMethodES6.js
Normal file
35
tests/baselines/reference/emitRestParametersMethodES6.js
Normal file
|
@ -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;
|
||||
})();
|
34
tests/baselines/reference/emitRestParametersMethodES6.types
Normal file
34
tests/baselines/reference/emitRestParametersMethodES6.types
Normal file
|
@ -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[]
|
||||
}
|
||||
|
|
@ -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) { }
|
|
@ -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) { }
|
|
@ -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)
|
|
@ -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)
|
|
@ -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) { },
|
||||
}
|
|
@ -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) { },
|
||||
}
|
|
@ -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) { }
|
||||
}
|
|
@ -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) { }
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
// @target: es5
|
||||
function bar(...rest) { }
|
||||
function foo(x: number, y: string, ...rest) { }
|
|
@ -0,0 +1,3 @@
|
|||
// @target: es6
|
||||
function bar(...rest) { }
|
||||
function foo(x: number, y: string, ...rest) { }
|
|
@ -0,0 +1,5 @@
|
|||
// @target: es5
|
||||
var funcExp = (...rest) => { }
|
||||
var funcExp1 = (X: number, ...rest) => { }
|
||||
var funcExp2 = function (...rest) { }
|
||||
var funcExp3 = (function (...rest) { })()
|
|
@ -0,0 +1,5 @@
|
|||
// @target: es6
|
||||
var funcExp = (...rest) => { }
|
||||
var funcExp1 = (X: number, ...rest) => { }
|
||||
var funcExp2 = function (...rest) { }
|
||||
var funcExp3 = (function (...rest) { })()
|
|
@ -0,0 +1,8 @@
|
|||
// @target: es5
|
||||
var obj: {
|
||||
func1: (...rest) => void
|
||||
}
|
||||
|
||||
var obj2 = {
|
||||
func(...rest) { }
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
// @target: es6
|
||||
var obj: {
|
||||
func1: (...rest) => void
|
||||
}
|
||||
|
||||
var obj2 = {
|
||||
func(...rest) { }
|
||||
}
|
|
@ -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) { }
|
||||
}
|
|
@ -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) { }
|
||||
}
|
Loading…
Reference in a new issue