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

Side by Side Diff: test/mjsunit/harmony/classes.js

Issue 766663003: harmony-classes: Implement 'super(...)' call syntactic restriction. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Patch for landing Created 6 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Flags: --harmony-classes --harmony-sloppy 5 // Flags: --harmony-classes --harmony-sloppy
6 6
7 (function TestBasics() { 7 (function TestBasics() {
8 var C = class C {} 8 var C = class C {}
9 assertEquals(typeof C, 'function'); 9 assertEquals(typeof C, 'function');
10 assertEquals(C.__proto__, Function.prototype); 10 assertEquals(C.__proto__, Function.prototype);
(...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 }, ReferenceError); 770 }, ReferenceError);
771 771
772 assertThrows(function() { 772 assertThrows(function() {
773 (class x extends x {}); 773 (class x extends x {});
774 }, ReferenceError); 774 }, ReferenceError);
775 775
776 assertThrows(function() { 776 assertThrows(function() {
777 var x = (class x extends x {}); 777 var x = (class x extends x {});
778 }, ReferenceError); 778 }, ReferenceError);
779 })(); 779 })();
780
781
782 (function TestSuperCallSyntacticRestriction() {
783 assertThrows(function() {
784 class C {
785 constructor() {
786 var y;
arv (Not doing code reviews) 2014/12/01 15:14:07 Why should this throw? I thought the design we agr
787 super();
788 }
789 }; new C();
790 }, TypeError);
791 assertThrows(function() {
792 class C {
793 constructor() {
794 super(this.x);
795 }
796 }; new C();
797 }, TypeError);
798 assertThrows(function() {
799 class C {
800 constructor() {
801 super(this);
802 }
803 }; new C();
804 }, TypeError);
805 assertThrows(function() {
806 class C {
807 constructor() {
808 super(1, 2, Object.getPrototypeOf(this));
809 }
810 }; new C();
811 }, TypeError);
812 assertThrows(function() {
813 class C {
814 constructor() {
815 { super(1, 2); }
816 }
817 }; new C();
818 }, TypeError);
819 assertThrows(function() {
820 class C {
821 constructor() {
822 if (1) super();
823 }
824 }; new C();
825 }, TypeError);
826
827 class C1 extends Object {
828 constructor() {
829 'use strict';
830 super();
831 }
832 };
833 new C1();
834
835 class C2 extends Object {
836 constructor() {
837 ; 'use strict';;;;;
838 super();
839 }
840 };
841 new C2();
842
843 class C3 extends Object {
844 constructor() {
845 ; 'use strict';;;;;
846 // This is a comment.
847 super();
848 }
849 };
850 new C3();
851 }());
arv (Not doing code reviews) 2014/12/01 15:14:07 Can you add a test for `super.method()` too? clas
OLDNEW
« src/scopes.cc ('K') | « test/cctest/test-parsing.cc ('k') | test/mjsunit/harmony/super.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698