yeah, I almost did that. But I introduced an error on the `date` (which starts at 1, not 0) and looked at Sinon.js source code and they did like this, so I assumed they had a good reason to do so.. - hehe

I can change if you think it's a good idea. Maybe something like:

```js
function FakeDate(year, month, date, hour, minute, second, ms) {
  switch (arguments.length) {
    case 0:
      return new NativeDate(basetime);
    case 1:
      // only 1 arg is the ms since epoch
      return new NativeDate(year);
    default:
      return new NativeDate(year || 0, month || 0, date || 1, hour || 0, minute || 0, second || 0, ms || 0);
  }
}
```