That's not pretty, though I see that [some people like that approach](http://stackoverflow.com/questions/8108184/why-does-jshint-not-recognize-an-assignment-as-an-expression). It looks like Crockford does not like that approach as JSLint calls that a "confusing use of '!'". I understand the error that the linters are trying to protect us from here, but this *is* annoying.

We could make JSLint and JSHint both happy with:

```javascript

var currentElement = queue.shift();
while (currentElement) {
    ...
    currentElement = queue.shift();
}
```

Obviously, that's a bit worse because we're duplicating some code unnecessarily for the sake of our tools. On the other hand, I don't think it's good to have persistent JSLint errors in HTMLInstrumentation while we're still using JSLint.

Thoughts?