v8/test/cctest
adamk@chromium.org bf42ded40d 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

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-26 21:37:21 +00:00
..
cctest.cc Promote ArrayBuffer, DataView and typed arrays to non-experimental. 2013-08-20 13:55:52 +00:00
cctest.gyp Arm support for DoubleToIStub (truncating). 2013-08-26 12:24:03 +00:00
cctest.h Revert "Make GlobalHandle::NodeBlock deletable" 2013-08-14 12:40:44 +00:00
cctest.status Mark test-log/EquivalenceOfLoggingAndTraversal as flaky 2013-08-26 15:26:40 +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 js accessor creation on Template 2013-08-26 11:59:14 +00:00
test-alloc.cc Deprecate FACTORY helper macro. 2013-06-04 10:30:05 +00:00
test-api.cc Add RemovePrototype to FunctionTemplate 2013-08-26 17:40:03 +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 Rewrite SamplingCircularQueue 2013-08-23 08:22:07 +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-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 Deprecate CpuProfileNode::GetSelfSamplesCount 2013-08-26 08:10:10 +00:00
test-cpu-x64.cc Fix the CPU feature detection. 2013-08-26 09:37:39 +00:00
test-cpu.cc Fix the CPU feature detection. 2013-08-26 09:37:39 +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 Remove hacks for GC stress builders from cctests. 2013-08-23 11:10:03 +00:00
test-declarative-accessors.cc remove most uses of raw handle constructors 2013-06-13 09:27:09 +00:00
test-decls.cc remove all old style callbacks - patch 3 2013-06-20 12:28:27 +00:00
test-deoptimization.cc Rename "parallel recompilation" to "concurrent recompilation". 2013-08-22 16:14:37 +00:00
test-dictionary.cc Disable stress_compaction flag in several GC tests to meet test 2013-06-19 08:58:09 +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 fix 16316 debug check 2013-08-26 10:11:43 +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 Do not report unessential weak references in heap snapshot. 2013-07-17 18:23:16 +00:00
test-heap.cc Revert "Snapshot i18n Javascript code" and "Fix mjsunit/debug-script after r16298". 2013-08-26 17:00:58 +00:00
test-list.cc Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
test-liveedit.cc Get rid of ZoneScope completely. 2013-06-26 13:36:16 +00:00
test-lock.cc Revert the latest set of platform changes. 2013-07-31 07:51:46 +00:00
test-lockers.cc Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +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 --prof-auto flag 2013-07-26 13:18:56 +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 Cleanup and speedup MarkCompactCollector test case. 2013-08-23 11:04:25 +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-08-26 21:37:21 +00:00
test-parsing.cc Remove hacks for GC stress builders from cctests. 2013-08-23 11:10:03 +00:00
test-platform-linux.cc Revert the latest set of platform changes. 2013-07-31 07:51:46 +00:00
test-platform-macos.cc Add missing license headers. 2013-03-07 11:12:26 +00:00
test-platform-nullos.cc Revert the latest set of platform changes. 2013-07-31 07:51:46 +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 Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
test-profile-generator.cc Simplify sampling rate calculation 2013-07-30 07:01:16 +00:00
test-random.cc Deprecate FACTORY helper macro. 2013-06-04 10:30:05 +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-serialize.cc Remove unused counters 2013-06-19 16:50:38 +00:00
test-sockets.cc Add missing license headers. 2013-03-07 11:12:26 +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 Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
test-threads.cc Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +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 remove old MakeWeak 2013-06-03 08:17:04 +00:00
test-weaksets.cc ES6: Implement WeakSet 2013-07-22 08:32:24 +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