Skip to content

Instantly share code, notes, and snippets.

@dionyziz
Created April 20, 2020 20:39
Show Gist options
  • Save dionyziz/bd3b7ce55fea266a8769ca9ed9cd05d0 to your computer and use it in GitHub Desktop.
Save dionyziz/bd3b7ce55fea266a8769ca9ed9cd05d0 to your computer and use it in GitHub Desktop.
(SELF => {console.log(SELF)
})((({BStr, TStr}) => {
const AStr = ((BStr, TStr) => {
const escape = (str) => {
return str.replace(
/\\/g, '\\\\'
).replace(
/`/g, '\\\`'
).replace(
/\$/g, '\\$'
)
}
return `() => {
return {
BStr: \`${escape(BStr)}\`,
TStr: \`${escape(TStr)}\`
}
}`
})(BStr, TStr)
return ((AStr, BStr, TStr) => {
return `(SELF => {${TStr}})((${BStr})((${AStr})()))`
})(AStr, BStr, TStr)
})((() => {
return {
BStr: `({BStr, TStr}) => {
const AStr = ((BStr, TStr) => {
const escape = (str) => {
return str.replace(
/\\\\/g, '\\\\\\\\'
).replace(
/\`/g, '\\\\\\\`'
).replace(
/\\\$/g, '\\\\\$'
)
}
return \`() => {
return {
BStr: \\\`\${escape(BStr)}\\\`,
TStr: \\\`\${escape(TStr)}\\\`
}
}\`
})(BStr, TStr)
return ((AStr, BStr, TStr) => {
return \`(SELF => {\${TStr}})((\${BStr})((\${AStr})()))\`
})(AStr, BStr, TStr)
}`,
TStr: `console.log(SELF)
`
}
})()))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment