Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #10595 (new defect)

Opened 5 months ago

Last modified 5 months ago

[PATCH] [TEST] Object.isNumber and Object.isString returns false for new Number(x) / new String(x)

Reported by: foca Assigned to: sam
Priority: normal Milestone: 2.x
Component: Prototype Version: edge
Severity: minor Keywords:
Cc:

Description

Since typeof new Number(1) == "object" (and thus Object.isNumber(new Number(1)) returns false), I've changed Object.isNumber to the following:

Object.isNumber = function(object) {
  return typeof object == "number" || object instanceof Number;
}

Attachments

Object.isNumber.diff (0.8 kB) - added by foca on 12/22/07 16:16:04.
Object.isNumber_and_Object.isString.diff (1.3 kB) - added by foca on 12/22/07 17:15:49.

Change History

12/22/07 16:16:04 changed by foca

  • attachment Object.isNumber.diff added.

12/22/07 17:06:20 changed by kangax

Well, actually

Object.isString(new String('foo')); // => false

so should we change that as well?

12/22/07 17:15:49 changed by foca

  • attachment Object.isNumber_and_Object.isString.diff added.

12/22/07 17:16:08 changed by foca

  • summary changed from [PATCH] [TEST] Object.isNumber returns false for new Number(x) to [PATCH] [TEST] Object.isNumber and Object.isString returns false for new Number(x) / new String(x).

Hmm, good point. I would say yes, I would expect that Object.isString(new String('str')) returns true.