Ingvar Stepanyan

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

  1. How we brought HTTPS Everywhere to the cloud (part 1)

    This is a cross-post that was originally published in the CloudFlare blog CloudFlare's mission is to make HTTPS accessible for all our customers. It provides security for their websites, improved ranking on search engines, better performance with HTTP/2, and access to browser features such as geolocation that are being…

    on security, https, mixed content, https everywhere

  2. Tabs vs spaces: the ultimate argument

    Did you know that using specific code style can affect your JavaScript performance? Gave a 1.5x performance boost in my case ;) That beautiful moment when you change indentation from spaces to tabs and your function suddenly becomes short enough to get inlined by V8.— Ingvar Stepanyan (@RReverser) April…

    on JavaScript, Performance

  3. GOTOs in JavaScript are now possible

    And I'm back with my crazy experiments. Currently I'm actively playing with Ragel - state machine compiler that generates highly optimized code for streaming lexers, scanners etc. in a set of languages (C, Java, Ruby, C#, ...). Unfortunately, it didn't have support for JavaScript, and I recently implemented it (likely to…

    on JavaScript, Transpilers

  4. 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

  5. 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

  6. 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