﻿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	
