From ff48eca5403140b134a3e6a772ffb6f8905fae3e Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Sun, 10 Jun 2018 05:34:03 +0200 Subject: Expose deno::from_snapshot() constructor --- deno2/deno_internal.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 deno2/deno_internal.h (limited to 'deno2/deno_internal.h') diff --git a/deno2/deno_internal.h b/deno2/deno_internal.h new file mode 100644 index 000000000..d125f39b1 --- /dev/null +++ b/deno2/deno_internal.h @@ -0,0 +1,32 @@ +// Copyright 2018 Ryan Dahl +// All rights reserved. MIT License. +#ifndef DENO_INTERNAL_H_ +#define DENO_INTERNAL_H_ + +#include +#include "include/deno.h" +#include "v8/include/v8.h" + +namespace deno { + +void Print(const v8::FunctionCallbackInfo& args); +void Recv(const v8::FunctionCallbackInfo& args); +void Send(const v8::FunctionCallbackInfo& args); +static intptr_t external_references[] = {reinterpret_cast(Print), + reinterpret_cast(Recv), + reinterpret_cast(Send), 0}; + +// deno_s = Wrapped Isolate. +struct deno_s { + v8::Isolate* isolate; + std::string last_exception; + v8::Persistent recv; + v8::Persistent context; + RecvCallback cb; + void* data; +}; + +void deno_add_isolate(Deno* d, v8::Isolate* isolate); + +} // namespace deno +#endif // DENO_INTERNAL_H_ -- cgit v1.2.3 From a6880dad6534ee9e1637c5098698cf32a4f1527e Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Sun, 10 Jun 2018 13:17:04 +0200 Subject: make_snapshot should be private Now deno.h doesn't export v8.h and is self contained. --- deno2/deno_internal.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'deno2/deno_internal.h') diff --git a/deno2/deno_internal.h b/deno2/deno_internal.h index d125f39b1..35a20bdc0 100644 --- a/deno2/deno_internal.h +++ b/deno2/deno_internal.h @@ -16,6 +16,10 @@ static intptr_t external_references[] = {reinterpret_cast(Print), reinterpret_cast(Recv), reinterpret_cast(Send), 0}; +v8::StartupData make_snapshot(v8::StartupData* prev_natives_blob, + v8::StartupData* prev_snapshot_blob, + const char* js_filename, const char* js_source); + // deno_s = Wrapped Isolate. struct deno_s { v8::Isolate* isolate; -- cgit v1.2.3 From 9296b21b87eec3f01bee465fcb2b64c4ea14514b Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Sun, 10 Jun 2018 14:18:15 +0200 Subject: Use C linkage in deno.h --- deno2/deno_internal.h | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'deno2/deno_internal.h') diff --git a/deno2/deno_internal.h b/deno2/deno_internal.h index 35a20bdc0..92f891af3 100644 --- a/deno2/deno_internal.h +++ b/deno2/deno_internal.h @@ -7,18 +7,7 @@ #include "include/deno.h" #include "v8/include/v8.h" -namespace deno { - -void Print(const v8::FunctionCallbackInfo& args); -void Recv(const v8::FunctionCallbackInfo& args); -void Send(const v8::FunctionCallbackInfo& args); -static intptr_t external_references[] = {reinterpret_cast(Print), - reinterpret_cast(Recv), - reinterpret_cast(Send), 0}; - -v8::StartupData make_snapshot(v8::StartupData* prev_natives_blob, - v8::StartupData* prev_snapshot_blob, - const char* js_filename, const char* js_source); +extern "C" { // deno_s = Wrapped Isolate. struct deno_s { @@ -29,8 +18,24 @@ struct deno_s { RecvCallback cb; void* data; }; +} + +namespace deno { + +void Print(const v8::FunctionCallbackInfo& args); +void Recv(const v8::FunctionCallbackInfo& args); +void Send(const v8::FunctionCallbackInfo& args); +static intptr_t external_references[] = {reinterpret_cast(Print), + reinterpret_cast(Recv), + reinterpret_cast(Send), 0}; + +Deno* NewFromSnapshot(void* data, RecvCallback cb); + +v8::StartupData MakeSnapshot(v8::StartupData* prev_natives_blob, + v8::StartupData* prev_snapshot_blob, + const char* js_filename, const char* js_source); -void deno_add_isolate(Deno* d, v8::Isolate* isolate); +void AddIsolate(Deno* d, v8::Isolate* isolate); } // namespace deno #endif // DENO_INTERNAL_H_ -- cgit v1.2.3 From 2791a49ecff8f1ec0f83e4df8167dd545173b916 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Mon, 11 Jun 2018 16:48:21 +0200 Subject: s/RecvCallback/deno_recv_cb/g --- deno2/deno_internal.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'deno2/deno_internal.h') diff --git a/deno2/deno_internal.h b/deno2/deno_internal.h index 92f891af3..8472f4264 100644 --- a/deno2/deno_internal.h +++ b/deno2/deno_internal.h @@ -8,14 +8,13 @@ #include "v8/include/v8.h" extern "C" { - // deno_s = Wrapped Isolate. struct deno_s { v8::Isolate* isolate; std::string last_exception; v8::Persistent recv; v8::Persistent context; - RecvCallback cb; + deno_recv_cb cb; void* data; }; } @@ -29,7 +28,7 @@ static intptr_t external_references[] = {reinterpret_cast(Print), reinterpret_cast(Recv), reinterpret_cast(Send), 0}; -Deno* NewFromSnapshot(void* data, RecvCallback cb); +Deno* NewFromSnapshot(void* data, deno_recv_cb cb); v8::StartupData MakeSnapshot(v8::StartupData* prev_natives_blob, v8::StartupData* prev_snapshot_blob, -- cgit v1.2.3 From 2443f7efee9c04f9331743a5e7ca5c71396f2004 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Mon, 11 Jun 2018 19:18:53 +0200 Subject: Use pub/sub instead of send/recv --- deno2/deno_internal.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'deno2/deno_internal.h') diff --git a/deno2/deno_internal.h b/deno2/deno_internal.h index 8472f4264..52c1770f6 100644 --- a/deno2/deno_internal.h +++ b/deno2/deno_internal.h @@ -12,9 +12,9 @@ extern "C" { struct deno_s { v8::Isolate* isolate; std::string last_exception; - v8::Persistent recv; + v8::Persistent sub; v8::Persistent context; - deno_recv_cb cb; + deno_sub_cb cb; void* data; }; } @@ -22,13 +22,13 @@ struct deno_s { namespace deno { void Print(const v8::FunctionCallbackInfo& args); -void Recv(const v8::FunctionCallbackInfo& args); -void Send(const v8::FunctionCallbackInfo& args); +void Sub(const v8::FunctionCallbackInfo& args); +void Pub(const v8::FunctionCallbackInfo& args); static intptr_t external_references[] = {reinterpret_cast(Print), - reinterpret_cast(Recv), - reinterpret_cast(Send), 0}; + reinterpret_cast(Sub), + reinterpret_cast(Pub), 0}; -Deno* NewFromSnapshot(void* data, deno_recv_cb cb); +Deno* NewFromSnapshot(void* data, deno_sub_cb cb); v8::StartupData MakeSnapshot(v8::StartupData* prev_natives_blob, v8::StartupData* prev_snapshot_blob, -- cgit v1.2.3 From 7784cc2c1537a23b8b8ffa634b1a9b1ddf88886a Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Tue, 12 Jun 2018 06:36:01 +0200 Subject: Fix protobufjs snapshotting. --- deno2/deno_internal.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'deno2/deno_internal.h') diff --git a/deno2/deno_internal.h b/deno2/deno_internal.h index 52c1770f6..82c537582 100644 --- a/deno2/deno_internal.h +++ b/deno2/deno_internal.h @@ -21,6 +21,10 @@ struct deno_s { namespace deno { +struct InternalFieldData { + uint32_t data; +}; + void Print(const v8::FunctionCallbackInfo& args); void Sub(const v8::FunctionCallbackInfo& args); void Pub(const v8::FunctionCallbackInfo& args); -- cgit v1.2.3