Skip to content

Commit cb48a5e

Browse files
author
Yui T
committed
Add testcases
1 parent 7d0fc62 commit cb48a5e

14 files changed

+325
-4
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//// [emitArrowFunction.ts]
2+
var f1 = () => { }
3+
var f2 = (x: string, y: string) => { }
4+
var f3 = (x: string, y: number, ...rest) => { }
5+
var f4 = (x: string, y: number, z = 10) => { }
6+
function foo(func: () => boolean) { }
7+
foo(() => true);
8+
foo(() => { return false; });
9+
10+
//// [emitArrowFunction.js]
11+
var f1 = function () {
12+
};
13+
var f2 = function (x, y) {
14+
};
15+
var f3 = function (x, y) {
16+
var rest = [];
17+
for (var _i = 2; _i < arguments.length; _i++) {
18+
rest[_i - 2] = arguments[_i];
19+
}
20+
};
21+
var f4 = function (x, y, z) {
22+
if (z === void 0) { z = 10; }
23+
};
24+
function foo(func) {
25+
}
26+
foo(function () { return true; });
27+
foo(function () {
28+
return false;
29+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
=== tests/cases/conformance/es6/arrowFunction/emitArrowFunction.ts ===
2+
var f1 = () => { }
3+
>f1 : () => void
4+
>() => { } : () => void
5+
6+
var f2 = (x: string, y: string) => { }
7+
>f2 : (x: string, y: string) => void
8+
>(x: string, y: string) => { } : (x: string, y: string) => void
9+
>x : string
10+
>y : string
11+
12+
var f3 = (x: string, y: number, ...rest) => { }
13+
>f3 : (x: string, y: number, ...rest: any[]) => void
14+
>(x: string, y: number, ...rest) => { } : (x: string, y: number, ...rest: any[]) => void
15+
>x : string
16+
>y : number
17+
>rest : any[]
18+
19+
var f4 = (x: string, y: number, z = 10) => { }
20+
>f4 : (x: string, y: number, z?: number) => void
21+
>(x: string, y: number, z = 10) => { } : (x: string, y: number, z?: number) => void
22+
>x : string
23+
>y : number
24+
>z : number
25+
26+
function foo(func: () => boolean) { }
27+
>foo : (func: () => boolean) => void
28+
>func : () => boolean
29+
30+
foo(() => true);
31+
>foo(() => true) : void
32+
>foo : (func: () => boolean) => void
33+
>() => true : () => boolean
34+
35+
foo(() => { return false; });
36+
>foo(() => { return false; }) : void
37+
>foo : (func: () => boolean) => void
38+
>() => { return false; } : () => boolean
39+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
//// [emitArrowFunctionES6.ts]
2+
var f1 = () => { }
3+
var f2 = (x: string, y: string) => { }
4+
var f3 = (x: string, y: number, ...rest) => { }
5+
var f4 = (x: string, y: number, z=10) => { }
6+
function foo(func: () => boolean) { }
7+
foo(() => true);
8+
foo(() => { return false; });
9+
10+
11+
//// [emitArrowFunctionES6.js]
12+
var f1 = () => {
13+
};
14+
var f2 = (x, y) => {
15+
};
16+
var f3 = (x, y, ...rest) => {
17+
};
18+
var f4 = (x, y, z = 10) => {
19+
};
20+
function foo(func) {
21+
}
22+
foo(() => { return true; });
23+
foo(() => {
24+
return false;
25+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionES6.ts ===
2+
var f1 = () => { }
3+
>f1 : () => void
4+
>() => { } : () => void
5+
6+
var f2 = (x: string, y: string) => { }
7+
>f2 : (x: string, y: string) => void
8+
>(x: string, y: string) => { } : (x: string, y: string) => void
9+
>x : string
10+
>y : string
11+
12+
var f3 = (x: string, y: number, ...rest) => { }
13+
>f3 : (x: string, y: number, ...rest: any[]) => void
14+
>(x: string, y: number, ...rest) => { } : (x: string, y: number, ...rest: any[]) => void
15+
>x : string
16+
>y : number
17+
>rest : any[]
18+
19+
var f4 = (x: string, y: number, z=10) => { }
20+
>f4 : (x: string, y: number, z?: number) => void
21+
>(x: string, y: number, z=10) => { } : (x: string, y: number, z?: number) => void
22+
>x : string
23+
>y : number
24+
>z : number
25+
26+
function foo(func: () => boolean) { }
27+
>foo : (func: () => boolean) => void
28+
>func : () => boolean
29+
30+
foo(() => true);
31+
>foo(() => true) : void
32+
>foo : (func: () => boolean) => void
33+
>() => true : () => boolean
34+
35+
foo(() => { return false; });
36+
>foo(() => { return false; }) : void
37+
>foo : (func: () => boolean) => void
38+
>() => { return false; } : () => boolean
39+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
//// [emitArrowFunctionThisCapturing.ts]
2+
var f1 = () => {
3+
this.age = 10
4+
};
5+
6+
var f2 = (x: string) => {
7+
this.name = x
8+
}
9+
10+
function foo(func: () => boolean) { }
11+
foo(() => {
12+
this.age = 100;
13+
return true;
14+
});
15+
16+
17+
//// [emitArrowFunctionThisCapturing.js]
18+
var _this = this;
19+
var f1 = function () {
20+
_this.age = 10;
21+
};
22+
var f2 = function (x) {
23+
_this.name = x;
24+
};
25+
function foo(func) {
26+
}
27+
foo(function () {
28+
_this.age = 100;
29+
return true;
30+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturing.ts ===
2+
var f1 = () => {
3+
>f1 : () => void
4+
>() => { this.age = 10} : () => void
5+
6+
this.age = 10
7+
>this.age = 10 : number
8+
>this.age : any
9+
>this : any
10+
>age : any
11+
12+
};
13+
14+
var f2 = (x: string) => {
15+
>f2 : (x: string) => void
16+
>(x: string) => { this.name = x} : (x: string) => void
17+
>x : string
18+
19+
this.name = x
20+
>this.name = x : string
21+
>this.name : any
22+
>this : any
23+
>name : any
24+
>x : string
25+
}
26+
27+
function foo(func: () => boolean) { }
28+
>foo : (func: () => boolean) => void
29+
>func : () => boolean
30+
31+
foo(() => {
32+
>foo(() => { this.age = 100; return true;}) : void
33+
>foo : (func: () => boolean) => void
34+
>() => { this.age = 100; return true;} : () => boolean
35+
36+
this.age = 100;
37+
>this.age = 100 : number
38+
>this.age : any
39+
>this : any
40+
>age : any
41+
42+
return true;
43+
});
44+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//// [emitArrowFunctionThisCapturingES6.ts]
2+
var f1 = () => {
3+
this.age = 10
4+
};
5+
6+
var f2 = (x: string) => {
7+
this.name = x
8+
}
9+
10+
function foo(func: () => boolean){ }
11+
foo(() => {
12+
this.age = 100;
13+
return true;
14+
});
15+
16+
17+
//// [emitArrowFunctionThisCapturingES6.js]
18+
var f1 = () => {
19+
this.age = 10;
20+
};
21+
var f2 = (x) => {
22+
this.name = x;
23+
};
24+
function foo(func) {
25+
}
26+
foo(() => {
27+
this.age = 100;
28+
return true;
29+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturingES6.ts ===
2+
var f1 = () => {
3+
>f1 : () => void
4+
>() => { this.age = 10} : () => void
5+
6+
this.age = 10
7+
>this.age = 10 : number
8+
>this.age : any
9+
>this : any
10+
>age : any
11+
12+
};
13+
14+
var f2 = (x: string) => {
15+
>f2 : (x: string) => void
16+
>(x: string) => { this.name = x} : (x: string) => void
17+
>x : string
18+
19+
this.name = x
20+
>this.name = x : string
21+
>this.name : any
22+
>this : any
23+
>name : any
24+
>x : string
25+
}
26+
27+
function foo(func: () => boolean){ }
28+
>foo : (func: () => boolean) => void
29+
>func : () => boolean
30+
31+
foo(() => {
32+
>foo(() => { this.age = 100; return true;}) : void
33+
>foo : (func: () => boolean) => void
34+
>() => { this.age = 100; return true;} : () => boolean
35+
36+
this.age = 100;
37+
>this.age = 100 : number
38+
>this.age : any
39+
>this : any
40+
>age : any
41+
42+
return true;
43+
});
44+

tests/baselines/reference/project/prologueEmit/amd/out.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
var _this = this;
21
// Add a lambda to ensure global 'this' capture is triggered
3-
(() => { return _this.window; });
2+
(() => { return this.window; });
43
var __extends = this.__extends || function (d, b) {
54
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
65
function __() { this.constructor = d; }

tests/baselines/reference/project/prologueEmit/node/out.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
var _this = this;
21
// Add a lambda to ensure global 'this' capture is triggered
3-
(() => { return _this.window; });
2+
(() => { return this.window; });
43
var __extends = this.__extends || function (d, b) {
54
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
65
function __() { this.constructor = d; }
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// @target:es5
2+
var f1 = () => { }
3+
var f2 = (x: string, y: string) => { }
4+
var f3 = (x: string, y: number, ...rest) => { }
5+
var f4 = (x: string, y: number, z = 10) => { }
6+
function foo(func: () => boolean) { }
7+
foo(() => true);
8+
foo(() => { return false; });
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// @target:es6
2+
var f1 = () => { }
3+
var f2 = (x: string, y: string) => { }
4+
var f3 = (x: string, y: number, ...rest) => { }
5+
var f4 = (x: string, y: number, z=10) => { }
6+
function foo(func: () => boolean) { }
7+
foo(() => true);
8+
foo(() => { return false; });
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// @target:es5
2+
var f1 = () => {
3+
this.age = 10
4+
};
5+
6+
var f2 = (x: string) => {
7+
this.name = x
8+
}
9+
10+
function foo(func: () => boolean) { }
11+
foo(() => {
12+
this.age = 100;
13+
return true;
14+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// @target:es6
2+
var f1 = () => {
3+
this.age = 10
4+
};
5+
6+
var f2 = (x: string) => {
7+
this.name = x
8+
}
9+
10+
function foo(func: () => boolean){ }
11+
foo(() => {
12+
this.age = 100;
13+
return true;
14+
});

0 commit comments

Comments
 (0)