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..920db698c1933437605589370f2361d7a419f139 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,119 @@ |
| classLit = class { constructor() {} static get ['name']() { return true; } }; |
| assertTrue(classLit.name); |
| })(); |
| + |
| +(function testObjectBindingPattern() { |
| + var { |
| + 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.
|
| + 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 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 } }, |
| + } = {}); |
| + 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 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 } } }) { |
| + 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([ 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); |
| + })(); |
| +})(); |