Check that Symbol properties are proper, and support downlevel type checking

This commit is contained in:
Jason Freeman
2015-02-06 19:32:19 -08:00
parent 3834edd747
commit 4c09ccd60e
32 changed files with 457 additions and 27 deletions

View File

@@ -0,0 +1,11 @@
//@target: ES5
interface SymbolConstructor {
foo: string;
}
var Symbol: SymbolConstructor;
var obj = {
[Symbol.foo]: 0
}
obj[Symbol.foo];

View File

@@ -0,0 +1,11 @@
//@target: ES5
module M {
var Symbol;
export class C {
[Symbol.iterator]() { }
}
(new C)[Symbol.iterator];
}
(new M.C)[Symbol.iterator];

View File

@@ -0,0 +1,8 @@
//@target: ES5
var Symbol;
class C {
[Symbol.iterator]() { }
}
(new C)[Symbol.iterator]

View File

@@ -0,0 +1,8 @@
//@target: ES5
var Symbol: { iterator: string };
class C {
[Symbol.iterator]() { }
}
(new C)[Symbol.iterator]

View File

@@ -0,0 +1,8 @@
//@target: ES5
var Symbol: { iterator: symbol };
class C {
[Symbol.iterator]() { }
}
(new C)[Symbol.iterator](0) // Should error

View File

@@ -0,0 +1,6 @@
//@target: ES5
class C {
[Symbol.iterator]() { }
}
(new C)[Symbol.iterator]

View File

@@ -0,0 +1,8 @@
//@target: ES5
var Symbol: { iterator: any };
class C {
[Symbol.iterator]() { }
}
(new C)[Symbol.iterator]

View File

@@ -0,0 +1,3 @@
//@target: ES5
var s: symbol;
s.toString();

View File

@@ -0,0 +1,8 @@
//@target: ES6
interface SymbolConstructor {
foo: string;
}
var obj = {
[Symbol.foo]: 0
}