v8/test/cctest
adamk@chromium.org b26d28d964 This patch implements optimized objectInfo structure which manages the set of observers associated with an object and the changeRecord types which they accept.
Observation in the normal case (Object.observe, default accept types, one observer) now allocates fewer objects and unobservation no longer needs to scan and splice an InternalArray -- making the combined speed of observe/unobserve about 200% faster.

This patch implements the following optimizations:

-objectInfo is initially created without any connected objects or arrays. The first observer is referenced directly by objectInfo, and when a second observer is added, changeObservers converts to a mapping of callbackPriority->observer, which allows for constant time registration/de-registration.

-observer.accept and objectInfo.performing are conceptually the same data-structure. This is now directly represented as an abstract "TypeMap" which can later be optimized to be a smi in common cases, (e.g:   https://codereview.chromium.org/19269007/).

-objectInfo observers are only represented by an object with an accept typeMap if the set of accept types is non-default

R=rossberg@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=16343

Review URL: https://codereview.chromium.org/19541010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 19:21:30 +00:00
..
cctest.cc Promote ArrayBuffer, DataView and typed arrays to non-experimental. 2013-08-20 13:55:52 +00:00
cctest.gyp Cleanup Socket class and remove it from the platform files. 2013-09-04 10:41:51 +00:00
cctest.h Cleanup Semaphore class. 2013-09-02 12:26:06 +00:00
cctest.status Cleanup Socket class and remove it from the platform files. 2013-09-04 10:41:51 +00:00
gay-fixed.cc Dtoa for fixed notation. 2010-05-05 13:51:27 +00:00
gay-fixed.h Dtoa for fixed notation. 2010-05-05 13:51:27 +00:00
gay-precision.cc Added precision mode to fast-dtoa. 2010-09-20 09:18:00 +00:00
gay-precision.h Added precision mode to fast-dtoa. 2010-09-20 09:18:00 +00:00
gay-shortest.cc Dtoa for fixed notation. 2010-05-05 13:51:27 +00:00
gay-shortest.h Dtoa for fixed notation. 2010-05-05 13:51:27 +00:00
log-eq-of-logging-and-traversal.js Fix test-log/EquivalenceOfLoggingAndTraversal 2013-08-26 14:56:23 +00:00
test-accessors.cc Push SetAccessor to Template 2013-09-04 07:45:36 +00:00
test-alloc.cc thread isolate in accessors.cc 2013-09-02 09:25:20 +00:00
test-api.cc remove Isolate::Current from most files starting with 'o' through 'r' 2013-09-04 07:05:11 +00:00
test-assembler-arm.cc Fix a crash when generating forward jumps to labels at very high assembly offsets 2013-08-01 08:13:08 +00:00
test-assembler-ia32.cc Revert new OS and CC detection and related changes since r15923. 2013-07-29 12:12:39 +00:00
test-assembler-mips.cc MIPS: Fix cctest/test-assembler-mips on MIPS32R1 architecture. 2013-06-19 17:15:21 +00:00
test-assembler-x64.cc Revert new OS and CC detection and related changes since r15923. 2013-07-29 12:12:39 +00:00
test-ast.cc Get rid of ZoneScope completely. 2013-06-26 13:36:16 +00:00
test-bignum-dtoa.cc Fix X64 compilation on Windows. 2011-02-03 11:13:04 +00:00
test-bignum.cc Bignum implementation of Strtod. 2010-11-08 11:49:47 +00:00
test-circular-queue.cc Cleanup Semaphore class. 2013-09-02 12:26:06 +00:00
test-code-stubs-arm.cc Arm support for DoubleToIStub (truncating). 2013-08-26 12:24:03 +00:00
test-code-stubs-ia32.cc Fix bug in test-code-stubs-x64 which meant not all registers were being checked. 2013-08-16 11:29:54 +00:00
test-code-stubs-x64.cc Fix bug in test-code-stubs-x64 which meant not all registers were being checked. 2013-08-16 11:29:54 +00:00
test-code-stubs.cc Fix NaCl build after r16322. 2013-08-26 13:37:01 +00:00
test-code-stubs.h Arm support for DoubleToIStub (truncating). 2013-08-26 12:24:03 +00:00
test-compiler.cc Pipe a script's CORS status through V8 during compilation. 2013-07-30 17:05:50 +00:00
test-condition-variable.cc Improve cctest/test-condition-variable. 2013-09-03 11:27:02 +00:00
test-conversions.cc Add support for explicit octal and binary integer literals 2013-07-19 09:57:35 +00:00
test-cpu-ia32.cc Fix the CPU feature detection. 2013-08-26 09:37:39 +00:00
test-cpu-profiler.cc Reland^2 "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class." 2013-08-29 09:15:13 +00:00
test-cpu-x64.cc Fix the CPU feature detection. 2013-08-26 09:37:39 +00:00
test-cpu.cc Replace OS::NumberOfCores() with CPU::NumberOfProcessorsOnline(). 2013-08-28 12:32:56 +00:00
test-dataflow.cc Get rid of ZoneScope completely. 2013-06-26 13:36:16 +00:00
test-date.cc Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
test-debug.cc Fix race conditions in cctest/test-debug. 2013-09-04 10:47:09 +00:00
test-declarative-accessors.cc Push SetAccessor to Template 2013-09-04 07:45:36 +00:00
test-decls.cc Deprecate Persistent functions which were marked to be deprecated. 2013-09-03 07:34:34 +00:00
test-deoptimization.cc Move global V8::UseCrankshaft() into the Isolate. 2013-09-03 08:49:44 +00:00
test-dictionary.cc Handlify JSObject::SetIdentityHash method. 2013-08-30 13:42:16 +00:00
test-disasm-arm.cc ARM: Make double registers low/high safe 2013-07-25 15:04:38 +00:00
test-disasm-ia32.cc Fix the CPU feature detection. 2013-08-26 09:37:39 +00:00
test-disasm-mips.cc Unify the way cctest initalizes the VM for each test case. 2013-04-10 08:29:39 +00:00
test-disasm-x64.cc Drop unused rdtsc instruction. 2013-08-22 11:58:20 +00:00
test-diy-fp.cc Add missing license headers. 2013-03-07 11:12:26 +00:00
test-double.cc Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
test-dtoa.cc Fix compilation on 64-bit Windows, update Visual Studio projects. 2011-02-03 13:29:10 +00:00
test-fast-dtoa.cc Add missing license headers. 2013-03-07 11:12:26 +00:00
test-fixed-dtoa.cc Dtoa for fixed notation. 2010-05-05 13:51:27 +00:00
test-flags.cc Ensure removing processed command line arguments. 2012-06-13 15:02:05 +00:00
test-func-name-inference.cc Deprecate FACTORY helper macro. 2013-06-04 10:30:05 +00:00
test-global-handles.cc invert Eternal::IsEmpty logic 2013-09-04 08:19:14 +00:00
test-global-object.cc remove most uses of raw handle constructors 2013-06-13 09:27:09 +00:00
test-hashing.cc Clean up the usage of V8_TARGET_ARCH_${arch} and V8_HOST_ARCH_${arch} 2013-06-28 15:34:48 +00:00
test-hashmap.cc Make the hash map test run faster by doing less work. 2009-05-15 13:49:00 +00:00
test-heap-profiler.cc Deprecate Persistent functions which were marked to be deprecated. 2013-09-03 07:34:34 +00:00
test-heap.cc remove Isolate::Current from most files starting with 'o' through 'r' 2013-09-04 07:05:11 +00:00
test-list.cc revert thread isolate in PreallocatedStorageAllocationPolicy 2013-09-02 11:39:23 +00:00
test-liveedit.cc Get rid of ZoneScope completely. 2013-06-26 13:36:16 +00:00
test-lockers.cc Cleanup Semaphore class. 2013-09-02 12:26:06 +00:00
test-log-stack-tracer.cc Support idle time in CPU profiler 2013-08-07 17:04:27 +00:00
test-log.cc Remove obsolete global V8::IsRunning() predicate. 2013-09-02 17:06:08 +00:00
test-macro-assembler-x64.cc Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
test-mark-compact.cc Deprecate Persistent functions which were marked to be deprecated. 2013-09-03 07:34:34 +00:00
test-mutex.cc Cleanup Mutex and related classes. 2013-08-29 09:58:30 +00:00
test-object-observe.cc This patch implements optimized objectInfo structure which manages the set of observers associated with an object and the changeRecord types which they accept. 2013-09-04 19:21:30 +00:00
test-parsing.cc remove Isolate::Current from most files starting with 'o' through 'r' 2013-09-04 07:05:11 +00:00
test-platform-linux.cc Import ConditionVariable class. 2013-09-03 07:30:01 +00:00
test-platform-macos.cc Add missing license headers. 2013-03-07 11:12:26 +00:00
test-platform-tls.cc Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
test-platform-win32.cc Make gyp work with MingW32 2013-04-15 08:33:31 +00:00
test-platform.cc Replace OS::NumberOfCores() with CPU::NumberOfProcessorsOnline(). 2013-08-28 12:32:56 +00:00
test-profile-generator.cc Remove implementation of CpuProfileNode methods deprecated in v8 3.20 2013-08-27 15:12:04 +00:00
test-random.cc Move global V8::UseCrankshaft() into the Isolate. 2013-09-03 08:49:44 +00:00
test-regexp.cc Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
test-reloc-info.cc Merge experimental/gc branch to the bleeding_edge. 2011-09-19 18:36:47 +00:00
test-semaphore.cc Fix Mac llvm-gcc42 build after commit r16473. 2013-09-02 12:36:08 +00:00
test-serialize.cc build fix for 16507 2013-09-03 12:33:52 +00:00
test-socket.cc Cleanup Socket class and remove it from the platform files. 2013-09-04 10:41:51 +00:00
test-spaces.cc Use MemoryChunk-based allocation for deoptimization entry code 2013-01-29 09:09:55 +00:00
test-strings.cc Revert "Make GlobalHandle::NodeBlock deletable" 2013-08-14 12:40:44 +00:00
test-strtod.cc Add missing license headers. 2013-03-07 11:12:26 +00:00
test-symbols.cc remove most V8_ALLOW_ACCESS_TO_* defines from test classes 2013-05-28 11:54:52 +00:00
test-thread-termination.cc Cleanup Semaphore class. 2013-09-02 12:26:06 +00:00
test-threads.cc Cleanup Semaphore class. 2013-09-02 12:26:06 +00:00
test-time.cc Cleanup Semaphore class. 2013-09-02 12:26:06 +00:00
test-types.cc Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
test-unbound-queue.cc Add missing license headers. 2013-03-07 11:12:26 +00:00
test-utils.cc Replace OS::MemCopy with OS::MemMove (just as fast but more flexible). 2013-04-16 12:30:51 +00:00
test-version.cc Update V8 to version 3.0 (re-land r5920). 2010-12-07 11:31:57 +00:00
test-weakmaps.cc Deprecate Persistent functions which were marked to be deprecated. 2013-09-03 07:34:34 +00:00
test-weaksets.cc Deprecate Persistent functions which were marked to be deprecated. 2013-09-03 07:34:34 +00:00
test-weaktypedarrays.cc API for DataView. 2013-06-24 11:23:50 +00:00
testcfg.py Remove SCons related files 2013-04-18 11:01:14 +00:00