This fixes an issue where we'd serialize some floating point numbers with excessive precision, resulting in unpleasant-looking numbers like 0.49999999999999999 and such. At least 90 new subtests passing on WPT, possibly more. :^)
We're required to serialize NaN, infinity, and -infinity as their keyword names, even after they've been converted to Numbers.