Chromium Code Reviews| 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() { | |
|
rossberg
2016/01/27 18:39:07
In all these cases, it might be good to also test
adamk
2016/01/27 18:46:38
Spec says that parentheses don't stop the name fro
| |
| 165 var { | |
| 166 a = function() {}, | |
| 167 b = () => {}, | |
| 168 x = function withName() { }, | |
| 169 y = class { }, | |
| 170 z = class ClassName { }, | |
| 171 q = class { static name() { return 42 } }, | |
| 172 foo: bar = function() {}, | |
| 173 } = {}; | |
| 174 assertEquals('a', a.name); | |
| 175 assertEquals('b', b.name); | |
| 176 assertEquals('withName', x.name); | |
| 177 assertEquals('y', y.name); | |
| 178 assertEquals('ClassName', z.name); | |
| 179 assertEquals('function', typeof q.name); | |
| 180 assertEquals('bar', bar.name); | |
| 181 })(); | |
| 182 | |
| 183 (function testArrayBindingPattern() { | |
| 184 var [ | |
| 185 a = function() {}, | |
| 186 b = () => {}, | |
| 187 x = function withName() { }, | |
| 188 y = class { }, | |
| 189 z = class ClassName { }, | |
| 190 q = class { static name() { return 42 } }, | |
| 191 ] = []; | |
| 192 assertEquals('a', a.name); | |
| 193 assertEquals('b', b.name); | |
| 194 assertEquals('withName', x.name); | |
| 195 assertEquals('y', y.name); | |
| 196 assertEquals('ClassName', z.name); | |
| 197 assertEquals('function', typeof q.name); | |
| 198 })(); | |
| 199 | |
| 200 (function testObjectAssignmentPattern() { | |
| 201 var a, b, x, y, z, q; | |
| 202 ({ | |
| 203 a = function() {}, | |
| 204 b = () => {}, | |
| 205 x = function withName() { }, | |
| 206 y = class { }, | |
| 207 z = class ClassName { }, | |
| 208 q = class { static name() { return 42 } }, | |
| 209 foo: bar = function() {}, | |
| 210 } = {}); | |
| 211 assertEquals('a', a.name); | |
| 212 assertEquals('b', b.name); | |
| 213 assertEquals('withName', x.name); | |
| 214 assertEquals('y', y.name); | |
| 215 assertEquals('ClassName', z.name); | |
| 216 assertEquals('function', typeof q.name); | |
| 217 assertEquals('bar', bar.name); | |
| 218 })(); | |
| 219 | |
| 220 (function testArrayAssignmentPattern() { | |
| 221 var a, b, x, y, z, q; | |
| 222 [ | |
| 223 a = function() {}, | |
| 224 b = () => {}, | |
| 225 x = function withName() { }, | |
| 226 y = class { }, | |
| 227 z = class ClassName { }, | |
| 228 q = class { static name() { return 42 } }, | |
| 229 ] = []; | |
| 230 assertEquals('a', a.name); | |
| 231 assertEquals('b', b.name); | |
| 232 assertEquals('withName', x.name); | |
| 233 assertEquals('y', y.name); | |
| 234 assertEquals('ClassName', z.name); | |
| 235 assertEquals('function', typeof q.name); | |
| 236 })(); | |
| 237 | |
| 238 (function testParameterDestructuring() { | |
| 239 (function({ a = function() {}, | |
| 240 b = () => {}, | |
| 241 x = function withName() { }, | |
| 242 y = class { }, | |
| 243 z = class ClassName { }, | |
| 244 q = class { static name() { return 42 } }, | |
| 245 foo: bar = function() {} }) { | |
| 246 assertEquals('a', a.name); | |
| 247 assertEquals('b', b.name); | |
| 248 assertEquals('withName', x.name); | |
| 249 assertEquals('y', y.name); | |
| 250 assertEquals('ClassName', z.name); | |
| 251 assertEquals('function', typeof q.name); | |
| 252 assertEquals('bar', bar.name); | |
| 253 })({}); | |
| 254 | |
| 255 (function([ a = function() {}, | |
| 256 b = () => {}, | |
| 257 x = function withName() { }, | |
| 258 y = class { }, | |
| 259 z = class ClassName { }, | |
| 260 q = class { static name() { return 42 } } ]) { | |
| 261 assertEquals('a', a.name); | |
| 262 assertEquals('b', b.name); | |
| 263 assertEquals('withName', x.name); | |
| 264 assertEquals('y', y.name); | |
| 265 assertEquals('ClassName', z.name); | |
| 266 assertEquals('function', typeof q.name); | |
| 267 })([]); | |
| 268 })(); | |
| 269 | |
| 270 (function testDefaultParameters() { | |
| 271 (function(a = function() {}, | |
| 272 b = () => {}, | |
| 273 x = function withName() { }, | |
| 274 y = class { }, | |
| 275 z = class ClassName { }, | |
| 276 q = class { static name() { return 42 } }) { | |
| 277 assertEquals('a', a.name); | |
| 278 assertEquals('b', b.name); | |
| 279 assertEquals('withName', x.name); | |
| 280 assertEquals('y', y.name); | |
| 281 assertEquals('ClassName', z.name); | |
| 282 assertEquals('function', typeof q.name); | |
| 283 })(); | |
| 284 })(); | |
| OLD | NEW |