1'use strict'; 2// Flags: --expose-gc 3 4const common = require('../../common'); 5const assert = require('assert'); 6const test = require(`./build/${common.buildType}/7_factory_wrap`); 7 8assert.strictEqual(test.finalizeCount, 0); 9async function runGCTests() { 10 (() => { 11 const obj = test.createObject(10); 12 assert.strictEqual(obj.plusOne(), 11); 13 assert.strictEqual(obj.plusOne(), 12); 14 assert.strictEqual(obj.plusOne(), 13); 15 })(); 16 await common.gcUntil('test 1', () => (test.finalizeCount === 1)); 17 18 (() => { 19 const obj2 = test.createObject(20); 20 assert.strictEqual(obj2.plusOne(), 21); 21 assert.strictEqual(obj2.plusOne(), 22); 22 assert.strictEqual(obj2.plusOne(), 23); 23 })(); 24 await common.gcUntil('test 2', () => (test.finalizeCount === 2)); 25} 26runGCTests(); 27