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

Side by Side Diff: test/mjsunit/harmony/function-name.js

Issue 1634403002: Add ES2015 Function.name support to pattern and default parameter initializers (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 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 | « src/parsing/parser-base.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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-function-name 5 // Flags: --harmony-function-name
6 // Flags: --harmony-destructuring-bind --harmony-destructuring-assignment
6 7
7 (function testVariableDeclarationsFunction() { 8 (function testVariableDeclarationsFunction() {
8 'use strict'; 9 'use strict';
9 var a = function(){}; 10 var a = function(){};
10 assertEquals('a', a.name); 11 assertEquals('a', a.name);
11 let b = () => {}; 12 let b = () => {};
12 assertEquals('b', b.name); 13 assertEquals('b', b.name);
13 const c = ((function(){})); 14 const c = ((function(){}));
14 assertEquals('c', c.name); 15 assertEquals('c', c.name);
15 16
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 assertEquals('classWithName', classLit.name); 153 assertEquals('classWithName', classLit.name);
153 classLit = class { constructor() {} static name() {} }; 154 classLit = class { constructor() {} static name() {} };
154 assertEquals('function', typeof classLit.name); 155 assertEquals('function', typeof classLit.name);
155 classLit = class { constructor() {} static get name() { return true; } }; 156 classLit = class { constructor() {} static get name() { return true; } };
156 assertTrue(classLit.name); 157 assertTrue(classLit.name);
157 classLit = class { constructor() {} static ['name']() {} }; 158 classLit = class { constructor() {} static ['name']() {} };
158 assertEquals('function', typeof classLit.name); 159 assertEquals('function', typeof classLit.name);
159 classLit = class { constructor() {} static get ['name']() { return true; } }; 160 classLit = class { constructor() {} static get ['name']() { return true; } };
160 assertTrue(classLit.name); 161 assertTrue(classLit.name);
161 })(); 162 })();
163
164 (function testObjectBindingPattern() {
165 var {
166 a = function() {},
caitp (gmail) 2016/01/27 02:50:34 What about `name: AssignmentExpression`-form bindi
adamk 2016/01/27 18:33:55 Added a few tests of this syntax too.
167 b = () => {},
168 x = function withName() { },
169 y = class { },
170 z = class ClassName { },
171 q = class { static name() { return 42 } },
172 } = {};
173 assertEquals('a', a.name);
174 assertEquals('b', b.name);
175 assertEquals('withName', x.name);
176 assertEquals('y', y.name);
177 assertEquals('ClassName', z.name);
178 assertEquals('function', typeof q.name);
179 })();
180
181 (function testArrayBindingPattern() {
182 var [
183 a = function() {},
184 b = () => {},
185 x = function withName() { },
186 y = class { },
187 z = class ClassName { },
188 q = class { static name() { return 42 } },
189 ] = [];
190 assertEquals('a', a.name);
191 assertEquals('b', b.name);
192 assertEquals('withName', x.name);
193 assertEquals('y', y.name);
194 assertEquals('ClassName', z.name);
195 assertEquals('function', typeof q.name);
196 })();
197
198 (function testObjectAssignmentPattern() {
199 var a, b, x, y, z, q;
200 ({
201 a = function() {},
202 b = () => {},
203 x = function withName() { },
204 y = class { },
205 z = class ClassName { },
206 q = class { static name() { return 42 } },
207 } = {});
208 assertEquals('a', a.name);
209 assertEquals('b', b.name);
210 assertEquals('withName', x.name);
211 assertEquals('y', y.name);
212 assertEquals('ClassName', z.name);
213 assertEquals('function', typeof q.name);
214 })();
215
216 (function testArrayAssignmentPattern() {
217 var a, b, x, y, z, q;
218 [
219 a = function() {},
220 b = () => {},
221 x = function withName() { },
222 y = class { },
223 z = class ClassName { },
224 q = class { static name() { return 42 } },
225 ] = [];
226 assertEquals('a', a.name);
227 assertEquals('b', b.name);
228 assertEquals('withName', x.name);
229 assertEquals('y', y.name);
230 assertEquals('ClassName', z.name);
231 assertEquals('function', typeof q.name);
232 })();
233
234 (function testParameterDestructuring() {
235 (function({ a = function() {},
236 b = () => {},
237 x = function withName() { },
238 y = class { },
239 z = class ClassName { },
240 q = class { static name() { return 42 } } }) {
241 assertEquals('a', a.name);
242 assertEquals('b', b.name);
243 assertEquals('withName', x.name);
244 assertEquals('y', y.name);
245 assertEquals('ClassName', z.name);
246 assertEquals('function', typeof q.name);
247 })({});
248
249 (function([ a = function() {},
250 b = () => {},
251 x = function withName() { },
252 y = class { },
253 z = class ClassName { },
254 q = class { static name() { return 42 } } ]) {
255 assertEquals('a', a.name);
256 assertEquals('b', b.name);
257 assertEquals('withName', x.name);
258 assertEquals('y', y.name);
259 assertEquals('ClassName', z.name);
260 assertEquals('function', typeof q.name);
261 })([]);
262 })();
263
264 (function testDefaultParameters() {
265 (function(a = function() {},
266 b = () => {},
267 x = function withName() { },
268 y = class { },
269 z = class ClassName { },
270 q = class { static name() { return 42 } }) {
271 assertEquals('a', a.name);
272 assertEquals('b', b.name);
273 assertEquals('withName', x.name);
274 assertEquals('y', y.name);
275 assertEquals('ClassName', z.name);
276 assertEquals('function', typeof q.name);
277 })();
278 })();
OLDNEW
« no previous file with comments | « src/parsing/parser-base.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698