Skip to content
/ elba Public

๐Ÿ™ƒ Make your JavaScript backwards (and compatible)

License

Notifications You must be signed in to change notification settings

dmvaldman/elba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Able was I ere I saw Elba โ€“ Napoleon

Elba makes JavaScript appear to be written backwards. For example,

(function hi(){
    console.log('elba');
})();

Will become

'โ€ฎ';(function hi(){ console.log('elba');})();

When either version is executed it will log the string elba. Try it in your JavaScript console.

For a more complicated example, here is underscore.js

Installation:

npm install -g elba

Usage

elba myFile.js > eliFym.js

How it works:

\u202E is the unicode right-to-left override character. It will make any text after it appear right-to-left until the presence of a \u202D (left-to-right override character) or a newline character.

For example: "\u202E" + "hello" is interpreted as "olleh".

To make your source code backwards, we turn it into a single string (with no line breaks) and add a \u202E character near the beginning. The gotchya is that this string must also be interpretable as a valid JavaScript file. If both these are true, then it will be displayed backwards by any text-editor that supports bi-directional text and will still work exactly as intended. The code only appears backwards in the editor.

Let's call the user specified source code S. We first remove all comments and line-breaks from S. We then prepend the source code with '\u202E';. Then, '\u202E'; S is both a one-line string, AND valid JavaScript (when interpreted). ๐Ÿ™ƒ

About

๐Ÿ™ƒ Make your JavaScript backwards (and compatible)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published