test: fix napi test_reference for recent V8
PR-URL: https://github.com/nodejs/node/pull/12864 Ref: https://github.com/nodejs/node/pull/12551#issuecomment-297949361 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
This commit is contained in:
parent
42958d1a75
commit
0a734fec88
@ -33,19 +33,6 @@ assert.strictEqual(test_reference.finalizeCount, 0);
|
||||
assert.strictEqual(test_reference.finalizeCount, 1);
|
||||
}
|
||||
|
||||
{
|
||||
// Weak reference
|
||||
let value = test_reference.createExternalWithFinalize();
|
||||
assert.strictEqual(test_reference.finalizeCount, 0);
|
||||
test_reference.createReference(value, 0);
|
||||
assert.strictEqual(test_reference.referenceValue, value);
|
||||
value = null;
|
||||
global.gc(); // Value should be GC'd because there is only a weak ref
|
||||
assert.strictEqual(test_reference.referenceValue, undefined);
|
||||
assert.strictEqual(test_reference.finalizeCount, 1);
|
||||
test_reference.deleteReference();
|
||||
}
|
||||
|
||||
{
|
||||
// Strong reference
|
||||
let value = test_reference.createExternalWithFinalize();
|
||||
@ -85,3 +72,19 @@ assert.strictEqual(test_reference.finalizeCount, 0);
|
||||
global.gc(); // Value was already GC'd
|
||||
assert.strictEqual(test_reference.finalizeCount, 1);
|
||||
}
|
||||
|
||||
{
|
||||
// Weak reference
|
||||
let value = test_reference.createExternalWithFinalize();
|
||||
assert.strictEqual(test_reference.finalizeCount, 0);
|
||||
test_reference.createReference(value, 0);
|
||||
assert.strictEqual(test_reference.referenceValue, value);
|
||||
value = null;
|
||||
setImmediate(common.mustCall(() => {
|
||||
// This test only works if gc() is called from an immediate callback.
|
||||
global.gc(); // Value should be GC'd because there is only a weak ref
|
||||
assert.strictEqual(test_reference.referenceValue, undefined);
|
||||
assert.strictEqual(test_reference.finalizeCount, 1);
|
||||
test_reference.deleteReference();
|
||||
}));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user