How to preserve the state of JavaScript closure?

Posted by Uccio on Stack Overflow See other posts from Stack Overflow or by Uccio
Published on 2010-06-12T16:59:47Z Indexed on 2010/06/12 17:02 UTC
Read the original article Hit count: 178

Filed under:
|
|

I am working on a migration platform to migrate web applications from a device to another. I am extending it to add the support for preserving JavaScript state. My main task is to create a file representing the current state of the executing application, to transmit it to another device and to reload the state in the destination device.

The basic solution I adopted is to navigate the window object and to save all its descendant properties using JSON as base format for exportation and extending it to implement some features:

  • preserving object reference, even if cyclic (dojox.json.ref library)
  • support for timers
  • Date
  • non-numericproperties of arrays
  • reference to DOM elements

The most important task I need to solve now is exportation of closures. At this moment I didn't know how to implement this feature. I read about the internal EcmaScript property [[scope]] containing the scope chain of a function, a list-like object composed by all the nested activation context of the function. Unfortunately it is not accessible by JavaScript. Anyone know if there is a way to directly access the [[scope]] property? Or another way to preserve the state of a closure?

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about JSON