| Index: test/mjsunit/harmony/reflect.js
|
| diff --git a/test/mjsunit/harmony/reflect.js b/test/mjsunit/harmony/reflect.js
|
| index d9cd51f649d6d8c8f75b723658ade0f4f304de11..fc52c93d197c598978064b710f1e57648a44c691 100644
|
| --- a/test/mjsunit/harmony/reflect.js
|
| +++ b/test/mjsunit/harmony/reflect.js
|
| @@ -53,6 +53,10 @@ function prepare(tgt) {
|
| tgt[sym] = "foo";
|
| tgt["noconf"] = 43;
|
| Object.defineProperty(tgt, "noconf", {configurable: false});
|
| + Object.defineProperty(tgt, "getter",
|
| + { get: function () {return this.bla}, configurable: true });
|
| + Object.defineProperty(tgt, "setter",
|
| + { set: function () {}, configurable: true });
|
| }
|
|
|
|
|
| @@ -83,14 +87,43 @@ function prepare(tgt) {
|
|
|
|
|
| (function testReflectGetOnObject() {
|
| + var receiver = {bla: false};
|
| for (let tgt of objects) {
|
| prepare(tgt);
|
| assertEquals(true, Reflect.get(tgt, "bla"));
|
| + assertEquals(true, Reflect.get(tgt, "bla", tgt));
|
| + assertEquals(true, Reflect.get(tgt, "bla", receiver));
|
| assertEquals(42, Reflect.get(tgt, 4));
|
| + assertEquals(42, Reflect.get(tgt, 4, tgt));
|
| + assertEquals(42, Reflect.get(tgt, 4, receiver));
|
| assertEquals(42, Reflect.get(tgt, "4"));
|
| + assertEquals(42, Reflect.get(tgt, "4", tgt));
|
| + assertEquals(42, Reflect.get(tgt, "4", receiver));
|
| assertEquals("foo", Reflect.get(tgt, sym));
|
| - assertEquals(undefined, Reflect.get(tgt, "doesnotexist"));
|
| + assertEquals("foo", Reflect.get(tgt, sym, tgt));
|
| + assertEquals("foo", Reflect.get(tgt, sym, receiver));
|
| + assertEquals(43, Reflect.get(tgt, "noconf"));
|
| + assertEquals(43, Reflect.get(tgt, "noconf", tgt));
|
| + assertEquals(43, Reflect.get(tgt, "noconf", receiver));
|
| + assertEquals(true, Reflect.get(tgt, "getter"));
|
| + assertEquals(true, Reflect.get(tgt, "getter", tgt));
|
| + assertEquals(false, Reflect.get(tgt, "getter", receiver));
|
| + assertEquals(undefined, Reflect.get(tgt, "setter"));
|
| + assertEquals(undefined, Reflect.get(tgt, "setter", tgt));
|
| + assertEquals(undefined, Reflect.get(tgt, "setter", receiver));
|
| + assertEquals(undefined, Reflect.get(tgt, "foo"));
|
| + assertEquals(undefined, Reflect.get(tgt, "foo", tgt));
|
| + assertEquals(undefined, Reflect.get(tgt, "foo", receiver));
|
| assertEquals(undefined, Reflect.get(tgt, 666));
|
| + assertEquals(undefined, Reflect.get(tgt, 666, tgt));
|
| + assertEquals(undefined, Reflect.get(tgt, 666, receiver));
|
| +
|
| + let proto = tgt.__proto__;
|
| + tgt.__proto__ = { get foo() {return this.bla} };
|
| + assertEquals(true, Reflect.get(tgt, "foo"));
|
| + assertEquals(true, Reflect.get(tgt, "foo", tgt));
|
| + assertEquals(false, Reflect.get(tgt, "foo", receiver));
|
| + tgt.__proto__ = proto;
|
| }
|
| })();
|
|
|
| @@ -128,8 +161,16 @@ function prepare(tgt) {
|
| assertTrue(Reflect.has(tgt, 4));
|
| assertTrue(Reflect.has(tgt, "4"));
|
| assertTrue(Reflect.has(tgt, sym));
|
| - assertFalse(Reflect.has(tgt, "doesnotexist"));
|
| + assertTrue(Reflect.has(tgt, "noconf"));
|
| + assertTrue(Reflect.has(tgt, "getter"));
|
| + assertTrue(Reflect.has(tgt, "setter"));
|
| + assertFalse(Reflect.has(tgt, "foo"));
|
| assertFalse(Reflect.has(tgt, 666));
|
| +
|
| + let proto = tgt.__proto__;
|
| + tgt.__proto__ = { get foo() {return this.bla} };
|
| + assertEquals(true, Reflect.has(tgt, "foo"));
|
| + tgt.__proto__ = proto;
|
| }
|
| })();
|
|
|
| @@ -173,10 +214,17 @@ function prepare(tgt) {
|
| }
|
| assertTrue(Reflect.deleteProperty(tgt, sym));
|
| assertEquals(undefined, Object.getOwnPropertyDescriptor(tgt, sym));
|
| - assertTrue(Reflect.deleteProperty(tgt, "doesnotexist"));
|
| - assertTrue(Reflect.deleteProperty(tgt, 666));
|
| assertFalse(Reflect.deleteProperty(tgt, "noconf"));
|
| assertEquals(43, tgt.noconf);
|
| + assertTrue(Reflect.deleteProperty(tgt, "getter"));
|
| + assertTrue(Reflect.deleteProperty(tgt, "setter"));
|
| + assertTrue(Reflect.deleteProperty(tgt, "foo"));
|
| + assertTrue(Reflect.deleteProperty(tgt, 666));
|
| +
|
| + let proto = tgt.__proto__;
|
| + tgt.__proto__ = { get foo() {return this.bla} };
|
| + assertEquals(true, Reflect.deleteProperty(tgt, "foo"));
|
| + tgt.__proto__ = proto;
|
| }
|
| })();
|
|
|
|
|