1. 5
  1.  

  2. 2

    I don’t want to burst your bubble, but there are < [200 byte](http://j.mearie.org/post/1181041789/brainfuck-interpreter-in-2-lines-of-c for one.) implementations in C.

    With whitespace, that’s something like (according to this):

    s[999], *r=s, *d, c;
      
      main(a, b)
      {
          char *v=1[d=b];
          for(;c = *v++ % 93;)
              for(b = c%7 ? 
                      a &&
                          (c & 17 ? 
                                c & 1 ? 
                                    (*r -= c - 44)
                                    :(r += c - 61)
                                 :c & 2 ?
                                    putchar(*r)
                                    :(*r = getchar())
                          ,0)
                      :v;
                  b&&c | a * *r;
                  v=d)
                      main(!c,&b-1);
          d = v;
      }
    

    Given JS is a C style language, surely some of these tricks would port fine, to reduce your byte count even further? Of course, at the sake of readability – yours is still quite readable. But, if golfing is the goal…

    1. 1

      Thanks for the code. Have already seen these minimal implementations; I am trying to push hard on minimizing while keeping code readable. I liked the recursive approach here; still looking at what are things I can pickup to minimize code even further, or what are the things that I can write to keep code readable while uglifier can compress it hard.