2016-06-23 14 views
0

Ich habe ein JavaScript geschrieben, in dem Sie einige Arten von Objekten erstellen können. Für die Entwicklung habe ich auch ein Web-Frontend erstellt, in dem alle Objekte aufgelistet (und sortiert, gruppiert usw.) werden können. Daher benötigt dieses Frontend eine Liste aller Objekte.Javascript im Chrome-Addon: unterstützen sie schwache Referenzen?

Leider unterstützt JavaScript keine schwachen Referenzen (nur WeakMap und WeakRef, aber keine echten schwachen Referenzen), so dass durch das Beibehalten dieser Liste keines der Objekte mehr Müll sammelt. So kann ich dem Entwickler nicht zeigen, welche Objekte gerade verwendet werden.

Jetzt möchte ich dieses Tool in einem Addon (wie React Toolbar) zur Verfügung stellen. Ist es möglich, schwache Referenzen in diesem priviligierten Code-Kontext zu verwenden? Auch cool wäre, Finalizer an Objekte anhängen zu können.

Antwort

0

Ich fand Weak reference Dokumentation in meinen Suchen, aber ich habe nicht wirklich versucht, wenn es auch für Chrome funktioniert.

In How do I make a class support weak references? angegeben, stellen Sie sicher, dass Ihre QueryInterface-Methode das Objekt für die Schnittstelle nsISupportsWeakReference zurückgibt, um die Klassenunterstützung für schwache Referenzen in Javascript zu aktivieren.

Es kann hilfreich sein, die angegebene Dokumentation zu lesen und Beispielcodes zu probieren.

+0

hm, leider habe ich noch nichts für chrome gefunden, nur das schwache npm-paket, und das enthält c-code, der gegen die v8-quellen –

+0

auch gelinkt wird, ich denke die Firefox-version funktioniert auch nicht so wie sie sollte weil nur privilegierter Code (dh Code, der im Addon selbst geschrieben wurde) nach meinen Recherchen schwach referenziert werden kann. –