So I could solve both of these issues with

    HourlyUpdater.prototype = {
      Date: Date,
      document: document,
      ...
    };

so that we could test the behavior of `onMozVisibilityChange` by stubbing `document.hidden` and test the behavior of `millisUntilHour` by mocking `Date`, but since James was planning on landing my sinon patch soon (poke poke @lightsofapollo) it seems not worth it to copy more stuff over onto the prototype.