﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
7261	node.js -> getPosition performance poor	campaign		"not use getAddress getIndex methods performance poor

my code 

getPosition : function ( nodeA, nodeB ) {
            // 如果两个节点是同一个节点
            if ( nodeA === nodeB ) {
                // DOMUtils.POSITION_IDENTICAL
                return 0;
            }

            if ( nodeA.compareDocumentPosition ) {
                return nodeA.compareDocumentPosition(nodeB);
            }

            var node,
                parentsA = [],
                parentsB = [],
                body = nodeA.ownerDocument.body;


            node = nodeA;
            while ( node = node.parentNode ) {
                // 如果nodeB是nodeA的祖先节点
                if ( node === nodeB ) {
                    // DOMUtils.POSITION_IS_CONTAINED + DOMUtils.POSITION_FOLLOWING
                    return 10;
                }
                if ( node === body ) break;
                parentsA.push( node );

            }


            node = nodeB;
            while ( node = node.parentNode ) {
                // 如果nodeA是nodeB的祖先节点
                if ( node === nodeA ) {
                    // DOMUtils.POSITION_CONTAINS + DOMUtils.POSITION_PRECEDING
                    return 20;
                }
                if ( node === body ) break;
                parentsB.push( node );

            }

            parentsA = parentsA.reverse();
            parentsA.push(nodeA);
            parentsB =  parentsB.reverse();
            parentsB.push(nodeB);
            //不会出现ai 或者 bi 取不到的情况
            for ( var i=0,ai,bi;ai=parentsA[i],bi=parentsB[i];i++ ) {
                if ( ai !== bi ) {
                    var tmpNode = ai.nextSibling;
                    if ( tmpNode ) {
                        while ( tmpNode ) {
                            if( tmpNode === bi ){
                                // DOMUtils.POSITION_PRECEDING
                                return 4
                            }
                            tmpNode = tmpNode.nextSibling;
                        }
                    }
                     // DOMUtils.POSITION_FOLLOWING
                    return  2;
                }
            }

            // DOMUtils.POSITION_DISCONNECTED
            return 1;
        },
"	Bug	closed	Normal		Performance	3.0	invalid	HasPatch?	
