From a616dbb9bbe2e1ce56c1b31edb550f3021eed222 Mon Sep 17 00:00:00 2001 From: Vasil Trifonov Date: Wed, 18 Apr 2018 16:57:26 +0300 Subject: [PATCH] Updated weak event listener tests for v8 6.5 (#5697) * Updated weak event listener tests for v8 6.5 * added missing parentheses --- .../weak-event-listener-tests.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tests/app/ui/core/weak-event-listener/weak-event-listener-tests.ts b/tests/app/ui/core/weak-event-listener/weak-event-listener-tests.ts index 7e3adee92..f59f147df 100644 --- a/tests/app/ui/core/weak-event-listener/weak-event-listener-tests.ts +++ b/tests/app/ui/core/weak-event-listener/weak-event-listener-tests.ts @@ -101,9 +101,13 @@ export function test_listenerDoesNotRetainTarget(done) { const sourceRef = getSourceAsWeakRef(); const targetRef = getTargetAsWeakRef(); - addWeakEventListener(sourceRef.get(), Observable.propertyChangeEvent, emptyHandler, targetRef.get()); + // with the v8 6.5 the GC does not release WeakRefs so fast if you pass them to a method + // that's why we are making the call to the addWeakEventListener in a closure so that the WeakRef will be easier released + (function() { + addWeakEventListener(sourceRef.get(), Observable.propertyChangeEvent, emptyHandler, targetRef.get()); + })(); forceGC(); - + try { TKUnit.assert(!targetRef.get(), "Target should be released after GC"); done(null); @@ -117,7 +121,11 @@ export function test_listenerDoesNotRetainSource(done) { const sourceRef = getSourceAsWeakRef(); const targetRef = getTargetAsWeakRef(); - addWeakEventListener(sourceRef.get(), Observable.propertyChangeEvent, targetRef.get().onEvent, targetRef.get()); + // with the v8 6.5 the GC does not release WeakRefs so fast if you pass them to a method + // that's why we are making the call to the addWeakEventListener in a closure so that the WeakRef will be easier released + (function() { + addWeakEventListener(sourceRef.get(), Observable.propertyChangeEvent, targetRef.get().onEvent, targetRef.get()); + })(); forceGC(); try {