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

Side by Side Diff: test/mjsunit/harmony/class-fields-super.js

Issue 2330473002: Class fields, part 3 (backends)
Patch Set: bytecode test Created 4 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Flags: --harmony-class-fields
6
7 {
8 class Base {
9 a = 0;
10 }
11
12 class Derived extends Base {
13 b = 1;
14 }
15
16 let c = new Derived;
17 assertTrue(c.hasOwnProperty('a'));
18 assertEquals(0, c.a);
19 assertTrue(c.hasOwnProperty('b'));
20 assertEquals(1, c.b);
21 }
22
23 {
24 class Base {
25 a = 0;
26 }
27
28 class Derived extends Base {
29 b = 1;
30 constructor() {
31 super();
32 }
33 }
34
35 let c = new Derived;
36 assertTrue(c.hasOwnProperty('a'));
37 assertEquals(0, c.a);
38 assertTrue(c.hasOwnProperty('b'));
39 assertEquals(1, c.b);
40 }
41
42 {
43 class Base {
44 a = 0;
45 }
46
47 class Derived extends Base {
48 a;
49 }
50
51 let c = new Derived;
52 assertTrue(c.hasOwnProperty('a'));
53 assertEquals(undefined, c.a);
54 }
55
56 {
57 class Base {
58 a = 0;
59 }
60
61 class Derived extends Base {
62 a;
63 constructor() {
64 super();
65 }
66 }
67
68 let c = new Derived;
69 assertTrue(c.hasOwnProperty('a'));
70 assertEquals(undefined, c.a);
71 }
72
73 {
74 class Base {
75 a() {
76 return 0;
77 }
78 }
79
80 class Derived extends Base {
81 a = () => eval("super.a()");
82 }
83
84 let c = new Derived;
85 assertEquals(0, c.a());
86 }
87
88 {
89 class Base {
90 a() {
91 return 0;
92 }
93 }
94
95 class Derived extends Base {
96 a = () => eval("super.a()");
97 constructor() {
98 super();
99 }
100 }
101
102 let c = new Derived;
103 assertEquals(0, c.a());
104 }
105
106 {
107 class Base {
108 static a() {
109 return 0;
110 }
111 }
112
113 class Derived extends Base {
114 static a = () => eval("super.a()");
115 }
116
117 assertEquals(0, Derived.a());
118 }
119
120 {
121 let deferred;
122 let hit = false;
123
124 class Base {
125 a = (hit = true, 0);
126 constructor() {
127 hit = true;
128 this.b = (assertEquals(0, this.a), 1);
129 }
130 }
131
132 class Derived extends Base {
133 c = (hit = true, assertEquals(1, this.b), 2);
134 constructor() {
135 deferred = () => super();
136 }
137 }
138 assertFalse(hit);
139
140 let thrown = false;
141 assertThrows(() => new Derived);
142
143 let c = deferred();
144 assertEquals(0, c.a);
145 assertEquals(1, c.b);
146 assertEquals(2, c.c);
147 }
OLDNEW
« no previous file with comments | « test/mjsunit/harmony/class-fields-scoping.js ('k') | test/mjsunit/harmony/class-fields-syntax.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698