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() { | |
| 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 |