﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
3367	Introduce range iterator API	Garry Yao	Frederico Caldeira Knabben	"
There're many cases when we need to traverse the range from the start boundary node to the end boundary node, it's archiveable by the following codes:
{{{
var boundaryNodes = range.getBoundaryNodes();
		var firstNode = boundaryNodes.startNode;
		var lastNode = boundaryNodes.endNode.getNextSourceNode( true );
var node = firstNode.getNextSourceNode();
while( node )
{
	if ( node.getName() == 'span'  && currentNode.getAttribute( '_fck_bookmark' ) )
	{
		node = node.getNextSourceNode();
		continue;
	}
	// Processing logic...
	node = node.getNextSourceNode();
}
}}}
It's cumbersome due to at least two reasons:
 1. The collapsed range problem reported at #3292;
 1. It make code DUP at every plugin for the same logic;
It's necessary to introduce an API for this feature with  '''dom iterator''', which already holds a method for iterating over paragraphs. So after the API, other plugins should walking through the range as easy as using the iterator.
"	Bug	new	Normal	CKEditor 3.0	General			Confirmed	
