Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: test/mjsunit/harmony/typesystem/class-declarations.js

Issue 1853763002: Allow constructor and method signatures in classes (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@types-1849803002-intf-decl
Patch Set: Fix method type annotations in the preparser Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« test/cctest/test-parsing.cc ('K') | « test/cctest/test-parsing.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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" +
+ "}");
+})();
« test/cctest/test-parsing.cc ('K') | « test/cctest/test-parsing.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698