 				nRawIdx = isFinite(nChrOffset) ? nChrOffset : 0;
 				nRawEnd = isFinite(nChrLen) ? nChrLen + nRawIdx : aSource.length;
 				
-				for (nRawIdx; nRawIdx < nRawEnd; nRawIdx++) {
+				for (; nRawIdx < nRawEnd; nRawIdx++) {
 					fCallback.call(oThat || null, aSource[nRawIdx], nRawIdx, nRawIdx, aSource);
 				}
 				

						
						nStartIdx = 0;
						
						var nChrCode:int;
						
						for (nChrIdx = 0; nChrIdx < nCharStart; nChrIdx++) {
							nChrCode = fGetInptChrCode(vSource, nStartIdx);
							nStartIdx += fGetInptChrSize(nChrCode);

		public function StringView (vInput, sEncoding = undefined/* optional (default: UTF-8) */, nOffset = undefined/* optional */, nLength = undefined/* optional */) {
			
			var fTAView:Class, aWhole:Array, aRaw:Array, fPutOutptCode:Function, fGetOutptChrSize:Function, nInptLen:int, nStartIdx:int = isFinite(nOffset) ? nOffset : 0, nTranscrType:int = 15;
			var nChrCode:int, nChrIdx:int;
			
			if (sEncoding) { this.encoding = sEncoding.toString(); }
			
