| // 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: --no-stress-incremental-marking |
| |
| let {session, contextGroup, Protocol} = InspectorTest.start( |
| 'Tests collectGarbage.'); |
| |
| contextGroup.addScript(` |
| function createWeakRef() { |
| globalThis.weak_ref = new WeakRef(new Array(1000).fill(0)); |
| } |
| function getWeakRef() { |
| if (!globalThis.weak_ref.deref()) return 'WeakRef is cleared after GC.'; |
| return 'WeakRef is not cleared. GC did not happen?' |
| } |
| //# sourceURL=test.js`); |
| |
| Protocol.Debugger.enable(); |
| Protocol.HeapProfiler.enable(); |
| |
| InspectorTest.runAsyncTestSuite([ |
| async function testCollectGarbage() { |
| await Protocol.Runtime.evaluate({ expression: 'createWeakRef()' }); |
| await Protocol.HeapProfiler.collectGarbage(); |
| let weak_ref = await Protocol.Runtime.evaluate({ expression: 'getWeakRef()' }); |
| InspectorTest.log(`WeakRef state: ${weak_ref.result.result.value}`); |
| } |
| ]); |