Chromium Code Reviews| Index: test/mjsunit/harmony/function-name.js |
| diff --git a/test/mjsunit/harmony/function-name.js b/test/mjsunit/harmony/function-name.js |
| index 8ca5d8209acd988d4273f9abfa3b5d9ebe52fc1b..42b9cb8d306c314ce4f4aa4e5fb7bb7bc8ed1548 100644 |
| --- a/test/mjsunit/harmony/function-name.js |
| +++ b/test/mjsunit/harmony/function-name.js |
| @@ -3,6 +3,7 @@ |
| // found in the LICENSE file. |
| // |
| // Flags: --harmony-function-name |
| +// Flags: --harmony-destructuring-bind --harmony-destructuring-assignment |
| (function testVariableDeclarationsFunction() { |
| 'use strict'; |
| @@ -159,3 +160,125 @@ |
| classLit = class { constructor() {} static get ['name']() { return true; } }; |
| assertTrue(classLit.name); |
| })(); |
| + |
| +(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
|
| + var { |
| + a = function() {}, |
| + b = () => {}, |
| + x = function withName() { }, |
| + y = class { }, |
| + z = class ClassName { }, |
| + q = class { static name() { return 42 } }, |
| + foo: bar = function() {}, |
| + } = {}; |
| + assertEquals('a', a.name); |
| + assertEquals('b', b.name); |
| + assertEquals('withName', x.name); |
| + assertEquals('y', y.name); |
| + assertEquals('ClassName', z.name); |
| + assertEquals('function', typeof q.name); |
| + assertEquals('bar', bar.name); |
| +})(); |
| + |
| +(function testArrayBindingPattern() { |
| + var [ |
| + a = function() {}, |
| + b = () => {}, |
| + x = function withName() { }, |
| + y = class { }, |
| + z = class ClassName { }, |
| + q = class { static name() { return 42 } }, |
| + ] = []; |
| + assertEquals('a', a.name); |
| + assertEquals('b', b.name); |
| + assertEquals('withName', x.name); |
| + assertEquals('y', y.name); |
| + assertEquals('ClassName', z.name); |
| + assertEquals('function', typeof q.name); |
| +})(); |
| + |
| +(function testObjectAssignmentPattern() { |
| + var a, b, x, y, z, q; |
| + ({ |
| + a = function() {}, |
| + b = () => {}, |
| + x = function withName() { }, |
| + y = class { }, |
| + z = class ClassName { }, |
| + q = class { static name() { return 42 } }, |
| + foo: bar = function() {}, |
| + } = {}); |
| + assertEquals('a', a.name); |
| + assertEquals('b', b.name); |
| + assertEquals('withName', x.name); |
| + assertEquals('y', y.name); |
| + assertEquals('ClassName', z.name); |
| + assertEquals('function', typeof q.name); |
| + assertEquals('bar', bar.name); |
| +})(); |
| + |
| +(function testArrayAssignmentPattern() { |
| + var a, b, x, y, z, q; |
| + [ |
| + a = function() {}, |
| + b = () => {}, |
| + x = function withName() { }, |
| + y = class { }, |
| + z = class ClassName { }, |
| + q = class { static name() { return 42 } }, |
| + ] = []; |
| + assertEquals('a', a.name); |
| + assertEquals('b', b.name); |
| + assertEquals('withName', x.name); |
| + assertEquals('y', y.name); |
| + assertEquals('ClassName', z.name); |
| + assertEquals('function', typeof q.name); |
| +})(); |
| + |
| +(function testParameterDestructuring() { |
| + (function({ a = function() {}, |
| + b = () => {}, |
| + x = function withName() { }, |
| + y = class { }, |
| + z = class ClassName { }, |
| + q = class { static name() { return 42 } }, |
| + foo: bar = function() {} }) { |
| + assertEquals('a', a.name); |
| + assertEquals('b', b.name); |
| + assertEquals('withName', x.name); |
| + assertEquals('y', y.name); |
| + assertEquals('ClassName', z.name); |
| + assertEquals('function', typeof q.name); |
| + assertEquals('bar', bar.name); |
| + })({}); |
| + |
| + (function([ a = function() {}, |
| + b = () => {}, |
| + x = function withName() { }, |
| + y = class { }, |
| + z = class ClassName { }, |
| + q = class { static name() { return 42 } } ]) { |
| + assertEquals('a', a.name); |
| + assertEquals('b', b.name); |
| + assertEquals('withName', x.name); |
| + assertEquals('y', y.name); |
| + assertEquals('ClassName', z.name); |
| + assertEquals('function', typeof q.name); |
| + })([]); |
| +})(); |
| + |
| +(function testDefaultParameters() { |
| + (function(a = function() {}, |
| + b = () => {}, |
| + x = function withName() { }, |
| + y = class { }, |
| + z = class ClassName { }, |
| + q = class { static name() { return 42 } }) { |
| + assertEquals('a', a.name); |
| + assertEquals('b', b.name); |
| + assertEquals('withName', x.name); |
| + assertEquals('y', y.name); |
| + assertEquals('ClassName', z.name); |
| + assertEquals('function', typeof q.name); |
| + })(); |
| +})(); |