Add tests covering emitting rest parameters natively in ES6
This commit is contained in:
parent
22bf60e431
commit
ec5c115cfa
24 changed files with 431 additions and 0 deletions
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,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