diff options
author | Michaël Zasso <targos@protonmail.com> | 2018-08-26 09:29:37 +0200 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2018-08-29 12:28:04 +0200 |
commit | 487c1e0816040a398fc4bfb26d0efd435e51f0c8 (patch) | |
tree | c6128804c3a4a6ccea30eb863052bf0c1c30253e /deps | |
parent | 25840529e31bfbdd6de6f527f1651e3e2cd22e69 (diff) | |
download | node-new-487c1e0816040a398fc4bfb26d0efd435e51f0c8.tar.gz |
deps: backport StackFrame::GetFrame with isolate
This overload was added in V8 6.9 and the one without isolate was
removed in V8 7.0.
Refs: https://github.com/v8/v8/commit/8a011b57d8b26e9cfe1c20a2ef26adb14be6ecc2
PR-URL: https://github.com/nodejs/node/pull/22531
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'deps')
-rw-r--r-- | deps/v8/include/v8.h | 4 | ||||
-rw-r--r-- | deps/v8/src/api.cc | 11 |
2 files changed, 11 insertions, 4 deletions
diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 362bece11f..0f1f74e6a1 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -1828,7 +1828,9 @@ class V8_EXPORT StackTrace { /** * Returns a StackFrame at a particular index. */ - Local<StackFrame> GetFrame(uint32_t index) const; + V8_DEPRECATE_SOON("Use Isolate version", + Local<StackFrame> GetFrame(uint32_t index) const); + Local<StackFrame> GetFrame(Isolate* isolate, uint32_t index) const; /** * Returns the number of StackFrames. diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 5f8f375200..3fec027b01 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -3023,15 +3023,20 @@ void Message::PrintCurrentStackTrace(Isolate* isolate, FILE* out) { // --- S t a c k T r a c e --- -Local<StackFrame> StackTrace::GetFrame(uint32_t index) const { - i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); +Local<StackFrame> StackTrace::GetFrame(Isolate* v8_isolate, + uint32_t index) const { + i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate); ENTER_V8_NO_SCRIPT_NO_EXCEPTION(isolate); - EscapableHandleScope scope(reinterpret_cast<Isolate*>(isolate)); + EscapableHandleScope scope(v8_isolate); auto obj = handle(Utils::OpenHandle(this)->get(index), isolate); auto info = i::Handle<i::StackFrameInfo>::cast(obj); return scope.Escape(Utils::StackFrameToLocal(info)); } +Local<StackFrame> StackTrace::GetFrame(uint32_t index) const { + i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); + return GetFrame(reinterpret_cast<Isolate*>(isolate), index); +} int StackTrace::GetFrameCount() const { return Utils::OpenHandle(this)->length(); |