1.1 --- a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java Tue Sep 15 21:08:02 2015 +0200
1.2 +++ b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java Sun Oct 04 14:55:01 2015 +0200
1.3 @@ -44,6 +44,9 @@
1.4
1.5 import java.lang.ref.ReferenceQueue;
1.6 import java.lang.ref.WeakReference;
1.7 +import java.util.Collections;
1.8 +import java.util.HashSet;
1.9 +import java.util.Set;
1.10 import net.java.html.js.JavaScriptBody;
1.11 import net.java.html.js.JavaScriptResource;
1.12 import net.java.html.json.Model;
1.13 @@ -62,6 +65,7 @@
1.14 @JavaScriptResource("knockout-3.2.0.debug.js")
1.15 final class Knockout extends WeakReference<Object> {
1.16 private static final ReferenceQueue<Object> QUEUE = new ReferenceQueue();
1.17 + private static final Set<Knockout> active = Collections.synchronizedSet(new HashSet<Knockout>());
1.18
1.19 private PropertyBinding[] props;
1.20 private FunctionBinding[] funcs;
1.21 @@ -79,6 +83,7 @@
1.22 for (int i = 0; i < funcs.length; i++) {
1.23 this.funcs[i] = funcs[i].weak();
1.24 }
1.25 + active.add(this);
1.26 }
1.27
1.28 static void cleanUp() {
1.29 @@ -87,6 +92,7 @@
1.30 if (ko == null) {
1.31 return;
1.32 }
1.33 + active.remove(ko);
1.34 clean(ko.js);
1.35 ko.js = null;
1.36 ko.props = null;