Bug Tracker

Opened 6 years ago

Closed 6 years ago

#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:
Blocked by: Blocking:


The return value for this is: for(key in obj) { }

return key === undefined
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 (1)

comment:1 Changed 6 years ago by jitter

  • Component changed from unfiled to misc
  • Resolution set to invalid
  • Status changed from new to closed

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
Note: See TracTickets for help on using tickets.