From d93e64039ef355e59c65f6208f63e324cdeecf30 Mon Sep 17 00:00:00 2001 From: Irina Yatsenko Date: Fri, 20 Jul 2018 08:28:26 -0700 Subject: [PATCH] Added EmbedderGraph stubs to chakrashim --- deps/chakrashim/include/v8-profiler.h | 32 +++++++++++++++++++++++++++ deps/chakrashim/include/v8.h | 3 ++- deps/chakrashim/src/v8name.cc | 4 ++++ deps/chakrashim/src/v8object.cc | 4 ++++ deps/chakrashim/src/v8value.cc | 5 +++++ 5 files changed, 47 insertions(+), 1 deletion(-) diff --git a/deps/chakrashim/include/v8-profiler.h b/deps/chakrashim/include/v8-profiler.h index f703733172e..cb885c549b6 100644 --- a/deps/chakrashim/include/v8-profiler.h +++ b/deps/chakrashim/include/v8-profiler.h @@ -80,6 +80,32 @@ class V8_EXPORT ActivityControl { // NOLINT virtual ControlOption ReportProgressValue(int done, int total) = 0; }; +// NOT IMPLEMENTED +class V8_EXPORT EmbedderGraph { + public: + class Node { + public: + Node() = default; + virtual ~Node() = default; + virtual const char* Name() { return nullptr; }; + virtual size_t SizeInBytes() { return 0; } + virtual Node* WrapperNode() { return nullptr; } + virtual bool IsRootNode() { return false; } + virtual bool IsEmbedderNode() { return true; } + virtual const char* NamePrefix() { return nullptr; } + + private: + Node(const Node&) = delete; + Node& operator=(const Node&) = delete; + }; + + virtual Node* V8Node(const v8::Local& value) { return nullptr; } + virtual Node* AddNode(std::unique_ptr node) { return nullptr; } + virtual void AddEdge(Node* from, Node* to) {}; + + virtual ~EmbedderGraph() = default; +}; + // NOT IMPLEMENTED class V8_EXPORT HeapProfiler { public: @@ -103,6 +129,12 @@ class V8_EXPORT HeapProfiler { void SetWrapperClassInfoProvider( uint16_t class_id, WrapperInfoCallback callback) {} void StartTrackingHeapObjects(bool track_allocations = false) {} + + typedef void (*BuildEmbedderGraphCallback)(v8::Isolate* isolate, + v8::EmbedderGraph* graph, + void* data); + void AddBuildEmbedderGraphCallback(BuildEmbedderGraphCallback callback, void* data) {} + void RemoveBuildEmbedderGraphCallback(BuildEmbedderGraphCallback callback, void* data) {} }; // NOT IMPLEMENTED diff --git a/deps/chakrashim/include/v8.h b/deps/chakrashim/include/v8.h index d9376063100..d99564d2b97 100644 --- a/deps/chakrashim/include/v8.h +++ b/deps/chakrashim/include/v8.h @@ -1192,7 +1192,7 @@ class V8_EXPORT Value : public Data { Handle that) const; bool StrictEquals(Handle that) const; - + bool SameValue(Local that) const; template static Value* Cast(T* value) { return static_cast(value); } @@ -1600,6 +1600,7 @@ class V8_EXPORT Object : public Value { Maybe DeletePrivate(Local context, Local key); MaybeLocal GetPrivate(Local context, Local key); + int GetIdentityHash(); Local Clone(); Local CreationContext(); diff --git a/deps/chakrashim/src/v8name.cc b/deps/chakrashim/src/v8name.cc index e204f6bc268..1c876f2b9d1 100644 --- a/deps/chakrashim/src/v8name.cc +++ b/deps/chakrashim/src/v8name.cc @@ -22,6 +22,10 @@ namespace v8 { +int Name::GetIdentityHash() { + return 0; +} + Name* Name::Cast(v8::Value* obj) { CHAKRA_ASSERT(obj->IsName()); return static_cast(obj); diff --git a/deps/chakrashim/src/v8object.cc b/deps/chakrashim/src/v8object.cc index 759098ae519..41924ffb066 100644 --- a/deps/chakrashim/src/v8object.cc +++ b/deps/chakrashim/src/v8object.cc @@ -769,6 +769,10 @@ void Object::SetAlignedPointerInInternalField(int index, void* value) { } } +int Object::GetIdentityHash() { + return 0; +} + Local Object::Clone() { JsValueRef constructor; if (jsrt::GetObjectConstructor((JsValueRef)this, diff --git a/deps/chakrashim/src/v8value.cc b/deps/chakrashim/src/v8value.cc index 43e8154863c..f6a52300715 100644 --- a/deps/chakrashim/src/v8value.cc +++ b/deps/chakrashim/src/v8value.cc @@ -411,4 +411,9 @@ bool Value::StrictEquals(Handle that) const { return strictEquals; } +bool Value::SameValue(Local that) const { + CHAKRA_UNIMPLEMENTED(); + return false; +} + } // namespace v8