function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {
	        var width = 0;
	        var i = 0;
	        for (var len = text.length; i < len && width < contentWidth; i++) {
	            var charCode = text.charCodeAt(i);
	            width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;
	        }
	        return i;
	    }
Show ellipsis if overflow.

@param  {string} text
@param  {string} containerWidth
@param  {string} textFont
@param  {number} [ellipsis='...']
@param  {Object} [options]
@param  {number} [options.maxIterations=3]
@param  {number} [options.minChar=0] If truncate result are less
                 then minChar, ellipsis will not show, which is
                 better for user hint in some cases.
@param  {number} [options.placeholder=''] When all truncated, use the placeholder.
@return {string}