[userdata] allow deep userdata updates