Build: Don't assume the browser environment; smoke test on Node w/ jsdom

Fixes gh-1788
So it seems safe to just use `setTimeout` and the others global then? if node and browsers both support it global I think it should be safe.