summaryrefslogtreecommitdiff
path: root/libdeno/internal.h
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2018-10-24 01:12:13 -0400
committerRyan Dahl <ry@tinyclouds.org>2018-10-24 14:52:38 -0700
commit61cda728816b5916180f22d977ba741e2fadc8d9 (patch)
tree99e77029d5f3ffafff7c8ca0136169abcdaf8f7f /libdeno/internal.h
parent6afe94b3c855a8c486ce2a593cf2f8cac3b4d711 (diff)
libdeno: Expose snapshot creation.
Diffstat (limited to 'libdeno/internal.h')
-rw-r--r--libdeno/internal.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/libdeno/internal.h b/libdeno/internal.h
index d71b36048..6816debec 100644
--- a/libdeno/internal.h
+++ b/libdeno/internal.h
@@ -16,6 +16,7 @@ class DenoIsolate {
DenoIsolate(deno_buf snapshot, deno_recv_cb cb)
: isolate_(nullptr),
current_args_(nullptr),
+ snapshot_creator_(nullptr),
global_import_buf_ptr_(nullptr),
pending_promise_events_(0),
cb_(cb),
@@ -30,8 +31,8 @@ class DenoIsolate {
void AddIsolate(v8::Isolate* isolate);
v8::Isolate* isolate_;
- // Put v8::Isolate::CreateParams here..
const v8::FunctionCallbackInfo<v8::Value>* current_args_;
+ v8::SnapshotCreator* snapshot_creator_;
void* global_import_buf_ptr_;
int32_t pending_promise_events_;
deno_recv_cb cb_;
@@ -86,11 +87,13 @@ static intptr_t external_references[] = {
reinterpret_cast<intptr_t>(SetPromiseErrorExaminer),
0};
+static const deno_buf empty_buf = {nullptr, 0, nullptr, 0};
+
Deno* NewFromSnapshot(void* user_data, deno_recv_cb cb);
void InitializeContext(v8::Isolate* isolate, v8::Local<v8::Context> context,
- const char* js_filename, const std::string& js_source,
- const std::string* source_map);
+ const char* js_filename, const char* js_source,
+ const char* source_map);
void HandleException(v8::Local<v8::Context> context,
v8::Local<v8::Value> exception);
@@ -98,6 +101,9 @@ void HandleException(v8::Local<v8::Context> context,
void DeserializeInternalFields(v8::Local<v8::Object> holder, int index,
v8::StartupData payload, void* data);
+v8::StartupData SerializeInternalFields(v8::Local<v8::Object> holder, int index,
+ void* data);
+
v8::Local<v8::Uint8Array> ImportBuf(DenoIsolate* d, deno_buf buf);
void DeleteDataRef(DenoIsolate* d, int32_t req_id);