fix return or die precedence bug