Reviewers: rossberg_google.com, Vyacheslav Egorov,

Description:
Fixed Object.getOwnPropertyDescriptor(string, index) to return descriptor's
enumerable property as true.
Now implementation matches results found in WebKit and FF.

Changed assertFalse() to assertTrue() in corresponding test.

ES5 description(step 9): http://es5.github.com/#x15.5.5.2

Original issue description: http://code.google.com/p/v8/issues/detail?id=862

Contributed by [email protected]

Please review this at https://chromiumcodereview.appspot.com/9429008/

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
  M     AUTHORS
  M     src/runtime.cc
  M     test/mjsunit/get-own-property-descriptor.js


Index: AUTHORS
===================================================================
--- AUTHORS     (revision 10785)
+++ AUTHORS     (working copy)
@@ -27,6 +27,7 @@
 Jay Freeman <[email protected]>
 Joel Stanley <[email protected]>
 John Jozwiak <[email protected]>
+Ioseb Dzmanashvili <[email protected]>
 Kun Zhang <[email protected]>
 Martyn Capewell <[email protected]>
 Matt Hanselman <[email protected]>
Index: src/runtime.cc
===================================================================
--- src/runtime.cc      (revision 10785)
+++ src/runtime.cc      (working copy)
@@ -1039,7 +1039,7 @@
         elms->set(IS_ACCESSOR_INDEX, heap->false_value());
         elms->set(VALUE_INDEX, *substr);
         elms->set(WRITABLE_INDEX, heap->false_value());
-        elms->set(ENUMERABLE_INDEX,  heap->false_value());
+        elms->set(ENUMERABLE_INDEX,  heap->true_value());
         elms->set(CONFIGURABLE_INDEX, heap->false_value());
         return *desc;
       }
Index: test/mjsunit/get-own-property-descriptor.js
===================================================================
--- test/mjsunit/get-own-property-descriptor.js (revision 10785)
+++ test/mjsunit/get-own-property-descriptor.js (working copy)
@@ -73,7 +73,8 @@
 var a = new String('foobar');
 for (var i = 0; i < a.length; i++) {
   var descStringObject = Object.getOwnPropertyDescriptor(a, i);
-  assertFalse(descStringObject.enumerable);
+ // according to http://es5.github.com/#x15.5.5.2 step 9 enumerable needs to be true
+  assertTrue(descStringObject.enumerable);
   assertFalse(descStringObject.configurable);
   assertFalse(descStringObject.writable);
   assertEquals(descStringObject.value, a.substring(i, i+1));


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to