Rethinking JavaScript Objects