mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-21 18:22:58 -05:00
Add tests covering emitting rest parameters natively in ES6
This commit is contained in:
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) { }
|
||||
}
|
||||
Reference in New Issue
Block a user