function(first) {
        var input = this.source;
        if (this.cursor >= input.length) return null;
        var ch = input[this.cursor];

        // first check for \u escapes
        if (ch === '\\' && input[this.cursor+1] === 'u') {
            // get the character value
            try {
                ch = String.fromCharCode(parseInt(
                    input.substring(this.cursor + 2, this.cursor + 6),
                    16));
            } catch (ex) {
                return null;
            }
            this.cursor += 5;
        }

        var valid = isValidIdentifierChar(ch, first);
        if (valid) this.cursor++;
        return (valid ? ch : null);
    }
function(first) {
        var input = this.source;
        if (this.cursor >= input.length) return null;
        var ch = input[this.cursor];

        
        if (ch === '\\' && input[this.cursor+1] === 'u') {
            
            try {
                ch = String.fromCharCode(parseInt(
                    input.substring(this.cursor + 2, this.cursor + 6),
                    16));
            } catch (ex) {
                return null;
            }
            this.cursor += 5;
        }

        var valid = isValidIdentifierChar(ch, first);
        if (valid) this.cursor++;
        return (valid ? ch : null);
    }
function ( first ) { var input = this . source ; if ( this . cursor >= input . length ) return null ; var ch = input [ this . cursor ] ; // first check for \u escapes if ( ch === '\\' && input [ this . cursor + 1 ] === 'u' ) { // get the character value try { ch = String . fromCharCode ( parseInt ( input . substring ( this . cursor + 2 , this . cursor + 6 ) , 16 ) ) ; } catch ( ex ) { return null ; } this . cursor += 5 ; } var valid = isValidIdentifierChar ( ch , first ) ; if ( valid ) this . cursor ++ ; return ( valid ? ch : null ) ; }
/* Gets a single valid identifier char from the input stream, or null
if there is none.
/ * Gets a single valid identifier char from the input stream or null if there is none .