| 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 | 
| } | 
|  | 
|  |