@@ -4,27 +4,51 @@ class B extends A {}
44var a : A ;
55var b : B ;
66var i : i32 ;
7+ var I : i64 ;
78var f : f32 ;
9+ var F : f64 ;
810
911assert ( a instanceof A ) ;
1012assert ( b instanceof A ) ;
1113assert ( ! ( i instanceof A ) ) ;
14+ assert ( ! ( I instanceof A ) ) ;
1215assert ( ! ( f instanceof A ) ) ;
16+ assert ( ! ( F instanceof A ) ) ;
1317
1418assert ( ! ( a instanceof B ) ) ;
1519assert ( b instanceof B ) ;
1620assert ( ! ( i instanceof B ) ) ;
21+ assert ( ! ( I instanceof B ) ) ;
1722assert ( ! ( f instanceof B ) ) ;
23+ assert ( ! ( F instanceof B ) ) ;
1824
1925assert ( ! ( a instanceof i32 ) ) ;
2026assert ( ! ( b instanceof i32 ) ) ;
2127assert ( i instanceof i32 ) ;
28+ assert ( ! ( I instanceof i32 ) ) ;
2229assert ( ! ( f instanceof i32 ) ) ;
30+ assert ( ! ( F instanceof i32 ) ) ;
31+
32+ assert ( ! ( a instanceof i64 ) ) ;
33+ assert ( ! ( b instanceof i64 ) ) ;
34+ assert ( ! ( i instanceof i64 ) ) ;
35+ assert ( I instanceof i64 ) ;
36+ assert ( ! ( f instanceof i64 ) ) ;
37+ assert ( ! ( F instanceof i64 ) ) ;
2338
2439assert ( ! ( a instanceof f32 ) ) ;
2540assert ( ! ( b instanceof f32 ) ) ;
2641assert ( ! ( i instanceof f32 ) ) ;
42+ assert ( ! ( I instanceof f32 ) ) ;
2743assert ( f instanceof f32 ) ;
44+ assert ( ! ( F instanceof f32 ) ) ;
45+
46+ assert ( ! ( a instanceof f64 ) ) ;
47+ assert ( ! ( b instanceof f64 ) ) ;
48+ assert ( ! ( i instanceof f64 ) ) ;
49+ assert ( ! ( I instanceof f64 ) ) ;
50+ assert ( ! ( f instanceof f64 ) ) ;
51+ assert ( F instanceof f64 ) ;
2852
2953function isI32 < T > ( v : T ) : bool {
3054 // should eliminate non-applicable branches (see fixture)
@@ -38,13 +62,14 @@ function isI32<T>(v: T): bool {
3862assert ( isI32 ( 0 ) ) ;
3963assert ( ! isI32 ( 0.0 ) ) ;
4064assert ( ! isI32 ( < u32 > 0 ) ) ; // signedness is relevant
65+ assert ( ! isI32 ( < u16 > 0 ) ) ; // byte size is relevant
4166
4267var an : A | null = null ;
43- assert ( ! ( an instanceof A ) ) ; // TS: null is not an instance of A
44- assert ( an instanceof A | null ) ; // AS: null is an instance of A | null
68+ assert ( ! ( an instanceof A ) ) ; // TS: == null is not an instance of A
69+ assert ( an instanceof A | null ) ; // AS: == null is an instance of A | null
4570an = changetype < A | null > ( 1 ) ;
46- assert ( an instanceof A ) ; // TS: non- null is an instance of A
47- assert ( an instanceof A | null ) ; // AS: non- null is an instance of A | null
71+ assert ( an instanceof A ) ; // TS: != null is an instance of A
72+ assert ( an instanceof A | null ) ; // AS: != null is an instance of A | null
4873
4974// TODO: keep track of nullability during flows, so this becomes precomputable:
5075// assert(an !== null && an instanceof A);
0 commit comments