https://codereview.chromium.org/649603003/diff/390001/src/objects.cc
File src/objects.cc (left):
https://codereview.chromium.org/649603003/diff/390001/src/objects.cc#oldcode4871
src/objects.cc:4871: if (!GetOwnElementAccessorPair(object,
index).is_null()) {
These cases actually only blacklist accessor pairs. The other accessors
look like data properties to JS, so have to be read.
(I don't think we ever have non-accessorpair indexed callbacks, but for
completeness ...)
https://codereview.chromium.org/649603003/diff/390001/src/objects.cc
File src/objects.cc (right):
https://codereview.chromium.org/649603003/diff/390001/src/objects.cc#newcode856
src/objects.cc:856: if (accessor->GetStructure(receiver, js_object,
index)
Come to think about it, you also only want to call the setter on the
prototype chain if it's an AccessorPair (or currently
ExecutableAccessorInfo). ExecutableAccessorInfos are changing because
they are incorrect, they are supposed to behave like data properties.
I'm pretty sure we never have those anyway as elements. So I'm not sure
it's really worthwhile to replace GetAccessorPair by GetStructure.
It also causes confusion for the others where you changed it. You aren't
supposed to blacklist non-AccessorPair callbacks.
https://codereview.chromium.org/649603003/diff/390001/src/objects.h
File src/objects.h (right):
https://codereview.chromium.org/649603003/diff/390001/src/objects.h#newcode2268
src/objects.h:2268: // interceptor, and this fucntion returns ABSENT.
typo: function
https://codereview.chromium.org/649603003/
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.