[imp]:improve @api.onchange decorator