Go to file
svenpanne@chromium.org 18ba22168e Handle CALLBACKS correctly in IsProperty functions.
With transitions in AccessorPairs, it is not enough to look at the PropertyType
alone to decide whether we look at a property or not: For objects with
JavaScript accessors, we have to look into the AccessorPair itself and see if
one of its 2 parts is actually a JavaScript accessor. Therefore, a predicate
with a PropertyType argument alone doesn't make sense anymore, we might need the
associated value, too.

Things are complicated by the fact that the holder in a LookupResult can be
NULL, so we must be careful to retrieve its value only when it is really
needed. To achieve the needed call-by-name semantics, a new Entry is introduced,
which is basically a closure over a DescriptorArray and an index into this array
(C++0x to the rescue!). GCC is clever enough to inline this class, so we pay no
runtime penalty for this abstraction.

It's all a bit ugly, but this is caused by the current structure of Descriptor,
DescriptorArray and LookupResult: Things would be much easier if DescriptorArray
were, well, an array of Descriptors, and LookupResult were a 'Maybe Descriptor'
(in Haskell-terms).

Review URL: https://chromiumcodereview.appspot.com/9466047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-28 07:16:50 +00:00
benchmarks Add Navier-Stokes benchmark. 2012-02-14 15:07:15 +00:00
build Rename static methods to avoid shadowing virtual methods 2012-02-17 12:59:58 +00:00
include Remove now unused CalculateExactRetainedSize function & co. 2012-02-27 15:42:36 +00:00
preparser Prevent segfault when preparser fails due to lack of argument. 2012-02-22 10:31:32 +00:00
samples Fix presubmit errors caused by updated depot tools 2011-09-08 19:57:14 +00:00
src Handle CALLBACKS correctly in IsProperty functions. 2012-02-28 07:16:50 +00:00
test Remove now unused CalculateExactRetainedSize function & co. 2012-02-27 15:42:36 +00:00
tools Make HashMap a template class to specify the allocation policy. 2012-02-23 09:12:57 +00:00
.gitignore Fix .gitignore for test data directories. 2012-02-20 13:17:20 +00:00
AUTHORS Allow the ZWJ and ZWNJ characters in IdentifierPart as per ES5. 2012-02-23 08:15:45 +00:00
ChangeLog Prepare push to trunk. Now working on version 3.9.12. 2012-02-27 11:44:53 +00:00
LICENSE Update LICENSE file 2012-01-03 16:38:42 +00:00
LICENSE.strongtalk Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.v8 Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.valgrind Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
Makefile Provide a switch to specify -fno-strict-aliasing 2012-01-18 10:17:03 +00:00
SConstruct Fix compilation with MinGW-w64. 2012-02-22 12:26:36 +00:00