*/ = new Array(arguments.length - 1);
+ for(var i/*:number*/ = 0; i < args.length; ++i) args[i] = arguments[i+1];
+ return doit(tokenize(arguments[0]), args);
+}
+
+export { sprintf, vsprintf };
+
diff --git a/tests/mjs.html b/tests/mjs.html
new file mode 100644
index 0000000..922a60f
--- /dev/null
+++ b/tests/mjs.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+PRINTJ Live Demo
+
+
+
+PRINTJ ESM Live Demo
+Source Code Repo
+Issues? Something look weird? Click here and report an issue
+
+
+usage: import { sprintf as printf } from './printj.mjs';
+
+This implementation supports the full POSIX set of conversions. Consult the enclosed README for full details.
+
+
+
+
+
+
+
diff --git a/tests/node.mjs b/tests/node.mjs
new file mode 100755
index 0000000..8f0b475
--- /dev/null
+++ b/tests/node.mjs
@@ -0,0 +1,5 @@
+#!/usr/bin/env node --experimental-modules
+
+import { version, sprintf } from '../printj.mjs'
+
+console.log(sprintf("PRINTJ version %s, 123 = 0x%02hhx", version, 123));
diff --git a/tests/printj.mjs b/tests/printj.mjs
new file mode 120000
index 0000000..6a4bf14
--- /dev/null
+++ b/tests/printj.mjs
@@ -0,0 +1 @@
+../printj.mjs
\ No newline at end of file