OLD | NEW |
---|---|
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 Loading... | |
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 })(); | |
OLD | NEW |