A JavaScript DOM model supporting element creation, diff computation and patch operations for efficient re-rendering