aemkei / jsfuck

Write any JavaScript with 6 Characters: []()!+
jsfuck.com
Do What The F*ck You Want To Public License
8.14k stars 672 forks source link

Optimise missing ASCII printable characters #93

Closed frobinsonj closed 3 years ago

frobinsonj commented 4 years ago

Make use of ISO-8859-1 escape notation (\XXX (where XXX is 1–3 octal digits; range of 0–377))

hazzik commented 4 years ago

there is one more place to use this technique (but you'll need the condition you had before):

https://github.com/aemkei/jsfuck/blob/effccc419c274f49613580357e4898bf17327e0f/jsfuck.js#L265-L274

hazzik commented 4 years ago

Thanks, I've borrowed your stuff into my PR #88

frobinsonj commented 4 years ago

there is one more place to use this technique (but you'll need the condition you had before):

https://github.com/aemkei/jsfuck/blob/effccc419c274f49613580357e4898bf17327e0f/jsfuck.js#L265-L274

I saw that but to be honest, it was late last night and I was struggling to understand the order that everything was being called haha

Is that not just a fallback for any characters that can't already be found? I believe that all supported characters are included within MAPPING so it would have no affect here?

hazzik commented 4 years ago

Is that not just a fallback for any characters that can't already be found?

Yes

I believe that all supported characters are included within MAPPING so it would have no affect here?

In MAPPING are only characters up to ASCII code 127. So this code block would work for characters 128-255. Not sure how much it is helpful. I think only character which can benefit from it is ß

frobinsonj commented 4 years ago

Is that not just a fallback for any characters that can't already be found?

Yes

I believe that all supported characters are included within MAPPING so it would have no affect here?

In MAPPING are only characters up to ASCII code 127. So this code block would work for characters 128-255. Not sure how much it is helpful. I think only character which can benefit from it is ß

Ah yes, of course.

Do you think it'd be worth adding these to the output.txt? We should at least have a test case for some.

There are actually quite a few characters here DEC | OCT | HEX | BIN | Symbol | HTML Number | HTML Name | Description -- | -- | -- | -- | -- | -- | -- | -- 129 | 201 | 81 | 10000001 |   |   |   |   141 | 215 | 8D | 10001101 |   |   |   |   143 | 217 | 8F | 10001111 |   |   |   |   144 | 220 | 90 | 10010000 |   |   |   |   157 | 235 | 9D | 10011101 |   |   |   |   160 | 240 | A0 | 10100000 |   |   |   | Non-breaking space 161 | 241 | A1 | 10100001 | ¡ | ¡ | ¡ | Inverted exclamation mark 162 | 242 | A2 | 10100010 | ¢ | ¢ | ¢ | Cent sign 163 | 243 | A3 | 10100011 | £ | £ | £ | Pound sign 164 | 244 | A4 | 10100100 | ¤ | ¤ | ¤ | Currency sign 165 | 245 | A5 | 10100101 | ¥ | ¥ | ¥ | Yen sign 166 | 246 | A6 | 10100110 | ¦ | ¦ | ¦ | Pipe, Broken vertical bar 167 | 247 | A7 | 10100111 | § | § | § | Section sign 168 | 250 | A8 | 10101000 | ¨ | ¨ | ¨ | Spacing diaeresis - umlaut 169 | 251 | A9 | 10101001 | © | © | © | Copyright sign 170 | 252 | AA | 10101010 | ª | ª | ª | Feminine ordinal indicator 171 | 253 | AB | 10101011 | « | « | « | Left double angle quotes 172 | 254 | AC | 10101100 | ¬ | ¬ | ¬ | Not sign 173 | 255 | AD | 10101101 | ­ | ­ | ­ | Soft hyphen 174 | 256 | AE | 10101110 | ® | ® | ® | Registered trade mark sign 175 | 257 | AF | 10101111 | ¯ | ¯ | ¯ | Spacing macron - overline 176 | 260 | B0 | 10110000 | ° | ° | ° | Degree sign 177 | 261 | B1 | 10110001 | ± | ± | ± | Plus-or-minus sign 178 | 262 | B2 | 10110010 | ² | ² | ² | Superscript two - squared 179 | 263 | B3 | 10110011 | ³ | ³ | ³ | Superscript three - cubed 180 | 264 | B4 | 10110100 | ´ | ´ | ´ | Acute accent - spacing acute 181 | 265 | B5 | 10110101 | µ | µ | µ | Micro sign 182 | 266 | B6 | 10110110 | ¶ | ¶ | ¶ | Pilcrow sign - paragraph sign 183 | 267 | B7 | 10110111 | · | · | · | Middle dot - Georgian comma 184 | 270 | B8 | 10111000 | ¸ | ¸ | ¸ | Spacing cedilla 185 | 271 | B9 | 10111001 | ¹ | ¹ | ¹ | Superscript one 186 | 272 | BA | 10111010 | º | º | º | Masculine ordinal indicator 187 | 273 | BB | 10111011 | » | » | » | Right double angle quotes 188 | 274 | BC | 10111100 | ¼ | ¼ | ¼ | Fraction one quarter 189 | 275 | BD | 10111101 | ½ | ½ | ½ | Fraction one half 190 | 276 | BE | 10111110 | ¾ | ¾ | ¾ | Fraction three quarters 191 | 277 | BF | 10111111 | ¿ | ¿ | ¿ | Inverted question mark 192 | 300 | C0 | 11000000 | À | À | À | Latin capital letter A with grave 193 | 301 | C1 | 11000001 | Á | Á | Á | Latin capital letter A with acute 194 | 302 | C2 | 11000010 | Â | Â | Â | Latin capital letter A with circumflex 195 | 303 | C3 | 11000011 | Ã | Ã | Ã | Latin capital letter A with tilde 196 | 304 | C4 | 11000100 | Ä | Ä | Ä | Latin capital letter A with diaeresis 197 | 305 | C5 | 11000101 | Å | Å | Å | Latin capital letter A with ring above 198 | 306 | C6 | 11000110 | Æ | Æ | Æ | Latin capital letter AE 199 | 307 | C7 | 11000111 | Ç | Ç | Ç | Latin capital letter C with cedilla 200 | 310 | C8 | 11001000 | È | È | È | Latin capital letter E with grave 201 | 311 | C9 | 11001001 | É | É | É | Latin capital letter E with acute 202 | 312 | CA | 11001010 | Ê | Ê | Ê | Latin capital letter E with circumflex 203 | 313 | CB | 11001011 | Ë | Ë | Ë | Latin capital letter E with diaeresis 204 | 314 | CC | 11001100 | Ì | Ì | Ì | Latin capital letter I with grave 205 | 315 | CD | 11001101 | Í | Í | Í | Latin capital letter I with acute 206 | 316 | CE | 11001110 | Î | Î | Î | Latin capital letter I with circumflex 207 | 317 | CF | 11001111 | Ï | Ï | Ï | Latin capital letter I with diaeresis 208 | 320 | D0 | 11010000 | Ð | Ð | Ð | Latin capital letter ETH 209 | 321 | D1 | 11010001 | Ñ | Ñ | Ñ | Latin capital letter N with tilde 210 | 322 | D2 | 11010010 | Ò | Ò | Ò | Latin capital letter O with grave 211 | 323 | D3 | 11010011 | Ó | Ó | Ó | Latin capital letter O with acute 212 | 324 | D4 | 11010100 | Ô | Ô | Ô | Latin capital letter O with circumflex 213 | 325 | D5 | 11010101 | Õ | Õ | Õ | Latin capital letter O with tilde 214 | 326 | D6 | 11010110 | Ö | Ö | Ö | Latin capital letter O with diaeresis 215 | 327 | D7 | 11010111 | × | × | × | Multiplication sign 216 | 330 | D8 | 11011000 | Ø | Ø | Ø | Latin capital letter O with slash 217 | 331 | D9 | 11011001 | Ù | Ù | Ù | Latin capital letter U with grave 218 | 332 | DA | 11011010 | Ú | Ú | Ú | Latin capital letter U with acute 219 | 333 | DB | 11011011 | Û | Û | Û | Latin capital letter U with circumflex 220 | 334 | DC | 11011100 | Ü | Ü | Ü | Latin capital letter U with diaeresis 221 | 335 | DD | 11011101 | Ý | Ý | Ý | Latin capital letter Y with acute 222 | 336 | DE | 11011110 | Þ | Þ | Þ | Latin capital letter THORN 223 | 337 | DF | 11011111 | ß | ß | ß | Latin small letter sharp s - ess-zed 224 | 340 | E0 | 11100000 | à | à | à | Latin small letter a with grave 225 | 341 | E1 | 11100001 | á | á | á | Latin small letter a with acute 226 | 342 | E2 | 11100010 | â | â | â | Latin small letter a with circumflex 227 | 343 | E3 | 11100011 | ã | ã | ã | Latin small letter a with tilde 228 | 344 | E4 | 11100100 | ä | ä | ä | Latin small letter a with diaeresis 229 | 345 | E5 | 11100101 | å | å | å | Latin small letter a with ring above 230 | 346 | E6 | 11100110 | æ | æ | æ | Latin small letter ae 231 | 347 | E7 | 11100111 | ç | ç | ç | Latin small letter c with cedilla 232 | 350 | E8 | 11101000 | è | è | è | Latin small letter e with grave 233 | 351 | E9 | 11101001 | é | é | é | Latin small letter e with acute 234 | 352 | EA | 11101010 | ê | ê | ê | Latin small letter e with circumflex 235 | 353 | EB | 11101011 | ë | ë | ë | Latin small letter e with diaeresis 236 | 354 | EC | 11101100 | ì | ì | ì | Latin small letter i with grave 237 | 355 | ED | 11101101 | í | í | í | Latin small letter i with acute 238 | 356 | EE | 11101110 | î | î | î | Latin small letter i with circumflex 239 | 357 | EF | 11101111 | ï | ï | ï | Latin small letter i with diaeresis 240 | 360 | F0 | 11110000 | ð | ð | ð | Latin small letter eth 241 | 361 | F1 | 11110001 | ñ | ñ | ñ | Latin small letter n with tilde 242 | 362 | F2 | 11110010 | ò | ò | ò | Latin small letter o with grave 243 | 363 | F3 | 11110011 | ó | ó | ó | Latin small letter o with acute 244 | 364 | F4 | 11110100 | ô | ô | ô | Latin small letter o with circumflex 245 | 365 | F5 | 11110101 | õ | õ | õ | Latin small letter o with tilde 246 | 366 | F6 | 11110110 | ö | ö | ö | Latin small letter o with diaeresis 247 | 367 | F7 | 11110111 | ÷ | ÷ | ÷ | Division sign 248 | 370 | F8 | 11111000 | ø | ø | ø | Latin small letter o with slash 249 | 371 | F9 | 11111001 | ù | ù | ù | Latin small letter u with grave 250 | 372 | FA | 11111010 | ú | ú | ú | Latin small letter u with acute 251 | 373 | FB | 11111011 | û | û | û | Latin small letter u with circumflex 252 | 374 | FC | 11111100 | ü | ü | ü | Latin small letter u with diaeresis 253 | 375 | FD | 11111101 | ý | ý | ý | Latin small letter y with acute 254 | 376 | FE | 11111110 | þ | þ | þ | Latin small letter thorn 255 | 377 | FF | 11111111 | ÿ | ÿ | ÿ | Latin small letter y with diaeresis
frobinsonj commented 3 years ago

Merged PR #88 included these changes.