I'm not sure if it is an ECMA specification, but for hexadecimal constants, we do not care about their value, but about the size of the data. And 0xFF is small enough to fit in an INTEGER_8. Now for the negative variants of hexadecimal value, we do check the value and thus report the error.