Skip to content

Commit 779661c

Browse files
committed
Add tests for symbol properties
1 parent b60fa14 commit 779661c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+443
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
//@target: ES6
2+
class C {
3+
[Symbol.iterator]: { x; y };
4+
}
5+
interface I {
6+
[Symbol.iterator]?: { x };
7+
}
8+
9+
var i: I;
10+
i = new C;
11+
var c: C = i;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
//@target: ES6
2+
class C { }
3+
interface I {
4+
[Symbol.iterator]?: { x };
5+
}
6+
7+
var i: I;
8+
i = new C;
9+
var c: C = i;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
//@target: ES6
2+
class C {
3+
private [Symbol.iterator]: { x };
4+
}
5+
interface I {
6+
[Symbol.iterator]: { x };
7+
}
8+
9+
var i: I;
10+
i = new C;
11+
var c: C = i;
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//@target: ES6
2+
class C {
3+
[Symbol.iterator]: { x; y };
4+
}
5+
interface I {
6+
[Symbol.iterator]: { x };
7+
}
8+
9+
declare function foo(i: I): I;
10+
declare function foo(a: any): any;
11+
12+
declare function bar(i: C): C;
13+
declare function bar(a: any): any;
14+
15+
foo(new C);
16+
var i: I;
17+
bar(i);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//@target: ES6
2+
class C {
3+
[Symbol.iterator]: { x; y };
4+
}
5+
interface I {
6+
[Symbol.iterator]?: { x };
7+
}
8+
9+
declare function foo(i: I): I;
10+
declare function foo(a: any): any;
11+
12+
declare function bar(i: C): C;
13+
declare function bar(a: any): any;
14+
15+
foo(new C);
16+
var i: I;
17+
bar(i);
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//@target: ES6
2+
class C { }
3+
interface I {
4+
[Symbol.iterator]?: { x };
5+
}
6+
7+
declare function foo(i: I): I;
8+
declare function foo(a: any): any;
9+
10+
declare function bar(i: C): C;
11+
declare function bar(a: any): any;
12+
13+
foo(new C);
14+
var i: I;
15+
bar(i);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//@target: ES6
2+
class C {
3+
private [Symbol.iterator]: { x };
4+
}
5+
interface I {
6+
[Symbol.iterator]: { x };
7+
}
8+
9+
declare function foo(i: I): I;
10+
declare function foo(a: any): any;
11+
12+
declare function bar(i: C): C;
13+
declare function bar(a: any): any;
14+
15+
foo(new C);
16+
var i: I;
17+
bar(i);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
//@target: ES6
2+
interface I {
3+
[Symbol.iterator]: number;
4+
[s: Symbol]: string;
5+
"__@iterator": string;
6+
}
7+
8+
var i: I;
9+
var it = i[Symbol.iterator];
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//@target: ES6
2+
var i = {
3+
[Symbol.iterator]: 0,
4+
[Symbol.toStringTag]() { return "" },
5+
set [Symbol.toPrimitive](p: boolean) { }
6+
}
7+
8+
var it = i[Symbol.iterator];
9+
var str = i[Symbol.toStringTag]();
10+
i[Symbol.toPrimitive] = false;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
//@target: ES6
2+
var i = {
3+
[Symbol.iterator]: { p: null },
4+
[Symbol.toStringTag]() { return { p: undefined }; }
5+
}
6+
7+
var it = i[Symbol.iterator];
8+
var str = i[Symbol.toStringTag]();

0 commit comments

Comments
 (0)