I32 mulChecked(I32 other) { var result = value * other.value; if (result > 2147483647 || result < -2147483648) throw StateError('I32 multiplication overflow'); return I32(result); }