Modify ↓
Ticket #7955 (closed bug: invalid)
isPlainObject slight error
| Reported by: | ben@… | Owned by: | |
|---|---|---|---|
| Priority: | undecided | Milestone: | 1.next |
| Component: | misc | Version: | 1.4.4 |
| Keywords: | Cc: | ||
| Blocking: | Blocked by: |
Description
The return value for this is: for(key in obj) { }
| hasOwn.call( obj, key ); |
Unless I'm mistaken, shouldn't key === undefined actually be key !== undefined? If key is undefined that would mean the for..in loop found no properties.
Change History
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.
Note: See
TracTickets for help on using
tickets.

Thanks for taking the time to contribute to the jQuery project by writing a bug report.
There is no bug here. The conditional is correct (an object with no properties is still an object).
If you would switch === to !== then isPlainObject would yield wrong results. E.g.
jQuery.isPlainObject( {} ); //would yield false instead of true jQuery.isPlainObject( document); //would yield true instead of false