Another (minor) optimization is to use the standard Javascript escapes \t, \b, \f, \n, \r, and \v (2 bytes, each) instead of octal sequences (3 bytes if not succeeded by a digit, then the fixed-length [4 byte] hex \xYZ encoding must be used).
Generally though, I cannot confirm that the "ministr" memory representation is smaller than base64. In my case, it is, in fact larger. Assuming a uniform distribution of byte values, the ministr representation in UTF-8 uses:
1 byte for the 95 "Latin 1" characters with a Unicode code point between U+0020...U+007E - 37.1%
2 bytes for the 96 "Latin 1 Supplement" characters with a Unicode code point between U+00A0...U+00FF - 37.5%
2 bytes for the 7 Javascript escape sequences \0, \t, \b, \f, \n, \t, \v (ignoring the \0 followed by digit case) - 2.7%
3 bytes for the remaining 25 characters in octal representation between U+0001...U+001F - 9.8%
4 bytes for the remaining 33 characters in hex representation between U+007F...U+009F - 12.9%
So on average, we get some 1.985 bytes per character. In turn, base64 uses 1.333 bytes per character (it only uses characters that use one byte in UTF-8), but produces a non-human-readable memory representation. For the existing int8-array representation, we get the following:
2 bytes for 10 characters in U+0000...U+0009 (one digit and one comma) - 3.9%
3 bytes for 90 characters in U+000A...U+0063 (two digits and one comma) - 35.2%
4 bytes for the remaining 156 characters in U+0064...U+00FF (three digits and one comma) - 60.9%
On average, that yields 3.57 bytes per character.
Of course, real-world static memory content is often skewed towards certain byte values, e.g. \0 and Latin-1 text characters. In those cases, the ministr approach may yield a more compact representation that base64. Other baseX approaches (notably: basE91) may be worth the try, but would need a potentially slow, pure Javascript-based implementation.
In the program that I looked at (ffmpeg), the static memory content seems to also exhibit ranges of recurrent identical byte values (often \0), which is amenable to a simple RLE encoding scheme, which could be overlayed over the ministr encoding. Not sure if this is worthwhile doing as this is essentially what gzip is doing anyway and it comes with a small runtime overhead to expand the RLE-encoded sequences.
Soeren