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