Я унаследовал дополнение Firefox, которое крайне нуждается в обновлении новой линии Firefox 4+.У меня наконец-то есть время поработать над этим, но оказывается, что это дополнение включает в себя нативную часть, скомпилированную как компонент XPCOM, и компонентам XPCOM теперь настоятельно не рекомендуется.Поскольку я действительно не хочу перекомпилировать свои двоичные файлы каждый раз, когда выходит новая основная версия, я перехожу к переходу на js-ctypes.
Поскольку бинарная библиотека действительно довольно мала и проста, она неЭто не большая проблема, но меня беспокоит одна вещь: поскольку объекты XPCOM (как правило) были реализованы как объекты C ++, их деструктор автоматически вызывался всякий раз, когда собирался объект-оболочка JavaScript.Вам не нужно было управлять собственными ресурсами вручную в своем коде JavaScript.
В идеале, я хотел бы иметь эквивалентную функциональность с js-ctypes.Поскольку js-ctypes более низкоуровневый, чем XPCOM, он не поддерживает объекты напрямую, но мне интересно, есть ли способ, которым я мог бы создать объект-обертку самостоятельно и каким-то образом получить уведомление, когда он собирает мусор.Я знаю, что в чистом JavaScript нет понятия деструкторов, но, возможно, есть еще способ, которым я могу сделать это в Firefox.