Uses newer node versions for testing.
Rewrite in JS to use JSDoc.