Skip to main content

Bug Tracker

Side navigation

#7955 closed bug (invalid)

Opened January 12, 2011 12:04PM UTC

Closed January 12, 2011 12:38PM UTC

isPlainObject slight error

Reported by: ben@hydroprofessional.com Owned by:
Priority: undecided Milestone: 1.next
Component: misc Version: 1.4.4
Keywords: Cc:
Blocked by: Blocking:
Description

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.

Attachments (0)
Change History (1)

Changed January 12, 2011 12:38PM UTC by jitter comment:1

component: unfiledmisc
resolution: → invalid
status: newclosed

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