在 V8 中,未分配的 `Escape`d 句柄会立即成为垃圾收集的目标吗?
In V8, would a non-assigned `Escape`d handle be a target of garbage collection immediately?
有两个函数:一个叫做 make_a_handle
Escape
是一个带有 EscapableHandleScope
的句柄,另一个叫做 do_something
有它自己的 HandleScope
。假设 do_something
函数调用 make_a_handle
,并且从不分配或使用 Escape
d 句柄; Escape
d 句柄会成为垃圾收集的目标立即,还是live直到do_something
' s HandleScope
?
后者。 EscapableHandleScope
的 Escape
函数在内部使用 "escape slot",它本质上是外部 HandleScope
.
中的句柄
为清楚起见,我还想指出,当 HandleScope
被析构时,其句柄引用的对象(假设这是对它们的最后引用)不会立即被释放;它们只会有资格进行垃圾回收,这意味着它们将在下一个垃圾回收周期中被释放。
有两个函数:一个叫做 make_a_handle
Escape
是一个带有 EscapableHandleScope
的句柄,另一个叫做 do_something
有它自己的 HandleScope
。假设 do_something
函数调用 make_a_handle
,并且从不分配或使用 Escape
d 句柄; Escape
d 句柄会成为垃圾收集的目标立即,还是live直到do_something
' s HandleScope
?
后者。 EscapableHandleScope
的 Escape
函数在内部使用 "escape slot",它本质上是外部 HandleScope
.
为清楚起见,我还想指出,当 HandleScope
被析构时,其句柄引用的对象(假设这是对它们的最后引用)不会立即被释放;它们只会有资格进行垃圾回收,这意味着它们将在下一个垃圾回收周期中被释放。