Commit 4e1544bc authored by Shu-yu Guo's avatar Shu-yu Guo Committed by Commit Bot

[weakrefs] Fix [[KeptObjects]] assertion for only when a microtask checkpoint is performed

Bug: chromium:1073263
Change-Id: I5c054e34242a91dafd6788814a39e97075d1035d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2160019Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67319}
parent 3a8feabf
......@@ -328,6 +328,7 @@ class CallDepthScope {
bool CheckKeptObjectsClearedAfterMicrotaskCheckpoint(
i::MicrotaskQueue* microtask_queue) {
bool did_perform_microtask_checkpoint =
isolate_->thread_local_top()->CallDepthIsZero() &&
do_callback && microtask_queue &&
microtask_queue->microtasks_policy() == MicrotasksPolicy::kAuto;
return !did_perform_microtask_checkpoint ||
......
// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-weak-refs
// A newly created WeakRef is kept alive until the end of the next microtask
// checkpoint. V8 asserts that the kept objects list is cleared at the end of
// microtask checkpoints when the microtask policy is auto. Test that d8, which
// uses the auto policy, upholds the assert when manually quitting.
let obj = {};
let wr = new WeakRef(obj);
testRunner.quit();
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