fasttime/JScrewIt

Old jsfuck

Closed this issue · 2 comments

There was time when [].filter is not defined, and jsfuck allowed 8 char types ! + ( ) [ ] { }.

  1. Can I slightly modify JScrewIt to make it use 8ct and allow old environments like IE7?
  2. Can I modify it so it allows 6ct as well as 8ct?

8ct Function == [][([]+![])[!![]+!![]+!![]]+({}+[])[+!![]]+([]+!![])[+!![]]+([]+!![])[+[]]][({}+{})[+!![]+!![]+[+[]]]+({}+{})[+!![]]+([][[]]+[])[+!![]]+([]+![])[!![]+!![]+!![]]+([]+!![])[+[]]+([]+!![])[+!![]]+([][[]]+[])[+[]]+({}+{})[+!![]+!![]+[+[]]]+([]+!![])[+[]]+({}+{})[+!![]]+([]+!![])[+!![]]]

JScrewIt is free software, so feel free to modify it as you wish. I don't see any big problem in extending the character set to include { and }, except that some unit tests will start to fail. IE7 compatibility should be harder to do I guess. You'd need to exclude or rethink some optimizations that would otherwise break your code.

You can take a look at this project for inspiration: https://github.com/alcuadrado/hieroglyphy

Oh, 'false'[3] returns undefined in IE7, so maybe it's not so much freedom. Yet in IE8 it's okay