Hi!
I've spotted typo in section "Functions" paragraph "Functions should only be one level of abstraction" in point "Good". It's saying:
class BetterJSAlternative
{
private string _tokenizer;
private string _lexer;
// ...
But both _tokenizer and _lexer are supposed to be classes Tokenizer and Lexer respectively. So it should be something like:
class BetterJSAlternative
{
private Tokenizer _tokenizer;
private Lexer _lexer;
// ...