Prototype's Object.isNumber() function doesn't behave properly when NaN is passed to it. Object.isNumber(NaN) will return true. This happens because the isNumber function only checks if the passed object is a type of "number." Since typeof NaN returns "number", the isNumber function will return true.
While the behavior of Object.isNumber is technically correct, I believe that it should return false when passed NaN. When someone checks if their object is a number, they probably also want to make sure that it isn't NaN.
The file I have attached demonstrates the problem and a possible solution.