Skip to content

Commit ec5c115

Browse files
author
Yui T
committed
Add tests covering emitting rest parameters natively in ES6
1 parent 22bf60e commit ec5c115

24 files changed

Lines changed: 431 additions & 0 deletions
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//// [emitRestParametersFunction.ts]
2+
function bar(...rest) { }
3+
function foo(x: number, y: string, ...rest) { }
4+
5+
//// [emitRestParametersFunction.js]
6+
function bar() {
7+
var rest = [];
8+
for (var _i = 0; _i < arguments.length; _i++) {
9+
rest[_i - 0] = arguments[_i];
10+
}
11+
}
12+
function foo(x, y) {
13+
var rest = [];
14+
for (var _i = 2; _i < arguments.length; _i++) {
15+
rest[_i - 2] = arguments[_i];
16+
}
17+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
=== tests/cases/conformance/es6/restParameters/emitRestParametersFunction.ts ===
2+
function bar(...rest) { }
3+
>bar : (...rest: any[]) => void
4+
>rest : any[]
5+
6+
function foo(x: number, y: string, ...rest) { }
7+
>foo : (x: number, y: string, ...rest: any[]) => void
8+
>x : number
9+
>y : string
10+
>rest : any[]
11+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
//// [emitRestParametersFunctionES6.ts]
2+
function bar(...rest) { }
3+
function foo(x: number, y: string, ...rest) { }
4+
5+
//// [emitRestParametersFunctionES6.js]
6+
function bar(...rest) {
7+
}
8+
function foo(x, y, ...rest) {
9+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionES6.ts ===
2+
function bar(...rest) { }
3+
>bar : (...rest: any[]) => void
4+
>rest : any[]
5+
6+
function foo(x: number, y: string, ...rest) { }
7+
>foo : (x: number, y: string, ...rest: any[]) => void
8+
>x : number
9+
>y : string
10+
>rest : any[]
11+
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
//// [emitRestParametersFunctionExpression.ts]
2+
var funcExp = (...rest) => { }
3+
var funcExp1 = (X: number, ...rest) => { }
4+
var funcExp2 = function (...rest) { }
5+
var funcExp3 = (function (...rest) { })()
6+
7+
8+
//// [emitRestParametersFunctionExpression.js]
9+
var funcExp = function () {
10+
var rest = [];
11+
for (var _i = 0; _i < arguments.length; _i++) {
12+
rest[_i - 0] = arguments[_i];
13+
}
14+
};
15+
var funcExp1 = function (X) {
16+
var rest = [];
17+
for (var _i = 1; _i < arguments.length; _i++) {
18+
rest[_i - 1] = arguments[_i];
19+
}
20+
};
21+
var funcExp2 = function () {
22+
var rest = [];
23+
for (var _i = 0; _i < arguments.length; _i++) {
24+
rest[_i - 0] = arguments[_i];
25+
}
26+
};
27+
var funcExp3 = (function () {
28+
var rest = [];
29+
for (var _i = 0; _i < arguments.length; _i++) {
30+
rest[_i - 0] = arguments[_i];
31+
}
32+
})();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpression.ts ===
2+
var funcExp = (...rest) => { }
3+
>funcExp : (...rest: any[]) => void
4+
>(...rest) => { } : (...rest: any[]) => void
5+
>rest : any[]
6+
7+
var funcExp1 = (X: number, ...rest) => { }
8+
>funcExp1 : (X: number, ...rest: any[]) => void
9+
>(X: number, ...rest) => { } : (X: number, ...rest: any[]) => void
10+
>X : number
11+
>rest : any[]
12+
13+
var funcExp2 = function (...rest) { }
14+
>funcExp2 : (...rest: any[]) => void
15+
>function (...rest) { } : (...rest: any[]) => void
16+
>rest : any[]
17+
18+
var funcExp3 = (function (...rest) { })()
19+
>funcExp3 : void
20+
>(function (...rest) { })() : void
21+
>(function (...rest) { }) : (...rest: any[]) => void
22+
>function (...rest) { } : (...rest: any[]) => void
23+
>rest : any[]
24+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//// [emitRestParametersFunctionExpressionES6.ts]
2+
var funcExp = (...rest) => { }
3+
var funcExp1 = (X: number, ...rest) => { }
4+
var funcExp2 = function (...rest) { }
5+
var funcExp3 = (function (...rest) { })()
6+
7+
//// [emitRestParametersFunctionExpressionES6.js]
8+
var funcExp = function (...rest) {
9+
};
10+
var funcExp1 = function (X, ...rest) {
11+
};
12+
var funcExp2 = function (...rest) {
13+
};
14+
var funcExp3 = (function (...rest) {
15+
})();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpressionES6.ts ===
2+
var funcExp = (...rest) => { }
3+
>funcExp : (...rest: any[]) => void
4+
>(...rest) => { } : (...rest: any[]) => void
5+
>rest : any[]
6+
7+
var funcExp1 = (X: number, ...rest) => { }
8+
>funcExp1 : (X: number, ...rest: any[]) => void
9+
>(X: number, ...rest) => { } : (X: number, ...rest: any[]) => void
10+
>X : number
11+
>rest : any[]
12+
13+
var funcExp2 = function (...rest) { }
14+
>funcExp2 : (...rest: any[]) => void
15+
>function (...rest) { } : (...rest: any[]) => void
16+
>rest : any[]
17+
18+
var funcExp3 = (function (...rest) { })()
19+
>funcExp3 : void
20+
>(function (...rest) { })() : void
21+
>(function (...rest) { }) : (...rest: any[]) => void
22+
>function (...rest) { } : (...rest: any[]) => void
23+
>rest : any[]
24+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//// [emitRestParametersFunctionProperty.ts]
2+
var obj: {
3+
func1: (...rest) => void
4+
}
5+
6+
var obj2 = {
7+
func(...rest) { }
8+
}
9+
10+
//// [emitRestParametersFunctionProperty.js]
11+
var obj;
12+
var obj2 = {
13+
func: function () {
14+
var rest = [];
15+
for (var _i = 0; _i < arguments.length; _i++) {
16+
rest[_i - 0] = arguments[_i];
17+
}
18+
}
19+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionProperty.ts ===
2+
var obj: {
3+
>obj : { func1: (...rest: any[]) => void; }
4+
5+
func1: (...rest) => void
6+
>func1 : (...rest: any[]) => void
7+
>rest : any[]
8+
}
9+
10+
var obj2 = {
11+
>obj2 : { func(...rest: any[]): void; }
12+
>{ func(...rest) { }} : { func(...rest: any[]): void; }
13+
14+
func(...rest) { }
15+
>func : (...rest: any[]) => void
16+
>rest : any[]
17+
}

0 commit comments

Comments
 (0)