在V8中,未指定的`Escape`d句柄会立即成为垃圾收集的目标吗?

时间:2018-03-18 23:14:33

标签: v8

有两个功能:一个名为make_a_handle Escape的句柄为EscapableHandleScope,另一个名为do_something的句柄有HandleScope。假设do_something函数调用make_a_handle,并且从不分配也不使用Escape d句柄;将Escape d句柄作为垃圾收集的目标立即,或直播,直到do_something的{​​{1}}被破坏为止?

1 个答案:

答案 0 :(得分:1)

后者。 EscapableHandleScope的{​​{1}}函数在内部使用“转义槽”,它基本上是外部Escape中的句柄。

为清楚起见,我还要指出,当HandleScope被破坏时,其句柄引用的对象(假设它是对它们的最后一个引用)将不会立即释放;它们只有资格进行垃圾收集,这意味着它们将在下一个垃圾收集周期中被释放。