FYI, functions have a .length property which is why the jQuery implementation was explicitly making sure it wasn't a function.  Should probably continue to handle that case so functions aren't treated as ArrayLike