reyesr / fullproof

javascript fulltext search engine library
http://reyesr.github.com/fullproof/
Apache License 2.0
666 stars 46 forks source link

Cannot call method 'inject' of undefined #8

Open terrycojones opened 11 years ago

terrycojones commented 11 years ago

It looks like in this code (common-engine.js line 227), index can be undefined in the loop:

fullproof.AbstractEngine.prototype.injectDocument = function(text, value, callback) {
    var synchro = fullproof.make_synchro_point(function(data) {
        callback();
    });

    this.forEach(function(name, index, parser) {
        if (name) {
            parser.parse(text, function(word) {
                if (word) {
                    index.inject(word, value, synchro); // the line number is the value stored
                } else {
                    synchro(false);
                }
            })
        }
    }, false);
    return this;
};

I'm calling injectDocument on the result of engine.open and seeing a stack trace that looks like this:

Error in event handler for 'undefined': Cannot call method 'inject' of undefined TypeError: Cannot call method 'inject' of undefined
at chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/vendor.js:2424:444
    at chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/vendor.js:2414:306
    at f (chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/vendor.js:2413:158)
    at parse (chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/vendor.js:2413:308)
    at parse (chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/vendor.js:2414:79)
    at chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/vendor.js:2424:420
    at fullproof.AbstractEngine.forEach (chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/vendor.js:2426:189)
    at fullproof.AbstractEngine.injectDocument (chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/vendor.js:2424:391)
    at Object.Liber.Fullproof.add (chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/background.js:822:18)
    at Object.Liber.Index.add (chrome-extension://gbplakaibfhhognfeabdecdmbnildeil/background.js:874:34)