| Index: test/mjsunit/harmony/typesystem/class-declarations.js
 | 
| diff --git a/test/mjsunit/harmony/typesystem/class-declarations.js b/test/mjsunit/harmony/typesystem/class-declarations.js
 | 
| index c6815cdf3b406500921472ee42930ccfeb7c8289..8f12a8aa8ed18d2e5eb78e299e746eaafdbe9b7d 100644
 | 
| --- a/test/mjsunit/harmony/typesystem/class-declarations.js
 | 
| +++ b/test/mjsunit/harmony/typesystem/class-declarations.js
 | 
| @@ -51,9 +51,9 @@ load("test/mjsunit/harmony/typesystem/testgen.js");
 | 
|    "  '5': boolean = false" + "\n" +
 | 
|    "  6: string[] = [...['six', 'six', 'and', 'six']]" + "\n" +
 | 
|       // methods
 | 
| -  "  f () : number { return 42; }" + "\n" +
 | 
| -  "  f (a: number[]) : number { return a[0]; }" + "\n" +
 | 
| -  "  f (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
 | 
| +  "  f1 () : number { return 42; }" + "\n" +
 | 
| +  "  f2 (a: number[]) : number { return a[0]; }" + "\n" +
 | 
| +  "  f3 (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
 | 
|       // getters
 | 
|    "  get p () : number { return 42; }" + "\n" +
 | 
|    "  get 'q' () : number { return 42; }" + "\n" +
 | 
| @@ -82,9 +82,9 @@ load("test/mjsunit/harmony/typesystem/testgen.js");
 | 
|    "  static '5': boolean = false" + "\n" +
 | 
|    "  static 6: string[] = [...['six', 'six', 'and', 'six']]" + "\n" +
 | 
|       // methods
 | 
| -  "  static f () : number { return 42; }" + "\n" +
 | 
| -  "  static f (a: number[]) : number { return a[0]; }" + "\n" +
 | 
| -  "  static f (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
 | 
| +  "  static f1 () : number { return 42; }" + "\n" +
 | 
| +  "  static f2 (a: number[]) : number { return a[0]; }" + "\n" +
 | 
| +  "  static f3 (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
 | 
|       // getters
 | 
|    "  static get p () : number { return 42; }" + "\n" +
 | 
|    "  static get 'q' () : number { return 42; }" + "\n" +
 | 
| @@ -103,3 +103,28 @@ load("test/mjsunit/harmony/typesystem/testgen.js");
 | 
|    CheckInvalid("class C { [x: any] : any }");
 | 
|    CheckInvalid("class C { static [x: number] }");
 | 
|  })();
 | 
| +
 | 
| +(function TestClassMemberSignatures() {
 | 
| +  CheckValid("class C {" + "\n" +
 | 
| +     // constructor signatures
 | 
| +  "  constructor (x: number, y: boolean)" + "\n" +
 | 
| +  "  constructor (x: number, y: boolean) { this.x = x; this.y = y; }" + "\n" +
 | 
| +     // method signatures
 | 
| +  "  f1 () : number" + "\n" +
 | 
| +  "  f1 () : number { return 42; }" + "\n" +
 | 
| +  "  f2 (a: number[]) : number" + "\n" +
 | 
| +  "  f2 (a: number[]) : number { return a[0]; }" + "\n" +
 | 
| +  "  f3 (a: number[], b: number) : number" + "\n" +
 | 
| +  "  f3 (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
 | 
| +  "}");
 | 
| +  // Test all possible valid static members.
 | 
| +  CheckValid("class C {" + "\n" +
 | 
| +     // static method signatures
 | 
| +  "  static f1 () : number" + "\n" +
 | 
| +  "  static f1 () : number { return 42; }" + "\n" +
 | 
| +  "  static f2 (a: number[]) : number" + "\n" +
 | 
| +  "  static f2 (a: number[]) : number { return a[0]; }" + "\n" +
 | 
| +  "  static f3 (a: number[], b: number)" + "\n" +
 | 
| +  "  static f3 (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
 | 
| +  "}");
 | 
| +})();
 | 
| 
 |