From cc2ae2d316b039ba599e3a8d3aed168ad7e77b10 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Mon, 18 Jun 2018 16:02:08 +0200 Subject: Snapshot clean ups - Don't call eval() in mock_runtime - not allowed - see js2c.py. - Don't use v8_use_external_startup_data - Move MakeSnapshot to snapshot_creator.cc - Use logging.h in from_snapshot.cc --- deno2/from_snapshot.cc | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'deno2/from_snapshot.cc') 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 // All rights reserved. MIT License. -#include #include #include #include #include #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 deserialized_data; void DeserializeInternalFields(v8::Local 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 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); -- cgit v1.2.3