ilib
Version:
iLib is a cross-engine library of internationalization (i18n) classes written in pure JS
1 lines • 713 B
JavaScript
var ElementIterator=function(e,t,s){this.elements=[];this.source=e;this.map=t;this.keysize=s};ElementIterator.prototype._fillBuffer=function(){var e=undefined;for(var t=4;t>0;t--){e=this.source.peek(t);if(e&&this.map[e]){this.elements=this.elements.concat(this.map[e]);this.source.consume(t);return}}if(e){this.elements.push(e.charCodeAt(0)<<this.keysize);this.source.consume(1)}else{return undefined}};ElementIterator.prototype.hasNext=function(){if(this.elements.length<1){this._fillBuffer()}return!!this.elements.length};ElementIterator.prototype.next=function(){if(this.elements.length<1){this._fillBuffer()}var e=this.elements[0];this.elements=this.elements.slice(1);return e};module.exports=ElementIterator;