oy, i'm a dork. `IntegerValue()` returns an `int64_t`. check if undefined, if not get it and check if `< -1`. throw if it is, but i'd say stick w/ the `IsUndefined()` check. it's by far the cheapest, and value coercion is expected in js (e.g. if I were to pass `'0xfff'`).