Treat nested JavaScript data like it were immutable