diff options
Diffstat (limited to 'deps/v8/test/mjsunit/mirror-object.js')
-rw-r--r-- | deps/v8/test/mjsunit/mirror-object.js | 32 |
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()); |