JavaScript objects with automatic dependency tracking