Index: test/mjsunit/harmony/function-name.js |
diff --git a/test/mjsunit/harmony/function-name.js b/test/mjsunit/harmony/function-name.js |
index 5da761f3c2ca7823b1a8f1212254610da035f0c0..e8d82d0d0804c6a3d1a01e78e0be3fbe580ba1a0 100644 |
--- a/test/mjsunit/harmony/function-name.js |
+++ b/test/mjsunit/harmony/function-name.js |
@@ -33,3 +33,56 @@ |
assertEquals('x', x.name); |
assertEquals('NamedClass', y.name); |
})(); |
+ |
+(function testObjectProperties() { |
+ 'use strict'; |
+ var obj = { |
+ a: function() {}, |
+ b: () => {}, |
+ c() { }, |
+ get d() { }, |
+ set d(val) { }, |
+ x: function withName() { }, |
+ y: class { }, |
+ z: class ClassName { }, |
+ 42: function() {}, |
+ 4.2: function() {}, |
+ }; |
+ |
+ assertEquals('a', obj.a.name); |
+ assertEquals('b', obj.b.name); |
+ assertEquals('c', obj.c.name); |
+ var dDescriptor = Object.getOwnPropertyDescriptor(obj, 'd'); |
+ assertEquals('get d', dDescriptor.get.name); |
+ assertEquals('set d', dDescriptor.set.name); |
+ assertEquals('withName', obj.x.name); |
+ assertEquals('y', obj.y.name); |
+ assertEquals('ClassName', obj.z.name); |
+ assertEquals('42', obj[42].name); |
+ assertEquals('4.2', obj[4.2].name); |
+})(); |
+ |
+(function testClassProperties() { |
+ 'use strict'; |
+ class C { |
+ a() { } |
+ static b() { } |
+ get c() { } |
+ set c(val) { } |
+ 42() { } |
+ static 43() { } |
+ get 44() { } |
+ set 44(val) { } |
+ }; |
+ |
+ assertEquals('a', C.prototype.a.name); |
+ assertEquals('b', C.b.name); |
+ var descriptor = Object.getOwnPropertyDescriptor(C.prototype, 'c'); |
+ assertEquals('get c', descriptor.get.name); |
+ assertEquals('set c', descriptor.set.name); |
+ assertEquals('42', C.prototype[42].name); |
+ assertEquals('43', C[43].name); |
+ var descriptor = Object.getOwnPropertyDescriptor(C.prototype, '44'); |
+ assertEquals('get 44', descriptor.get.name); |
+ assertEquals('set 44', descriptor.set.name); |
+})(); |