RReverser's

Ingvar Stepanyan

JavaScript developer, speaker and reverse engineer. D2D programmer. Sometimes human.


  1. ES6 modules are dead, long live C preprocessor!

    Did you know you could use C preprocessor even for JavaScript files? (yes, it doesn't care about syntax that much) Say, we want to implement C-like "modules" (inclusions) in JavaScript. Create first file 1.js (filenames don't matter) like this: #ifndef HELLO_1 #define HELLO_1 console.log('hello'); #endif…

    on JavaScript, ES6, Transpilers

  2. ECMAScript Syntax Graph

    Ever wondered how ECMAScript syntax spec would look like if represented as a graph? Wonder no more - I just built one for fun! Here it is in SVG: If your browser doesn't support SVG, you can view PNG version instead (but be careful on metered connections - it's 3.…

    on ES6, ECMAScript

  3. ECMAScript decorators on functions

    This one particular question is being often raised around the usage of the new ECMAScript decorators proposal: why can't I use it for regular function declarations? Well, the answer is simple: hoisting :( Since JS hoists up function declarations, those expressions that you use inside of decorators, depending on proposed "solution"…

    on JavaScript, ES7, ECMAScript, Decorators, Functions, Functional programming

  4. Immutable data considered harmful

    Well... not really - in fact, it's awesome - but, you know, every trend in development deserves an article with such title, so I had to write this. UPD: Yeah, I know, this was a risky joke. Sorry! :)…


  5. Started work on ES6 -> asm.js conversion

    View on GitHub I know this sounds crazy, but I always wondered why do we always give out such a speedup technique as asm.js (it speeds up code in all the modern browsers!) to developers from other languages if we can use it for own code in JavaScript as…

    on JavaScript, ES6, Transpilers, asm.js

  6. [Potentially ES7] function bind syntax in Babel

    View original post Babel 5.4 was just released and with it comes support for a new experimental ES7 syntax proposed by Kevin Smith (@zenparsing) and implemented in Babel by Ingvar Stepanyan (@RReverser). Warning: This syntax is highly experimental and you should not use it for anything serious (yet). If…

    on JavaScript, Transpilers, ES7