Closed Bug 931734 Opened 11 years ago Closed 4 months ago

Expose copy-on-write wrapper

Categories

(Core :: JavaScript Engine, defect)

defect

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: Yoric, Unassigned)

Details

Many APIs would benefit from a copy-on-write wrapper for large JS objects. While this can be manually encoded with a Proxy, I am yet to see a single Proxy-based implementation that works as expected. I believe that it would be a good idea to expose an API that would automatically build such a wrapper.

Bonus points if it is possible if the API offers a near-constant-time |diff| (or "show me the root of changes") feature.

The main use case at the moment is Session Restore: to avoid unwanted side-effects, SessionRestore exposes data by stringifying/reparsing (often huge) JS objects before passing them to subsystems or API clients. I seem to remember that the add-on manager has similar issues.
I am also interested in adding copy-on-write wrapper to the engine.  Still I have no idea of the extra complexity this implies.  The goal in which I am interested in is to provide an easy way to clone the constants from any functions, such as the parser produce one immutable object and all remaining objects are copy-on-write of this immutable object.
Severity: normal → S3
Status: NEW → RESOLVED
Closed: 4 months ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.