User:Hakerh400/Random JavaScript snippets
Jump to navigation
Jump to search
In this article I share some of JavaScript snippets I created in the past.
JavaScript snippets
Very inefficient SAT solver
const solve = cnf => { let loops = ''; let result = ''; let varsNum = 0; while(1){ try{ return Function(` ${loops} if(${cnf}) return[${result}].slice(1) `)() || null; }catch(e){ loops += `for(const x${varsNum} of[0,1])`; result += `,x${varsNum++}`; } } }; console.log(solve(` (x0 | x1) & (!x0 | !x1) & x0 `));
Integer program generator
const base = 2n; const xor = a => f1(base, 0n, BigInt(a)); const swap = a => f1(base, 1n, BigInt(a)); const push = a => f1(base, 2n, BigInt(a)); const pop = (a, b) => f1(base, 3n, f1(base, BigInt(a), BigInt(b))); const arr = (e, a) => { let b = 0n; for(let i = a.length - 1; i !== -1; i--) b = f1(e, a[i], b); return b; }; src = String(base * f1(base, 1n, arr(base, [ swap(2), pop(20, 3), push(26), xor(4), swap(5), pop(10, 6), pop(10, 7), swap(8), push(9), swap(5), push(11), xor(12), push(13), xor(14), swap(15), pop(16, 2), swap(17), push(18), push(19), xor(15), swap(21), pop(0, 22), pop(21, 23), swap(24), push(25), xor(20), xor(), ]))); input = BigInt('5'); log(O.match(src, /.{100}|.+/g).join('\n')); log();
Hidden messages
eval(atob`KGY9KGE9OSxiPWF0b2IoYEdhMTFhVDJzc0lITnZJR3RsWlhBZ1oyOXBibWNoYTExYWJhOWFVR3hsWVhObElISjFiaU IwYUdVZ2IzVjBjSFYwSUc5bUlIUm9hWE1nY0hKdlozSmhiU0JoWjJGcGJpNGdXVzkxSjJ4c0lHZGxkQ0JoSUdScFptWmxjbVZ1ZE NCdFpYTnpZV2RsTGdhOWFhMTdhUWxSWExDQjBhR2x6SUhOamNtbHdkQ0JwY3lCblpXNWxjbUYwWldRZ2RYTnBibWNnYUhSMGNITT ZMeTluYVhSb2RXSXVZMjl0TDBoaGEyVnlhRFF3TUM5dWIyUmxMWEJ5YjJwbFkzUnpMMkpzYjJJdk16aGtaamt3T0Rjd1pETXpNRE UyWXpZNE16ZzBaVEptT0Rka01tRTFOREZqTVRRMk1UWTFZaTlwYm1wbFkzUXRjM1J5TDIxaGFXNHVhbk1hMTdhYTUyYVNTQnNhV3 RsSUhSdklHTnlaV0YwWlNCamIyMXdiR2xqWVhSbFpDQmhibVFnYjJKbWRYTmpZWFJsWkNCamIyUmxMaUJKZENCcGN5QnpieUJtZF c1dWVTNGE1MmFIYTQwYVdXOTFJR0Z5WlNCemRHbHNiQ0JvWlhKbFB5QlpiM1VuY21VZ2JtOTBJR0p2Y21Wa0lIbGxkRDhhNDBhYT hhVFhrZ1ptRjJiM0pwZEdVZ2JuVnRZbVZ5SUdseklEY2E4YURhMWFWR2hoZENkeklHbDBJRG9wQ2xSb1lXNXJJSGx2ZFNCbWIzSW dkMkYwWTJocGJtY2hJU0VLVEdsclpTd2djM1ZpYzJOeWFXSmxMQ0JvYVhRZ2RHaGxJR0psYkd3c0lIbGhJR3R1YjNjZ2MzUjFabV lnYkdsclpTQjBhR0YwTGk0dUNnb3JMUzB0TFMwdEt3cDhJQ0FnSUNBZ2ZBcDhJRUo1WlNFZ2ZBcDhJQ0FnSUNBZ2ZBb3JMUzB0TF MwdEt3YTFhYTIyYVFYTWdTU0JqWVc0Z2MyVmxMQ0I1YjNVZ1lYSmxJR1JsZEdWeWJXbHVaV1FnZEc4Z2NtVmhZMmdnZEdobElHVn VaQ3dnY21sbmFIUS9hMjJhYTRhVFhrZ1ptRjJiM0pwZEdVZ1kyOXNiM0lnYVhNZ1ozSmxaVzRhNGFhMjZhU1hRZ2FYTWdZV3gzWV hseklHZHZiMlFnYVdZZ2VXOTFJR2hoZG1VZ2NHeGxiblI1SUc5bUlHWnlaV1VnZEdsdFpTQjBieUJrYnlCeVlXNWtiMjBnYzNSMV ptWXVhMjZhYTE0YVdXVmhhQ3dnZVc5MUozWmxJR2R2ZENCMGFHVWdhV1JsWVM0Z1NHOTNJRzFoYm5rZ2JXVnpjMkZuWlhNZ1lYSm xJR1Z1WTI5a1pXUWdhR1Z5WlQ4YTE0YWExM2FUbTkwSUhOMWNtVWdkMmhoZENCMGJ5QnpZWGtnWVhRZ2RHaHBjeUJ3YjJsdWRDNG ExM2FhMzRhU0dGMlpTQjViM1VnWVd4eVpXRmtlU0JtYVdkMWNtVmtJRzkxZENCb2IzY2dkR2hwY3lCamIyNTBjbUZ3ZEdsdmJpQj NiM0pyY3o4YTM0YWE1YVFteGhhQ0JDYkdGb0lFSnNZV2d1SUVGdVpDQmhaMkZwYmlCaWJHRm9JR0pzWVdndUxpNGE1YWExMGFTR1 Z5WlNkeklHRWdjMjl1WnlCSklHMWhaR1VnWm05eUlHMTVJR2RwY213NkNncElaWGtzSUhkb1lYUWdaR2xrSUhsdmRTQnpZWGsvQ2 xsdmRTQjNZVzUwSUdFZ1oyRnRaU0I1YjNVZ1lXNWtJRzFsSUhSdklIQnNZWGsvQ2xsdmRTZHNiQ0JpWlNCdGVTQndjbWx1WTJWem N5QkpKMnhzSUdoaGRtVWdkRzhnYjJKbGVTd0tWRzhnZVc5MWNpQm9aV0Z5ZENCSkoyeHNJRzVsWldRZ2RHOGdabWx1WkNCaElIZG hlU3dLV1c5MUoyeHNJR3hwZG1VZ2FXNGdaMjlzWkNCaGJtUWdTU0JwYmlCamJHRjVMQXBKSjJ4c0lHaGhkbVVnZEc4Z2EybHpjeU I1YjNVZ1lXeHNJRzVwWjJoMElHRnVaQ0JrWVhrc0NsbHZkU2R5WlNCdGVTQjBhV2R5WlhOekxDQkpKMjBnZVc5MWNpQndjbVY1TE FwWmIzVWdZMmhoYzJVZ2JXVWdkR2h5YjNWbmFDQnVhV2RvZEN3Z1NTQnlkVzRnWVhkaGVTd0tTVzRnYlhrZ1ltVmtjbTl2YlNCaG RDQnpkVzV5YVhObElFa2diR0Y1TEFwWmIzVWdabWx1WkNCdFpTQjBhR1Z5WlN3Z2QybDBhQ0J0WlNCNWIzVWdjM1JoZVN3S1dXOT FKM0psSUhOdGFXeHBibWNnYkdsd2N5QjBhSEpsWVhSbGJpQjBieUJ6YkdGNUxBcEdiM0lnYldWeVkza2dTU0JpWldjZ2VXOTFMQ0 JKSUhCeVlYa3NDbEJzWldGelpTQmtiMjRuZENCb2RYSjBJRzFsTENCSkoyeHNJR0psSUhsdmRYSWdjMnhoZG1Vc0Nra2djSEp2Yl dselpTQkpKMnhzSUhObGNuWmxJSGx2ZFNCMGJ5QjBhR1VnWjNKaGRtVXNDa2tuYkd3Z1ptbG5hSFFnWm05eUlIbHZkU0JzYVd0bE lFa25iU0JpY21GMlpTd0tUMjRnYkdGdVpDQjNaU2RzYkNCemRYSm1JR3hwYTJVZ2RHaGxjbVVuY3lCaElIZGhkbVV1YTEwYWhhN2 FUV0Y1WW1VZ1ptVjNMQ0J0WVhsaVpTQjBhRzkxYzJGdVpITXVMaTRnVjJodklHdHViM2R6UHdhN2FhMjhhV1c5MUlITmxaU0E2S1 NCT2IzY2daRzhnYVhRZ1lXZGhhVzRoYTI4YWEyYVRYa2dabUYyYjNKcGRHVWdkVzVwWTI5a1pTQmphR0Z5WVdOMFpYSWdhWE1nWE hVd05ERTRhMmFsYTE2YVZHaHBjeUJwY3lCdGVTQm1ZWFp2Y21sMFpTQnpiMjVuT2lCb2RIUndjem92TDNkM2R5NTViM1YwZFdKbE xtTnZiUzkzWVhSamFEOTJQVTV5TkhKaGFETlFNMnBKYTE2YWEyMGFTR1Y1TENCM2FIa2dibTkwSUdwMWMzUWdaMmwyWlNCMWNEOG dWR2hsY21VZ2JXRjVJR0psSUdFZ2JHOTBJRzF2Y21VZ2JXVnpjMkZuWlhNdWEyMGFgLnNwbGl0KFtjPSgrYXRvYitbXSlbMV1dK2 ErYylbMV0pKT0+Y29uc29sZS5sb2coYS0xP2Ake2BldmFsKGF0b2JcYCR7YnRvYShgKGY9JHtmfSkoKWAucmVwbGFjZSgvXGQrLy xhPT4oYz1+YSYxKSooYT4+YykrKGM9fmMrMikqLX4oKGE8PGMpK2EqYykpKX1cYClgLnJlcGxhY2UoLy57MTAwfS9nLGE9PmAke2 F9XG5gKX1cbi8qKlxuICpcbiAqICR7Yi5yZXBsYWNlKC9cbi9nLCdcbicrKGQ9JyAnKSsnKiAnK2QrJyAnKX1cbiAqXG4gKi9gOm IpKSgp`)
A loop using a set
const loop = (a, b) => new Set([a]).forEach((a, c, d) => a(d.delete(a)) && b(d.add(a)));
Search for a string whose compressed length violates gzip compression level expectation
const find = () => { const bytes = O.ca(256, i => i); for(let i = 0n;; i++){ if((i & 65535n) === 0n && i !== 0n) log(String(i)); const buf = Buffer.from(arrOrder.arr(bytes, i)); let len = null; for(let j = 1; j <= 9; j++){ const len1 = zlib.gzipSync(buf, {level: j}).length; if(len !== null && len1 > len) O.exit(buf); len = len1; } } } const test = buf => { for(let level = 1; level <= 9; level++) console.log(zlib.gzipSync(buf, {level}).length); console.log('\n'); }; find();
brainfuck to Qarkegs converter
const a = 'C:/path/to/file.txt'; const src = ` +[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++[.>]<<<<.+++.------.<<-.>>>>+. `; const b = O.sanl(` <3(4)5(-545)25 >53(4)5(-545)2 +4 -- ,0 .31 [( ]) `.trim()).map(a => a.trim()); const c = O.obj(); for(const a of b) c[a[0]] = a.slice(1).replace(/\-/g, '4'.repeat(255)); O.wfs(a, (a => { return a.replace(/./gs, a => { return a in c ? c[a] : ''; }); })(src));