This document summarizes an approach for preserving JavaScript state when migrating web applications across multiple devices. The key challenges addressed are maintaining the JavaScript state, including values of variables, function references, timers and dates. The solution uses a migration server to capture the current page state, including the DOM and JavaScript variables, and generate a new version of the page optimized for the target device while maintaining the same interactive state. Special techniques are required to handle JavaScript object references and circular references during state serialization and restoration.