diff options
Diffstat (limited to 'deno2/from_snapshot.cc')
-rw-r--r-- | deno2/from_snapshot.cc | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/deno2/from_snapshot.cc b/deno2/from_snapshot.cc index 5f954dc09..97d5885a9 100644 --- a/deno2/from_snapshot.cc +++ b/deno2/from_snapshot.cc @@ -1,31 +1,29 @@ // Copyright 2018 Ryan Dahl <ry@tinyclouds.org> // All rights reserved. MIT License. -#include <assert.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <string> #include "v8/include/v8.h" +#include "v8/src/base/logging.h" #include "./deno_internal.h" #include "include/deno.h" -namespace deno { - #ifdef DENO_MOCK_RUNTIME -#include "natives_mock_runtime.cc" #include "snapshot_mock_runtime.cc" #else -#include "natives_deno.cc" #include "snapshot_deno.cc" #endif +namespace deno { + std::vector<InternalFieldData*> deserialized_data; void DeserializeInternalFields(v8::Local<v8::Object> holder, int index, v8::StartupData payload, void* data) { - assert(data == nullptr); // TODO(ry) pass Deno* object here. + DCHECK_EQ(data, nullptr); if (payload.raw_size == 0) { holder->SetAlignedPointerInInternalField(index, nullptr); return; @@ -37,13 +35,6 @@ void DeserializeInternalFields(v8::Local<v8::Object> holder, int index, } Deno* NewFromSnapshot(void* data, deno_sub_cb cb) { - auto natives_blob = *StartupBlob_natives(); - auto snapshot_blob = *StartupBlob_snapshot(); - - v8::V8::SetNativesDataBlob(&natives_blob); - v8::V8::SetSnapshotDataBlob(&snapshot_blob); - v8::DeserializeInternalFieldsCallback(DeserializeInternalFields, nullptr); - Deno* d = new Deno; d->currentArgs = nullptr; d->cb = cb; @@ -52,6 +43,7 @@ Deno* NewFromSnapshot(void* data, deno_sub_cb cb) { params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator(); params.external_references = external_references; + params.snapshot_blob = StartupBlob_snapshot(); v8::Isolate* isolate = v8::Isolate::New(params); AddIsolate(d, isolate); |