| Index: src/api.cc
 | 
| diff --git a/src/api.cc b/src/api.cc
 | 
| index e6833530041b9794dbd0c63f34e5c6e26d33d0e9..84c0be46c901a64bad6c9d859057028c84b7e264 100644
 | 
| --- a/src/api.cc
 | 
| +++ b/src/api.cc
 | 
| @@ -311,6 +311,61 @@ static inline i::Isolate* EnterIsolateIfNeeded() {
 | 
|  }
 | 
|  
 | 
|  
 | 
| +StartupData::CompressionAlgorithm V8::GetCompressedStartupDataAlgorithm() {
 | 
| +#ifdef COMPRESS_STARTUP_DATA_BZ2
 | 
| +  return StartupData::kBZip2;
 | 
| +#else
 | 
| +  return StartupData::kUncompressed;
 | 
| +#endif
 | 
| +}
 | 
| +
 | 
| +
 | 
| +enum CompressedStartupDataItems {
 | 
| +  kSnapshot = 0,
 | 
| +  kSnapshotContext,
 | 
| +  kCompressedStartupDataCount
 | 
| +};
 | 
| +
 | 
| +int V8::GetCompressedStartupDataCount() {
 | 
| +#ifdef COMPRESS_STARTUP_DATA_BZ2
 | 
| +  return kCompressedStartupDataCount;
 | 
| +#else
 | 
| +  return 0;
 | 
| +#endif
 | 
| +}
 | 
| +
 | 
| +
 | 
| +void V8::GetCompressedStartupData(StartupData* compressed_data) {
 | 
| +#ifdef COMPRESS_STARTUP_DATA_BZ2
 | 
| +  compressed_data[kSnapshot].data =
 | 
| +      reinterpret_cast<const char*>(i::Snapshot::data());
 | 
| +  compressed_data[kSnapshot].compressed_size = i::Snapshot::size();
 | 
| +  compressed_data[kSnapshot].raw_size = i::Snapshot::raw_size();
 | 
| +
 | 
| +  compressed_data[kSnapshotContext].data =
 | 
| +      reinterpret_cast<const char*>(i::Snapshot::context_data());
 | 
| +  compressed_data[kSnapshotContext].compressed_size =
 | 
| +      i::Snapshot::context_size();
 | 
| +  compressed_data[kSnapshotContext].raw_size = i::Snapshot::context_raw_size();
 | 
| +#endif
 | 
| +}
 | 
| +
 | 
| +
 | 
| +void V8::SetDecompressedStartupData(StartupData* decompressed_data) {
 | 
| +#ifdef COMPRESS_STARTUP_DATA_BZ2
 | 
| +  ASSERT_EQ(i::Snapshot::raw_size(), decompressed_data[kSnapshot].raw_size);
 | 
| +  i::Snapshot::set_raw_data(
 | 
| +      reinterpret_cast<const i::byte*>(decompressed_data[kSnapshot].data));
 | 
| +
 | 
| +  ASSERT_EQ(i::Snapshot::context_raw_size(),
 | 
| +            decompressed_data[kSnapshotContext].raw_size);
 | 
| +  i::Snapshot::set_context_raw_data(
 | 
| +      reinterpret_cast<const i::byte*>(
 | 
| +          decompressed_data[kSnapshotContext].data));
 | 
| +#endif
 | 
| +}
 | 
| +
 | 
| +
 | 
|  void V8::SetFatalErrorHandler(FatalErrorCallback that) {
 | 
|    i::Isolate* isolate = EnterIsolateIfNeeded();
 | 
|    isolate->set_exception_behavior(that);
 | 
| 
 |