Skip to content

Commit 0a734fe

Browse files
committed
test: fix napi test_reference for recent V8
PR-URL: #12864 Ref: #12551 (comment) Reviewed-By: James M Snell <[email protected]> Reviewed-By: Michael Dawson <[email protected]>
1 parent 42958d1 commit 0a734fe

File tree

1 file changed

+16
-13
lines changed
  • test/addons-napi/test_reference

1 file changed

+16
-13
lines changed

test/addons-napi/test_reference/test.js

+16-13
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,6 @@ assert.strictEqual(test_reference.finalizeCount, 0);
3333
assert.strictEqual(test_reference.finalizeCount, 1);
3434
}
3535

36-
{
37-
// Weak reference
38-
let value = test_reference.createExternalWithFinalize();
39-
assert.strictEqual(test_reference.finalizeCount, 0);
40-
test_reference.createReference(value, 0);
41-
assert.strictEqual(test_reference.referenceValue, value);
42-
value = null;
43-
global.gc(); // Value should be GC'd because there is only a weak ref
44-
assert.strictEqual(test_reference.referenceValue, undefined);
45-
assert.strictEqual(test_reference.finalizeCount, 1);
46-
test_reference.deleteReference();
47-
}
48-
4936
{
5037
// Strong reference
5138
let value = test_reference.createExternalWithFinalize();
@@ -85,3 +72,19 @@ assert.strictEqual(test_reference.finalizeCount, 0);
8572
global.gc(); // Value was already GC'd
8673
assert.strictEqual(test_reference.finalizeCount, 1);
8774
}
75+
76+
{
77+
// Weak reference
78+
let value = test_reference.createExternalWithFinalize();
79+
assert.strictEqual(test_reference.finalizeCount, 0);
80+
test_reference.createReference(value, 0);
81+
assert.strictEqual(test_reference.referenceValue, value);
82+
value = null;
83+
setImmediate(common.mustCall(() => {
84+
// This test only works if gc() is called from an immediate callback.
85+
global.gc(); // Value should be GC'd because there is only a weak ref
86+
assert.strictEqual(test_reference.referenceValue, undefined);
87+
assert.strictEqual(test_reference.finalizeCount, 1);
88+
test_reference.deleteReference();
89+
}));
90+
}

0 commit comments

Comments
 (0)