Я работаю на платформе миграции для переноса веб-приложений с одного устройства на другое.Я расширяю его, чтобы добавить поддержку для сохранения состояния JavaScript.Моя основная задача - создать файл, представляющий текущее состояние исполняемого приложения, передать его на другое устройство и перезагрузить состояние в целевом устройстве.
Основное решение, которое я принял, состоит в том, чтобы перемещаться по объекту окна и сохранять все его свойства-потомки, используя JSON в качестве базового формата для экспорта и расширяя его для реализации некоторых функций:
- сохранение объектассылка, даже если циклическая (библиотека dojox.json.ref)
- поддержка таймеров
- Дата
- нечисловые свойства массивов
- ссылка на элементы DOM
Самая важная задача, которую мне нужно решить , - экспорт замыканий.На данный момент я не знал, как реализовать эту функцию.Я прочитал о внутреннем свойстве EcmaScript [[scope]]
, содержащем цепочку областей действия функции, похожий на список объект, составленный из всего вложенного контекста активации функции.К сожалению, он не доступен через JavaScript.Кто-нибудь знает, есть ли способ прямого доступа к свойству [[scope]]
?Или другой способ сохранить состояние замыкания?