FIXME: Unicode escape sequences
function (ch, keywordIsName) {
        var token = this.token;
        var id = ch;

        while ((ch = this.getValidIdentifierChar(false)) !== null) {
            id += ch;
        }

        token.type = IDENTIFIER;
        token.value = id;

        if (keywordIsName)
            return;

        var kw;

        if (this.parser.mozillaMode) {
            kw = definitions.mozillaKeywords[id];
            if (kw) {
                token.type = kw;
                return;
            }
        }

        if (this.parser.x.strictMode) {
            kw = definitions.strictKeywords[id];
            if (kw) {
                token.type = kw;
                return;
            }
        }

        kw = definitions.keywords[id];
        if (kw)
            token.type = kw;
    }