| Index: runtime/vm/dart.cc | 
| diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc | 
| index d2cc5a8097139417f087c145b4e55a398df8e609..5e563ebf3424c0ccfe39f4a1ec2cc969f0fe6c51 100644 | 
| --- a/runtime/vm/dart.cc | 
| +++ b/runtime/vm/dart.cc | 
| @@ -50,6 +50,7 @@ ThreadPool* Dart::thread_pool_ = NULL; | 
| DebugInfo* Dart::pprof_symbol_generator_ = NULL; | 
| ReadOnlyHandles* Dart::predefined_handles_ = NULL; | 
| const uint8_t* Dart::instructions_snapshot_buffer_ = NULL; | 
| +const uint8_t* Dart::data_snapshot_buffer_ = NULL; | 
|  | 
| // Structure for managing read-only global handles allocation used for | 
| // creating global read-only handles that are pre created and initialized | 
| @@ -77,6 +78,7 @@ class ReadOnlyHandles { | 
|  | 
| const char* Dart::InitOnce(const uint8_t* vm_isolate_snapshot, | 
| const uint8_t* instructions_snapshot, | 
| +                           const uint8_t* data_snapshot, | 
| Dart_IsolateCreateCallback create, | 
| Dart_IsolateShutdownCallback shutdown, | 
| Dart_FileOpenCallback file_open, | 
| @@ -158,6 +160,8 @@ const char* Dart::InitOnce(const uint8_t* vm_isolate_snapshot, | 
| if (vm_isolate_snapshot != NULL) { | 
| if (instructions_snapshot != NULL) { | 
| vm_isolate_->SetupInstructionsSnapshotPage(instructions_snapshot); | 
| +        ASSERT(data_snapshot != NULL); | 
| +        vm_isolate_->SetupDataSnapshotPage(data_snapshot); | 
| } | 
| const Snapshot* snapshot = Snapshot::SetupFromBuffer(vm_isolate_snapshot); | 
| if (snapshot == NULL) { | 
| @@ -167,6 +171,7 @@ const char* Dart::InitOnce(const uint8_t* vm_isolate_snapshot, | 
| VmIsolateSnapshotReader reader(snapshot->content(), | 
| snapshot->length(), | 
| instructions_snapshot, | 
| +                                     data_snapshot, | 
| T); | 
| const Error& error = Error::Handle(reader.ReadVmIsolateSnapshot()); | 
| if (!error.IsNull()) { | 
| @@ -427,6 +432,7 @@ RawError* Dart::InitializeIsolate(const uint8_t* snapshot_buffer, void* data) { | 
| IsolateSnapshotReader reader(snapshot->content(), | 
| snapshot->length(), | 
| Dart::instructions_snapshot_buffer(), | 
| +                                 Dart::data_snapshot_buffer(), | 
| T); | 
| const Error& error = Error::Handle(reader.ReadFullSnapshot()); | 
| if (!error.IsNull()) { | 
|  |