This is something to be discussed. The branch does not explicitly checks whether weights are negative. In master, this requires some checks here and there in criteria to avoid undefined situations. I still find that treatment of negative sample weights to be somehow fishy though... Unless there is a strong demand for it, I would prefer leave it like this. (I still can't wrap my mind around "negative weights" and still don't understand how someone could exploit that in an educated way...)