|
1 | 1 | 'use strict';
|
| 2 | +// Flags: --expose-gc |
| 3 | + |
2 | 4 | const common = require('../../common');
|
3 | 5 | const assert = require('assert');
|
4 |
| -const createObject = require(`./build/${common.buildType}/binding`); |
| 6 | +const test = require(`./build/${common.buildType}/binding`); |
5 | 7 |
|
6 |
| -const obj = createObject(10); |
7 |
| -assert.strictEqual(obj.plusOne(), 11); |
8 |
| -assert.strictEqual(obj.plusOne(), 12); |
9 |
| -assert.strictEqual(obj.plusOne(), 13); |
| 8 | +assert.strictEqual(test.finalizeCount, 0); |
| 9 | +(() => { |
| 10 | + const obj = test.createObject(10); |
| 11 | + assert.strictEqual(obj.plusOne(), 11); |
| 12 | + assert.strictEqual(obj.plusOne(), 12); |
| 13 | + assert.strictEqual(obj.plusOne(), 13); |
| 14 | +})(); |
| 15 | +global.gc(); |
| 16 | +assert.strictEqual(test.finalizeCount, 1); |
10 | 17 |
|
11 |
| -const obj2 = createObject(20); |
12 |
| -assert.strictEqual(obj2.plusOne(), 21); |
13 |
| -assert.strictEqual(obj2.plusOne(), 22); |
14 |
| -assert.strictEqual(obj2.plusOne(), 23); |
| 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 | +global.gc(); |
| 25 | +assert.strictEqual(test.finalizeCount, 2); |
0 commit comments