Fix remaining issues in the custom snapshot.
authoryangguo <yangguo@chromium.org>
Thu, 15 Jan 2015 11:22:04 +0000 (03:22 -0800)
committerCommit bot <commit-bot@chromium.org>
Thu, 15 Jan 2015 11:22:17 +0000 (11:22 +0000)
commit22e6958d63c56b332ed6e3a379e3bed25be2d1bf
tree8460348d58e101fb0e2ec037233fb0c85643bb3a
parent1a5db24e6bf831e61e3f4aa0c252f77e48c3689c
Fix remaining issues in the custom snapshot.

Math functions:
Some Math functions require typed arrays for their implementation. The embedded
script may call those Math functions. The serializer needs to deal with this.
Added assertion to make sure no other typed array is created when snapshotting.

Number-string cache:
We assume that the initial snapshot does not expand the number-string cache.
This is no longer true for custom heap snapshots.

Bound functions:
Bound functions store the bound arguments in a COW fixed array, including the
bindee function. COW arrays are serialized into the startup snapshot and
referenced in the partial snapshot via partial snapshot cache. However, the
bindee function is context-dependent and must not be part of the startup
snapshot. There is no need for bound functions to use a COW array though.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26072}
src/bootstrapper.cc
src/factory.cc
src/heap/heap.h
src/objects-inl.h
src/runtime/runtime-function.cc
src/runtime/runtime-typedarray.cc
src/serialize.cc
test/cctest/cctest.h
test/cctest/test-heap-profiler.cc
test/cctest/test-heap.cc
test/cctest/test-serialize.cc