| // Copyright 2019 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 | |
| const set = new WeakSet() | |
| const obj = {}; | |
| // Two GCs to promote {set} and {obj} to old-space. | |
| gc(); | |
| gc(); | |
| // Allocate a large array so {obj} will become an evacuation candidate. | |
| const foo = new Int8Array(0x0F000000); | |
| // Trigger ephemeron key write barrier. | |
| set.add(obj); |