summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/harmony/weakrefs/weakref-creation-keeps-alive.js
blob: 78e8865ac02a607cb82e56aafb27f10573a4fcea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Copyright 2018 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: --expose-gc --noincremental-marking

let wr;
(function() {
  let o = {};
  wr = new WeakRef(o);
  // Don't deref here, we want to test that the creation is enough to keep the
  // WeakRef alive until the end of the turn.
})();

gc();

// Since the WeakRef was created during this turn, it is not cleared by GC.
(function() {
  assertNotEquals(undefined, wr.deref());
})();

// Next task.
setTimeout(() => {
  gc();
  assertEquals(undefined, wr.deref());
}, 0);