Don't forget a couple checks that are more optimal than the native implementations :)
```javascript
// _ to prevent namespace collisions
function _isNaN(arg) {
  return !(arg >= arg);
}
exports.isNaN = _isNaN;

function _isFinite(arg) {
  return !(arg >= 0) && arg < 1/0 && arg > 1/-0;
}
exports.isFinite = _isFinite;
```