redux(): self-replicating javascript

my entry for the wg:Javascript Quine Contest

original entry

source code

function redux(){q='\'';s='\\';a='return"function redux(){q="+q+s+q+q+";s="+q+s+s+q+";a="+q+a+q+";"+a+"}";';return"function redux(){q="+q+s+q+q+";s="+q+s+s+q+";a="+q+a+q+";"+a+"}";}

output

to test it, click here or view the output of <script type="text/javascript">document.write(redux());</script>

self-outputting variant

there's also a variant which contains its own document.write statements

source code

function redux_variant(){q='\'';s='\\';a='document.write("function redux_variant(){q="+q+s+q+q+";s="+q+s+s+q+";a="+q+a+q+";"+a+"}");';document.write("function redux_variant(){q="+q+s+q+q+";s="+q+s+s+q+";a="+q+a+q+";"+a+"}");}

output

to test it, click here or view the direct output of <script type="text/javascript">redux_variant();</script>

final contest entry

after much deliberation and head-scratching, I finally worked out what Liorean actually meant. additionally, to keep the character count to an absolute minimum, i shortened my vanity function name...which makes the total 182 characters of horrendous javascript devilry.

source

(function r(){q='\'';s='\\';a='return"(function r(){q="+q+s+q+q+";s="+q+s+s+q+";a="+q+a+q+";"+a+"})()";';return"(function r(){q="+q+s+q+q+";s="+q+s+s+q+";a="+q+a+q+";"+a+"})()";})()

output

to see the output, copy the following line and paste it straight into your browser's address field

javascript:(function r(){q='\'';s='\\';a='return"(function r(){q="+q+s+q+q+";s="+q+s+s+q+";a="+q+a+q+";"+a+"})()";';return"(function r(){q="+q+s+q+q+";s="+q+s+s+q+";a="+q+a+q+";"+a+"})()";})()