+/*\r
+ function X_Node_Selector__fetchElements( list, parent, tag, merge ){\r
+ \r
+ var xnodes = parent[ '_xnodes' ],\r
+ memory = {\r
+ i : 0,\r
+ l : xnodes.length,\r
+ xnodes : xnodes\r
+ }, \r
+ memories = [ memory ],\r
+ i, l, xnode,\r
+ uid, _xnodes;\r
+ \r
+ while( memories.length ){\r
+ memory = memories.pop();\r
+ xnodes = memory.xnodes;\r
+ i = memory.i;\r
+ l = memory.l;\r
+ for( ; i < l; ++i ){\r
+ xnode = xnodes[ i ];\r
+ uid = xnode[ '_uid' ];\r
+ if( !merge[ uid ] && xnode[ '_tag' ] ){\r
+ if( !tag || xnode[ '_tag' ] === tag ) list[ list.length ] = xnode;\r
+ \r
+ if( _xnodes = xnode[ '_xnodes' ] ){\r
+ if( 1 < _xnodes.length || ( _xnodes[ 0 ] && _xnodes[ 0 ][ '_tag' ] ) ){\r
+ memory.i = i + 1;\r
+ memory.l = l;\r
+ memory.xnodes = xnodes;\r
+ memories[ memories.length ] = memory;\r
+ memories[ memories.length ] = {\r
+ i : 0,\r
+ l : _xnodes.length,\r
+ xnodes : _xnodes\r
+ };\r
+ merge[ uid ] = true;\r
+ break;\r
+ };\r
+ };\r
+ };\r
+ merge[ uid ] = true;\r
+ };\r
+ };\r
+ };\r
+ */\r