Actually, you pointed out a real problem. It must be an integer and it seems the isNumber function accepts float and string containing numbers. I assume replacecing this line by the following could do the job :  
```js
if('undefined'!==typeof async&&async|0===async&&async>=0) {}
```