summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/mirror-object.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/mirror-object.js')
-rw-r--r--deps/v8/test/mjsunit/mirror-object.js32
1 files changed, 28 insertions, 4 deletions
diff --git a/deps/v8/test/mjsunit/mirror-object.js b/deps/v8/test/mjsunit/mirror-object.js
index 834d7a580a..a46c41a3c9 100644
--- a/deps/v8/test/mjsunit/mirror-object.js
+++ b/deps/v8/test/mjsunit/mirror-object.js
@@ -200,10 +200,10 @@ assertFalse(math_mirror.property("E").canDelete());
// Test objects with JavaScript accessors.
o = {}
-o.__defineGetter__('a', function(){return 'a';});
-o.__defineSetter__('b', function(){});
-o.__defineGetter__('c', function(){throw 'c';});
-o.__defineSetter__('c', function(){throw 'c';});
+o.__defineGetter__('a', function (){return 'a';});
+o.__defineSetter__('b', function (){});
+o.__defineGetter__('c', function (){throw 'c';});
+o.__defineSetter__('c', function (){throw 'c';});
testObjectMirror(o, 'Object', 'Object');
mirror = debug.MakeMirror(o);
// a has getter but no setter.
@@ -265,3 +265,27 @@ assertEquals(Number, property_map["[[TargetFunction]]"].value().value());
assertTrue("[[BoundArgs]]" in property_map);
assertEquals("object", property_map["[[BoundArgs]]"].value().type());
assertEquals(1, property_map["[[BoundArgs]]"].value().value().length);
+
+// Test JSProxy internal properties.
+var target = {};
+var handler = {
+ get: function (target, name, receiver) {
+ return target[name];
+ },
+ set: function(target, name, value, receiver) {
+ target[name] = value;
+ return value;
+ }
+}
+ip = debug.ObjectMirror.GetInternalProperties(new Proxy(target, handler));
+assertEquals(3, ip.length);
+var property_map = {};
+for (var i = 0; i < ip.length; i++) {
+ property_map[ip[i].name()] = ip[i];
+}
+assertTrue("[[Target]]" in property_map);
+assertEquals(target, property_map["[[Target]]"].value().value());
+assertTrue("[[Handler]]" in property_map);
+assertEquals(handler, property_map["[[Handler]]"].value().value());
+assertTrue("[[IsRevoked]]" in property_map);
+assertEquals(false, property_map["[[IsRevoked]]"].value().value());