summaryrefslogtreecommitdiff
path: root/deno2/from_snapshot.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deno2/from_snapshot.cc')
-rw-r--r--deno2/from_snapshot.cc18
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);