I can go either way with it, and I did consider it. My thinking here is to make it clear what the return of toggle is, whether or not the class is now contained in the list. 

I considered early return of true/false after the add/remove, but that's not clear what true/false represents. If I cache the contains up front as a var name wasContained or isContained, then return the opposite at the end as !wasContained, is that clear? 

Perhaps at 8 or less lines of code that's sufficient.

From a performance standpoint, my assumption is that contains using indexOf over even a good size list wouldn't be a problem. I tend to favor legibility over performance until performance is demanded, or the solution will be just so clearly poor perf.

I have a commit ready with caching as wasContained and will happily resubmit that.