function splitWords(text) {
		var results = [];
		text = text.replace('\t', '    ');

		var array = text.match(WORD_RE);

		// i < l - 1, because the last match is always an empty string
		// other empty strings however are treated as new-lines
		for(var i = 0, l = array.length; i < l - 1; i++) {
			var item = array[i];

			var isNewLine = item.length === 0;

			if (!isNewLine) {
				results.push({text: item});
			}
			else {
				var shouldAddLine = (results.length === 0 || results[results.length - 1].lineEnd);

				if (shouldAddLine) {
					results.push({ text: '', lineEnd: true });
				}
				else {
					results[results.length - 1].lineEnd = true;
				}
			}
		}

		return results;
	}
Returns size of the specified string (without breaking it) using the current style
@param  {String} text              text to be measured
@param  {Object} styleContextStack current style stack
@return {Object}                   size of the specified string