| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index ecd5101e5ef4b4d5c6f27489a4845758c641ebdb..2ae40dd34f789e5700d5fc5be5c341671b7b8aad 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -38,6 +38,7 @@
|
| #include "global-handles.h"
|
| #include "heap-profiler.h"
|
| #include "messages.h"
|
| +#include "natives.h"
|
| #include "parser.h"
|
| #include "platform.h"
|
| #include "profile-generator-inl.h"
|
| @@ -323,6 +324,8 @@ StartupData::CompressionAlgorithm V8::GetCompressedStartupDataAlgorithm() {
|
| enum CompressedStartupDataItems {
|
| kSnapshot = 0,
|
| kSnapshotContext,
|
| + kLibraries,
|
| + kExperimentalLibraries,
|
| kCompressedStartupDataCount
|
| };
|
|
|
| @@ -347,6 +350,21 @@ void V8::GetCompressedStartupData(StartupData* compressed_data) {
|
| compressed_data[kSnapshotContext].compressed_size =
|
| i::Snapshot::context_size();
|
| compressed_data[kSnapshotContext].raw_size = i::Snapshot::context_raw_size();
|
| +
|
| + i::Vector<const i::byte> libraries_source = i::Natives::GetScriptsSource();
|
| + compressed_data[kLibraries].data =
|
| + reinterpret_cast<const char*>(libraries_source.start());
|
| + compressed_data[kLibraries].compressed_size = libraries_source.length();
|
| + compressed_data[kLibraries].raw_size = i::Natives::GetRawScriptsSize();
|
| +
|
| + i::Vector<const i::byte> exp_libraries_source =
|
| + i::ExperimentalNatives::GetScriptsSource();
|
| + compressed_data[kExperimentalLibraries].data =
|
| + reinterpret_cast<const char*>(exp_libraries_source.start());
|
| + compressed_data[kExperimentalLibraries].compressed_size =
|
| + exp_libraries_source.length();
|
| + compressed_data[kExperimentalLibraries].raw_size =
|
| + i::ExperimentalNatives::GetRawScriptsSize();
|
| #endif
|
| }
|
|
|
| @@ -362,6 +380,20 @@ void V8::SetDecompressedStartupData(StartupData* decompressed_data) {
|
| i::Snapshot::set_context_raw_data(
|
| reinterpret_cast<const i::byte*>(
|
| decompressed_data[kSnapshotContext].data));
|
| +
|
| + ASSERT_EQ(i::Natives::GetRawScriptsSize(),
|
| + decompressed_data[kLibraries].raw_size);
|
| + i::Vector<const char> libraries_source(
|
| + decompressed_data[kLibraries].data,
|
| + decompressed_data[kLibraries].raw_size);
|
| + i::Natives::SetRawScriptsSource(libraries_source);
|
| +
|
| + ASSERT_EQ(i::ExperimentalNatives::GetRawScriptsSize(),
|
| + decompressed_data[kExperimentalLibraries].raw_size);
|
| + i::Vector<const char> exp_libraries_source(
|
| + decompressed_data[kExperimentalLibraries].data,
|
| + decompressed_data[kExperimentalLibraries].raw_size);
|
| + i::ExperimentalNatives::SetRawScriptsSource(exp_libraries_source);
|
| #endif
|
| }
|
|
|
|
|