Make intercepted properties retrievable only by getter to be not enumerable.
authorantonm@chromium.org <antonm@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 28 May 2010 11:54:58 +0000 (11:54 +0000)
committerantonm@chromium.org <antonm@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 28 May 2010 11:54:58 +0000 (11:54 +0000)
commitebba43f37adc151b1b72f0760d6fc25989408d7d
tree6c01d4a7420a5cfc32f684b7091d38a3711b72ae
parent7e460811b9ed369993738d13548a7622d031ab81
Make intercepted properties retrievable only by getter to be not enumerable.

Currently if there is no query callback, V8 finds out intercepted properties'
attributes using getter: if getter returns not empty handle V8 treats
such a property as property with NONE attribues which means this property
is enumerable.

However, if there is no enumerator, this property cannot be enumerated.
Thus I think we should treat such properties as not enumerable.

Drawback of this approach is now one has to implement both query and enumerator
callbacks to implement enumerable intercepted properties.

BUG=725

Review URL: http://codereview.chromium.org/2270005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/objects.cc
test/cctest/test-api.cc