correct. natural numbers (positive integers and zero) are first, so "6" is first, because it's a valid integer. the rest of those keys are not valid integers:
numbers that are not valid natural numbers are encoded as strings and lexiographically sorted.
> JSON.parse('{"-1": -1, "0.1": 10, "1.0": 10, "1": 0, "0": 1}')
{ '0': 1, '1': 0, '-1': -1, '0.1': 10, '1.0': 10 }