react / wstein / node_modules / jest-cli / node_modules / jsdom / node_modules / htmlparser2 / lib / CollectingHandler.js
80684 viewsmodule.exports = CollectingHandler;12function CollectingHandler(cbs){3this._cbs = cbs || {};4this.events = [];5}67var EVENTS = require("./").EVENTS;8Object.keys(EVENTS).forEach(function(name){9if(EVENTS[name] === 0){10name = "on" + name;11CollectingHandler.prototype[name] = function(){12this.events.push([name]);13if(this._cbs[name]) this._cbs[name]();14};15} else if(EVENTS[name] === 1){16name = "on" + name;17CollectingHandler.prototype[name] = function(a){18this.events.push([name, a]);19if(this._cbs[name]) this._cbs[name](a);20};21} else if(EVENTS[name] === 2){22name = "on" + name;23CollectingHandler.prototype[name] = function(a, b){24this.events.push([name, a, b]);25if(this._cbs[name]) this._cbs[name](a, b);26};27} else {28throw Error("wrong number of arguments");29}30});3132CollectingHandler.prototype.onreset = function(){33this.events = [];34if(this._cbs.onreset) this._cbs.onreset();35};3637CollectingHandler.prototype.restart = function(){38if(this._cbs.onreset) this._cbs.onreset();3940for(var i = 0, len = this.events.length; i < len; i++){41if(this._cbs[this.events[i][0]]){4243var num = this.events[i].length;4445if(num === 1){46this._cbs[this.events[i][0]]();47} else if(num === 2){48this._cbs[this.events[i][0]](this.events[i][1]);49} else {50this._cbs[this.events[i][0]](this.events[i][1], this.events[i][2]);51}52}53}54};555657