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

Side by Side Diff: test/mjsunit/harmony/object-literals-super.js

Issue 1373633002: Remove --harmony-arrow-functions flag (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebased Created 5 years, 2 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
« no previous file with comments | « test/mjsunit/harmony/new-target.js ('k') | test/mjsunit/harmony/regress/regress-3501.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 // Flags: --harmony-arrow-functions --allow-natives-syntax
6
7
8 (function TestHomeObject() {
9 var object = {
10 method() {
11 return super.method();
12 },
13 get getter() {
14 return super.getter;
15 },
16 set setter(v) {
17 super.setter = v;
18 },
19 get accessor() {
20 return super.accessor;
21 },
22 set accessor(v) {
23 super.accessor = v;
24 },
25
26 methodNoSuper() {},
27 get getterNoSuper() {},
28 set setterNoSuper(v) {},
29 get accessorNoSuper() {},
30 set accessorNoSuper(v) {},
31 propertyNoSuper: function() {},
32 propertyWithParenNoSuper: (function() {}),
33 propertyWithParensNoSuper: ((function() {}))
34 };
35
36 assertEquals(object, object.method[%HomeObjectSymbol()]);
37 var desc = Object.getOwnPropertyDescriptor(object, 'getter');
38 assertEquals(object, desc.get[%HomeObjectSymbol()]);
39 desc = Object.getOwnPropertyDescriptor(object, 'setter');
40 assertEquals(object, desc.set[%HomeObjectSymbol()]);
41 desc = Object.getOwnPropertyDescriptor(object, 'accessor');
42 assertEquals(object, desc.get[%HomeObjectSymbol()]);
43 assertEquals(object, desc.set[%HomeObjectSymbol()]);
44
45 assertEquals(undefined, object.methodNoSuper[%HomeObjectSymbol()]);
46 desc = Object.getOwnPropertyDescriptor(object, 'getterNoSuper');
47 assertEquals(undefined, desc.get[%HomeObjectSymbol()]);
48 desc = Object.getOwnPropertyDescriptor(object, 'setterNoSuper');
49 assertEquals(undefined, desc.set[%HomeObjectSymbol()]);
50 desc = Object.getOwnPropertyDescriptor(object, 'accessorNoSuper');
51 assertEquals(undefined, desc.get[%HomeObjectSymbol()]);
52 assertEquals(undefined, desc.set[%HomeObjectSymbol()]);
53 assertEquals(undefined, object.propertyNoSuper[%HomeObjectSymbol()]);
54 assertEquals(undefined, object.propertyWithParenNoSuper[%HomeObjectSymbol()]);
55 assertEquals(undefined,
56 object.propertyWithParensNoSuper[%HomeObjectSymbol()]);
57 })();
58
59
60 (function TestMethod() {
61 var object = {
62 __proto__: {
63 method(x) {
64 return 'proto' + x;
65 }
66 },
67 method(x) {
68 return super.method(x);
69 }
70 };
71 assertEquals('proto42', object.method(42));
72 })();
73
74
75 (function TestGetter() {
76 var object = {
77 __proto__: {
78 _x: 42,
79 get x() {
80 return 'proto' + this._x;
81 }
82 },
83 get x() {
84 return super.x;
85 }
86 };
87 assertEquals('proto42', object.x);
88 })();
89
90
91 (function TestSetter() {
92 var object = {
93 __proto__: {
94 _x: 0,
95 set x(v) {
96 return this._x = v;
97 }
98 },
99 set x(v) {
100 super.x = v;
101 }
102 };
103 assertEquals(1, object.x = 1);
104 assertEquals(1, object._x);
105 assertEquals(0, Object.getPrototypeOf(object)._x);
106 })();
107
108
109 (function TestOptimized() {
110 // Object literals without any accessors get optimized.
111 var object = {
112 method() {
113 return super.toString;
114 }
115 };
116 assertEquals(Object.prototype.toString, object.method());
117 })();
118
119
120 (function TestConciseGenerator() {
121 var o = {
122 __proto__: {
123 m() {
124 return 42;
125 }
126 },
127 *g() {
128 yield super.m();
129 },
130 };
131
132 assertEquals(42, o.g().next().value);
133 })();
134
135
136 (function TestSuperPropertyInEval() {
137 var y = 3;
138 var p = {
139 m() { return 1; },
140 get x() { return 2; }
141 };
142 var o = {
143 __proto__: p,
144 evalM() {
145 assertEquals(1, eval('super.m()'));
146 },
147 evalX() {
148 assertEquals(2, eval('super.x'));
149 },
150 globalEval1() {
151 assertThrows('super.x', SyntaxError);
152 assertThrows('super.m()', SyntaxError);
153 },
154 globalEval2() {
155 super.x;
156 assertThrows('super.x', SyntaxError);
157 assertThrows('super.m()', SyntaxError);
158 }
159 };
160 o.evalM();
161 o.evalX();
162 o.globalEval1();
163 o.globalEval2();
164 })();
165
166
167 (function TestSuperPropertyInArrow() {
168 var y = 3;
169 var p = {
170 m() { return 1; },
171 get x() { return 2; }
172 };
173 var o = {
174 __proto__: p,
175 arrow() {
176 assertSame(super.x, (() => super.x)());
177 assertSame(super.m(), (() => super.m())());
178 return (() => super.m())();
179 }
180 };
181 assertSame(1, o.arrow());
182 })();
OLDNEW
« no previous file with comments | « test/mjsunit/harmony/new-target.js ('k') | test/mjsunit/harmony/regress/regress-3501.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698