personally, I'm a fan of ternaries to simplify this kind of branching if's

Consider:

<pre>
      var consumeValue = function(){
        var char = peek();
	return (
	  parsers[char] ? parsers[char]() :
          /\d/.test(char) ? consumeNumber() :
          /\w/.test(char) ? consumeToken() :
          _.raise('bad value')
	);
      };
</pre>