I understand people have become fairly comfortable with inArray after a certain amount of time, but I feel there are more people who are used to indexOf.
With the current order of the parameters, people will be very confused while switching there code from indexOf to inArray.
This is the current replacement flow:
1. I take my arr.indexOf(val) and replace ".indexOf(" with ", "
2. I put "$.inArray(" before "arr"
3. I get angry when inArray returns -1, when it should return an index, and start over analyzing the situation.
Considering inArray is a browser compatible replacement of indexOf, this makes sense.
Alas, you have the order of arguments flipped. This wouldn't be an issue if a meaningful error was giving when the function was used incorrectly.
I understand you keep such defensive programming out of the library for performance purposes, however this brings up another solution to this additional problem.
I propose two ideas from this issue:
1. swap the order of $.inArray
2. have a defensive version of the jQuery library, which throws errors.
For number 2, I wonder if there is a way to automate this... maybe something like coffeescript could help.