Skip to content

Commit 9ec877a

Browse files
committed
first look at baseline changes from numeric types
1 parent 808a213 commit 9ec877a

25 files changed

+2161
-783
lines changed

tests/baselines/reference/1.0lib-noErrors.js

-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ and limitations under the License.
2020
/// ECMAScript APIs
2121
/////////////////////////////
2222

23-
declare var NaN: number;
24-
declare var Infinity: number;
25-
2623
/**
2724
* Evaluates JavaScript code and executes it.
2825
* @param x A String value that contains valid JavaScript code.

tests/baselines/reference/1.0lib-noErrors.symbols

+748-754
Large diffs are not rendered by default.

tests/baselines/reference/1.0lib-noErrors.types

-6
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,6 @@ and limitations under the License.
2020
/// ECMAScript APIs
2121
/////////////////////////////
2222

23-
declare var NaN: number;
24-
>NaN : number
25-
26-
declare var Infinity: number;
27-
>Infinity : number
28-
2923
/**
3024
* Evaluates JavaScript code and executes it.
3125
* @param x A String value that contains valid JavaScript code.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
//// [InfinityLiteralTypes.ts]
2+
interface PositiveInfinityMember {
3+
member: Infinity
4+
}
5+
6+
interface NegativeInfinityMember {
7+
member: -Infinity
8+
}
9+
10+
function invertInfinity(x: -Infinity): Infinity;
11+
function invertInfinity(x: Infinity): -Infinity;
12+
function invertInfinity(x: number): number {
13+
return -x;
14+
}
15+
16+
let a: PositiveInfinityMember;
17+
let b: NegativeInfinityMember;
18+
19+
a = {member: Infinity};
20+
b = {member: -Infinity}
21+
22+
let c: -Infinity = invertInfinity(a.member);
23+
let d: Infinity = invertInfinity(b.member);
24+
25+
let x = c + d;
26+
declare function stillNumber(x: number): boolean;
27+
stillNumber(c);
28+
stillNumber(d);
29+
30+
/*declare function isInfinity(x: number): x is (Infinity | -Infinity) {
31+
return x !== x;
32+
}
33+
34+
let y: number;
35+
if (isInfinity(y)) {
36+
let a: (Infinity | -Infinity) = y;
37+
}
38+
else {
39+
let b: number = y;
40+
}*/
41+
42+
//// [InfinityLiteralTypes.js]
43+
function invertInfinity(x) {
44+
return -x;
45+
}
46+
var a;
47+
var b;
48+
a = { member: Infinity };
49+
b = { member: -Infinity };
50+
var c = invertInfinity(a.member);
51+
var d = invertInfinity(b.member);
52+
var x = c + d;
53+
stillNumber(c);
54+
stillNumber(d);
55+
/*declare function isInfinity(x: number): x is (Infinity | -Infinity) {
56+
return x !== x;
57+
}
58+
59+
let y: number;
60+
if (isInfinity(y)) {
61+
let a: (Infinity | -Infinity) = y;
62+
}
63+
else {
64+
let b: number = y;
65+
}*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
=== tests/cases/conformance/types/primitives/numericLiteral/InfinityLiteralTypes.ts ===
2+
interface PositiveInfinityMember {
3+
>PositiveInfinityMember : Symbol(PositiveInfinityMember, Decl(InfinityLiteralTypes.ts, 0, 0))
4+
5+
member: Infinity
6+
>member : Symbol(member, Decl(InfinityLiteralTypes.ts, 0, 34))
7+
>Infinity : Symbol(Infinity)
8+
}
9+
10+
interface NegativeInfinityMember {
11+
>NegativeInfinityMember : Symbol(NegativeInfinityMember, Decl(InfinityLiteralTypes.ts, 2, 1))
12+
13+
member: -Infinity
14+
>member : Symbol(member, Decl(InfinityLiteralTypes.ts, 4, 34))
15+
}
16+
17+
function invertInfinity(x: -Infinity): Infinity;
18+
>invertInfinity : Symbol(invertInfinity, Decl(InfinityLiteralTypes.ts, 6, 1), Decl(InfinityLiteralTypes.ts, 8, 48), Decl(InfinityLiteralTypes.ts, 9, 48))
19+
>x : Symbol(x, Decl(InfinityLiteralTypes.ts, 8, 24))
20+
>Infinity : Symbol(Infinity)
21+
22+
function invertInfinity(x: Infinity): -Infinity;
23+
>invertInfinity : Symbol(invertInfinity, Decl(InfinityLiteralTypes.ts, 6, 1), Decl(InfinityLiteralTypes.ts, 8, 48), Decl(InfinityLiteralTypes.ts, 9, 48))
24+
>x : Symbol(x, Decl(InfinityLiteralTypes.ts, 9, 24))
25+
>Infinity : Symbol(Infinity)
26+
27+
function invertInfinity(x: number): number {
28+
>invertInfinity : Symbol(invertInfinity, Decl(InfinityLiteralTypes.ts, 6, 1), Decl(InfinityLiteralTypes.ts, 8, 48), Decl(InfinityLiteralTypes.ts, 9, 48))
29+
>x : Symbol(x, Decl(InfinityLiteralTypes.ts, 10, 24))
30+
31+
return -x;
32+
>x : Symbol(x, Decl(InfinityLiteralTypes.ts, 10, 24))
33+
}
34+
35+
let a: PositiveInfinityMember;
36+
>a : Symbol(a, Decl(InfinityLiteralTypes.ts, 14, 3))
37+
>PositiveInfinityMember : Symbol(PositiveInfinityMember, Decl(InfinityLiteralTypes.ts, 0, 0))
38+
39+
let b: NegativeInfinityMember;
40+
>b : Symbol(b, Decl(InfinityLiteralTypes.ts, 15, 3))
41+
>NegativeInfinityMember : Symbol(NegativeInfinityMember, Decl(InfinityLiteralTypes.ts, 2, 1))
42+
43+
a = {member: Infinity};
44+
>a : Symbol(a, Decl(InfinityLiteralTypes.ts, 14, 3))
45+
>member : Symbol(member, Decl(InfinityLiteralTypes.ts, 17, 5))
46+
>Infinity : Symbol(Infinity)
47+
48+
b = {member: -Infinity}
49+
>b : Symbol(b, Decl(InfinityLiteralTypes.ts, 15, 3))
50+
>member : Symbol(member, Decl(InfinityLiteralTypes.ts, 18, 5))
51+
>Infinity : Symbol(Infinity)
52+
53+
let c: -Infinity = invertInfinity(a.member);
54+
>c : Symbol(c, Decl(InfinityLiteralTypes.ts, 20, 3))
55+
>invertInfinity : Symbol(invertInfinity, Decl(InfinityLiteralTypes.ts, 6, 1), Decl(InfinityLiteralTypes.ts, 8, 48), Decl(InfinityLiteralTypes.ts, 9, 48))
56+
>a.member : Symbol(PositiveInfinityMember.member, Decl(InfinityLiteralTypes.ts, 0, 34))
57+
>a : Symbol(a, Decl(InfinityLiteralTypes.ts, 14, 3))
58+
>member : Symbol(PositiveInfinityMember.member, Decl(InfinityLiteralTypes.ts, 0, 34))
59+
60+
let d: Infinity = invertInfinity(b.member);
61+
>d : Symbol(d, Decl(InfinityLiteralTypes.ts, 21, 3))
62+
>Infinity : Symbol(Infinity)
63+
>invertInfinity : Symbol(invertInfinity, Decl(InfinityLiteralTypes.ts, 6, 1), Decl(InfinityLiteralTypes.ts, 8, 48), Decl(InfinityLiteralTypes.ts, 9, 48))
64+
>b.member : Symbol(NegativeInfinityMember.member, Decl(InfinityLiteralTypes.ts, 4, 34))
65+
>b : Symbol(b, Decl(InfinityLiteralTypes.ts, 15, 3))
66+
>member : Symbol(NegativeInfinityMember.member, Decl(InfinityLiteralTypes.ts, 4, 34))
67+
68+
let x = c + d;
69+
>x : Symbol(x, Decl(InfinityLiteralTypes.ts, 23, 3))
70+
>c : Symbol(c, Decl(InfinityLiteralTypes.ts, 20, 3))
71+
>d : Symbol(d, Decl(InfinityLiteralTypes.ts, 21, 3))
72+
73+
declare function stillNumber(x: number): boolean;
74+
>stillNumber : Symbol(stillNumber, Decl(InfinityLiteralTypes.ts, 23, 14))
75+
>x : Symbol(x, Decl(InfinityLiteralTypes.ts, 24, 29))
76+
77+
stillNumber(c);
78+
>stillNumber : Symbol(stillNumber, Decl(InfinityLiteralTypes.ts, 23, 14))
79+
>c : Symbol(c, Decl(InfinityLiteralTypes.ts, 20, 3))
80+
81+
stillNumber(d);
82+
>stillNumber : Symbol(stillNumber, Decl(InfinityLiteralTypes.ts, 23, 14))
83+
>d : Symbol(d, Decl(InfinityLiteralTypes.ts, 21, 3))
84+
85+
/*declare function isInfinity(x: number): x is (Infinity | -Infinity) {
86+
return x !== x;
87+
}
88+
89+
let y: number;
90+
if (isInfinity(y)) {
91+
let a: (Infinity | -Infinity) = y;
92+
}
93+
else {
94+
let b: number = y;
95+
}*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
=== tests/cases/conformance/types/primitives/numericLiteral/InfinityLiteralTypes.ts ===
2+
interface PositiveInfinityMember {
3+
>PositiveInfinityMember : PositiveInfinityMember
4+
5+
member: Infinity
6+
>member : Infinity
7+
>Infinity : Infinity
8+
}
9+
10+
interface NegativeInfinityMember {
11+
>NegativeInfinityMember : NegativeInfinityMember
12+
13+
member: -Infinity
14+
>member : -Infinity
15+
}
16+
17+
function invertInfinity(x: -Infinity): Infinity;
18+
>invertInfinity : { (x: -Infinity): Infinity; (x: Infinity): -Infinity; }
19+
>x : -Infinity
20+
>Infinity : Infinity
21+
22+
function invertInfinity(x: Infinity): -Infinity;
23+
>invertInfinity : { (x: -Infinity): Infinity; (x: Infinity): -Infinity; }
24+
>x : Infinity
25+
>Infinity : Infinity
26+
27+
function invertInfinity(x: number): number {
28+
>invertInfinity : { (x: -Infinity): Infinity; (x: Infinity): -Infinity; }
29+
>x : number
30+
31+
return -x;
32+
>-x : number
33+
>x : number
34+
}
35+
36+
let a: PositiveInfinityMember;
37+
>a : PositiveInfinityMember
38+
>PositiveInfinityMember : PositiveInfinityMember
39+
40+
let b: NegativeInfinityMember;
41+
>b : NegativeInfinityMember
42+
>NegativeInfinityMember : NegativeInfinityMember
43+
44+
a = {member: Infinity};
45+
>a = {member: Infinity} : { member: Infinity; }
46+
>a : PositiveInfinityMember
47+
>{member: Infinity} : { member: Infinity; }
48+
>member : Infinity
49+
>Infinity : Infinity
50+
51+
b = {member: -Infinity}
52+
>b = {member: -Infinity} : { member: -Infinity; }
53+
>b : NegativeInfinityMember
54+
>{member: -Infinity} : { member: -Infinity; }
55+
>member : -Infinity
56+
>-Infinity : -Infinity
57+
>Infinity : Infinity
58+
59+
let c: -Infinity = invertInfinity(a.member);
60+
>c : -Infinity
61+
>invertInfinity(a.member) : -Infinity
62+
>invertInfinity : { (x: -Infinity): Infinity; (x: Infinity): -Infinity; }
63+
>a.member : Infinity
64+
>a : PositiveInfinityMember
65+
>member : Infinity
66+
67+
let d: Infinity = invertInfinity(b.member);
68+
>d : Infinity
69+
>Infinity : Infinity
70+
>invertInfinity(b.member) : Infinity
71+
>invertInfinity : { (x: -Infinity): Infinity; (x: Infinity): -Infinity; }
72+
>b.member : -Infinity
73+
>b : NegativeInfinityMember
74+
>member : -Infinity
75+
76+
let x = c + d;
77+
>x : NaN
78+
>c + d : NaN
79+
>c : -Infinity
80+
>d : Infinity
81+
82+
declare function stillNumber(x: number): boolean;
83+
>stillNumber : (x: number) => boolean
84+
>x : number
85+
86+
stillNumber(c);
87+
>stillNumber(c) : boolean
88+
>stillNumber : (x: number) => boolean
89+
>c : -Infinity
90+
91+
stillNumber(d);
92+
>stillNumber(d) : boolean
93+
>stillNumber : (x: number) => boolean
94+
>d : Infinity
95+
96+
/*declare function isInfinity(x: number): x is (Infinity | -Infinity) {
97+
return x !== x;
98+
}
99+
100+
let y: number;
101+
if (isInfinity(y)) {
102+
let a: (Infinity | -Infinity) = y;
103+
}
104+
else {
105+
let b: number = y;
106+
}*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//// [NaNLiteralTypes.ts]
2+
interface NaNMember {
3+
member: NaN
4+
}
5+
6+
let x: NaNMember;
7+
x = {member: NaN}
8+
9+
declare function stillNumber(x: number): boolean;
10+
stillNumber(x.member);
11+
12+
/*function isNaN(x: number): x is NaN {
13+
return x !== x;
14+
}
15+
16+
let y: number;
17+
if (isNaN(y)) {
18+
let a: NaN = y;
19+
}
20+
else {
21+
let b: number = y;
22+
}
23+
*/
24+
25+
//// [NaNLiteralTypes.js]
26+
var x;
27+
x = { member: NaN };
28+
stillNumber(x.member);
29+
/*function isNaN(x: number): x is NaN {
30+
return x !== x;
31+
}
32+
33+
let y: number;
34+
if (isNaN(y)) {
35+
let a: NaN = y;
36+
}
37+
else {
38+
let b: number = y;
39+
}
40+
*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
=== tests/cases/conformance/types/primitives/numericLiteral/NaNLiteralTypes.ts ===
2+
interface NaNMember {
3+
>NaNMember : Symbol(NaNMember, Decl(NaNLiteralTypes.ts, 0, 0))
4+
5+
member: NaN
6+
>member : Symbol(member, Decl(NaNLiteralTypes.ts, 0, 21))
7+
>NaN : Symbol(NaN)
8+
}
9+
10+
let x: NaNMember;
11+
>x : Symbol(x, Decl(NaNLiteralTypes.ts, 4, 3))
12+
>NaNMember : Symbol(NaNMember, Decl(NaNLiteralTypes.ts, 0, 0))
13+
14+
x = {member: NaN}
15+
>x : Symbol(x, Decl(NaNLiteralTypes.ts, 4, 3))
16+
>member : Symbol(member, Decl(NaNLiteralTypes.ts, 5, 5))
17+
>NaN : Symbol(NaN)
18+
19+
declare function stillNumber(x: number): boolean;
20+
>stillNumber : Symbol(stillNumber, Decl(NaNLiteralTypes.ts, 5, 17))
21+
>x : Symbol(x, Decl(NaNLiteralTypes.ts, 7, 29))
22+
23+
stillNumber(x.member);
24+
>stillNumber : Symbol(stillNumber, Decl(NaNLiteralTypes.ts, 5, 17))
25+
>x.member : Symbol(NaNMember.member, Decl(NaNLiteralTypes.ts, 0, 21))
26+
>x : Symbol(x, Decl(NaNLiteralTypes.ts, 4, 3))
27+
>member : Symbol(NaNMember.member, Decl(NaNLiteralTypes.ts, 0, 21))
28+
29+
/*function isNaN(x: number): x is NaN {
30+
return x !== x;
31+
}
32+
33+
let y: number;
34+
if (isNaN(y)) {
35+
let a: NaN = y;
36+
}
37+
else {
38+
let b: number = y;
39+
}
40+
*/

0 commit comments

Comments
 (0)