Commit ca05c5a2 authored by Daniel Bevenius's avatar Daniel Bevenius Committed by V8 LUCI CQ

Add TryGetCurrent() method to v8::Isolate

This commit adds a TryGetCurrent() method to the v8::Isolate class.

The motivation for adding this method this is that in Node.js we've run
into situations where we need to check if there is a current
Isolate and we are using GetCurrent() for this. The issue is that for a
debug build of Node.js, the debug check in GetCurrent() will cause a
failure.

The suggestion in this changeset is to allow getting the current
Isolate, or null if one does not exist, without any checks.

Change-Id: I01676e4bcdbe86da0496f5df1982d14eb1c9ebf8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2910630Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75004}
parent 693e8614
...@@ -8645,6 +8645,14 @@ class V8_EXPORT Isolate { ...@@ -8645,6 +8645,14 @@ class V8_EXPORT Isolate {
*/ */
static Isolate* GetCurrent(); static Isolate* GetCurrent();
/**
* Returns the entered isolate for the current thread or NULL in
* case there is no current isolate.
*
* No checks are performed by this method.
*/
static Isolate* TryGetCurrent();
/** /**
* Clears the set of objects held strongly by the heap. This set of * Clears the set of objects held strongly by the heap. This set of
* objects are originally built when a WeakRef is created or * objects are originally built when a WeakRef is created or
......
...@@ -8248,6 +8248,11 @@ Isolate* Isolate::GetCurrent() { ...@@ -8248,6 +8248,11 @@ Isolate* Isolate::GetCurrent() {
return reinterpret_cast<Isolate*>(isolate); return reinterpret_cast<Isolate*>(isolate);
} }
Isolate* Isolate::TryGetCurrent() {
i::Isolate* isolate = i::Isolate::TryGetCurrent();
return reinterpret_cast<Isolate*>(isolate);
}
// static // static
Isolate* Isolate::Allocate() { Isolate* Isolate::Allocate() {
return reinterpret_cast<Isolate*>(i::Isolate::New()); return reinterpret_cast<Isolate*>(i::Isolate::New());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment