(()=>{})[(({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]]+({}+[])[+!![]]+([][+![]]+[])[+!![]]+(![]+[])[+!![]+ +!![]+ +!![]]+(!![]+[])[+![]]+(!![]+[])[+!![]]+(!![]+[])[+!!
[]+ +!![]]+({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]]+(!![]+[])[+![]]+({}+[])[+!![]]+(!![]+[])[+!![]])]((([]+[])[(({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]]+({}+[])
[+!![]]+([][+![]]+[])[+!![]]+(![]+[])[+!![]+ +!![]+ +!![]]+(!![]+[])[+![]]+(!![]+[])[+!![]]+(!![]+[])[+!![]+ +!![]]+({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]]+(!![]+
[])[+![]]+({}+[])[+!![]]+(!![]+[])[+!![]])][((![]+[])[+![]]+(!![]+[])[+!![]]+({}+[])[+!![]]+((+![])[(({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]]+({}+[])[+!![]]+([][+!
[]]+[])[+!![]]+(![]+[])[+!![]+ +!![]+ +!![]]+(!![]+[])[+![]]+(!![]+[])[+!![]]+(!![]+[])[+!![]+ +!![]]+({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]]+(!![]+[])[+![]]+({}+
[])[+!![]]+(!![]+[])[+!![]])]+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]+ +!![]+ +!![]+ +!![]+ +!![]+ +!![]+ +!![]]+(()=>{})[(({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]]+
({}+[])[+!![]]+([][+![]]+[])[+!![]]+(![]+[])[+!![]+ +!![]+ +!![]]+(!![]+[])[+![]]+(!![]+[])[+!![]]+(!![]+[])[+!![]+ +!![]]+({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]]+
(!![]+[])[+![]]+({}+[])[+!![]]+(!![]+[])[+!![]])](((!![]+[])[+!![]]+(![]+[])[+!![]+ +!![]+ +!![]+ +!![]]+(!![]+[])[+![]]+(!![]+[])[+!![]+ +!![]]+(!![]+[])[+!![]]+([]
[+![]]+[])[+!![]]+({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]+ +!![]+ +!![]]+(![]+[])[+!![]+ +!![]+ +!![]+ +!![]]+(![]+[])[+!![]+ +!![]+ +!![]]+({}+[])[+!![]+ +!![]+ +!!
[]+ +!![]+ +!![]]+(![]+[])[+!![]]+(/-/[(({}+[])[+!![]+ +!![]+ +!![]+ +!![]+ +!![]]+({}+[])[+!![]]+([][+![]]+[])[+!![]]+(![]+[])[+!![]+ +!![]+ +!![]]+(!![]+[])[+![] ...
A 966-byte JavaScript quine generator that produces a valid self-replicating file that utilizes only 8 different characters.
All credit goes to the owner of the channel Low Level Javascript. This is based on a video of his, titled JavaScript Is Weird (EXTREME EDITION)
Due to some character encoding problems, this is known to produce faulty programs on Windows 11 with Node version 16.14.2. On Ubuntu with Node version 10.19.0, however, correct output is produced.
Be warned that the generated file exceeds 3MB.
node quinegen.js > quine0.js
node quine0.js > quine1.js
On most *nix systems, the output of the following should be blank:
diff -q quine0.js quine1.js
alpha/ contains testing scripts that should be more readable than quinegen.js.
Although the quine could be much smaller, it is Turing complete and can produce any valid program by modifying the original generator.