OSDN Git Service

Version 0.6.132, fix X.Node._flags & fix X.EventDispatcher._listeners & start to...
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 08_XNodeSelector.js
index 2a746ff..5819d93 100644 (file)
@@ -184,16 +184,22 @@ function X_Node_Selector__parse( query, last ){
                                break;\r
                        default :\r
                };\r
+               \r
+               if( phase === 0xf ) return i;\r
+               \r
                //alert( chr + ' ' + phase + ' ' + selector + ' ' + name + ' ' + name1st )\r
                if( phase === 0xe ){\r
                        if( selector === 4 ){// :not\r
                                if( name === 'not' ){\r
-                                       if( not ) return i; // error\r
-                                       not      = true;\r
-                                       selector = 0;\r
-                                       phase    = 0x0;\r
-                                       name     = null;\r
-                                       continue;\r
+                                       if( not ){\r
+                                               return i; // error\r
+                                       } else {\r
+                                               not      = true;\r
+                                               selector = 0;\r
+                                               phase    = 0x0;\r
+                                               name     = null;                                        \r
+                                       };\r
+                                       //continue;\r
                                } else\r
                                if( name === 'lang' || name === 'contains' ){\r
                                        result = [ not ? 0 : combinator, selector, name, value ];\r
@@ -203,16 +209,16 @@ function X_Node_Selector__parse( query, last ){
                                        result = [ not ? 0 : combinator, selector, name, a, b ];\r
                                        break;  \r
                                };\r
+                       } else {\r
+                               result =\r
+                                       combinator === 5 ?\r
+                                               5 :\r
+                                       selector === 5 ?\r
+                                               [ not ? 0 : combinator, selector, key, operator, value ] :\r
+                                               [ not ? 0 : combinator, selector, name.split( '\\' ).join( '' ) ];\r
+                               break;                          \r
                        };\r
-                       result =\r
-                               combinator === 5 ?\r
-                                       5 :\r
-                               selector === 5 ?\r
-                                       [ not ? 0 : combinator, selector, key, operator, value ] :\r
-                                       [ not ? 0 : combinator, selector, name.split( '\\' ).join( '' ) ];\r
-                       break;\r
-               } else\r
-               if( phase === 0xf ) return i;\r
+               };\r
 \r
                escape = chr === '\\' && !escape;\r
        };\r
@@ -313,16 +319,16 @@ function X_Node_Selector__parse( query, last ){
                                // > TagName|*\r
                                case 2 :\r
                                        for( ; i < l; ++i ){\r
-                                               for( xnode = parents[ i ].firstChild(); xnode; xnode = xnode.nextNode() ){\r
-                                                       if( xnode._xnodeType === 1 && ( isAll || tagName === xnode._tag ) ) xnodes[ ++n ] = xnode;\r
+                                               for( xnode = parents[ i ].firstChild(); xnode; xnode = xnode.next() ){\r
+                                                       if( xnode._tag && ( isAll || tagName === xnode._tag ) ) xnodes[ ++n ] = xnode;\r
                                                };                              \r
                                        };\r
                                        break;\r
                                // + TagName|*\r
                                case 3 :\r
                                        for( ; i < l; ++i ){\r
-                                               for( xnode = parents[ i ].nextNode(); xnode; xnode = xnode.nextNode() ){\r
-                                                       if( xnode._xnodeType === 1 ){\r
+                                               for( xnode = parents[ i ].next(); xnode; xnode = xnode.next() ){\r
+                                                       if( xnode._tag ){\r
                                                                if( isAll || tagName === xnode._tag ) xnodes[ ++n ] = xnode;\r
                                                                break;\r
                                                        };                                                                      \r
@@ -333,8 +339,8 @@ function X_Node_Selector__parse( query, last ){
                                case 4 :\r
                                        merge  = {};\r
                                        for( ; i < l; ++i ){\r
-                                               for( xnode = parents[ i ].nextNode(); xnode; xnode = xnode.nextNode() ){\r
-                                                       if( xnode._xnodeType === 1 && ( isAll || tagName === xnode._tag ) ){\r
+                                               for( xnode = parents[ i ].next(); xnode; xnode = xnode.next() ){\r
+                                                       if( xnode._tag && ( isAll || tagName === xnode._tag ) ){\r
                                                                uid = xnode._uid;\r
                                                                if( merge[ uid ] ){\r
                                                                        break;\r
@@ -530,7 +536,7 @@ function X_Node_Selector__parse( query, last ){
                        j, child, _xnodes;\r
                for( ; i < l; ++i ){\r
                        child = xnodes[ i ];\r
-                       if( child._xnodeType !== 1 ) continue;\r
+                       if( !child._tag ) continue;\r
                        //console.log( child._tag );\r
                        if( ( j = list.indexOf( child ) ) !== -1 ){\r
                                newList[ newList.length ] = child;\r
@@ -555,7 +561,7 @@ function X_Node_Selector__parse( query, last ){
                        child;\r
                for( ; i < l; ++i ){\r
                        child = xnodes[ i ];\r
-                       if( child._xnodeType === 1 ){\r
+                       if( child._tag ){\r
                                ( !tag || child._tag === tag ) && ( list[ list.length ] = child );\r
                                //console.log( parent._tag + ' > ' + child._tag + ' == ' + tag+ ' l:' + list.length );\r
                                child._xnodes && child._xnodes.length && X_Node_Selector__fetchElements( list, child, tag );\r
@@ -572,16 +578,16 @@ function X_Node_Selector__parse( query, last ){
                        tagName = flag_all || xnode._tag;\r
                        tmp     = null;\r
                        if( /* tmp === null && */ type <= 0 ){\r
-                               for( node = xnode.prevNode(); node; node = node.prevNode() ){\r
-                                       if( node._xnodeType === 1 && ( flag_all || tagName === node._tag ) ){\r
+                               for( node = xnode.prev(); node; node = node.prev() ){\r
+                                       if( node._tag && ( flag_all || tagName === node._tag ) ){\r
                                                tmp = false;\r
                                                break;\r
                                        };\r
                                };\r
                        };\r
                        if( tmp === null && 0 <= type ){\r
-                               for( node = xnode.nextNode(); node; node = node.nextNode() ){\r
-                                       if( node._xnodeType === 1 && ( flag_all || tagName === node._tag ) ){\r
+                               for( node = xnode.next(); node; node = node.next() ){\r
+                                       if( node._tag && ( flag_all || tagName === node._tag ) ){\r
                                                tmp = false;\r
                                                break;\r
                                        };              \r
@@ -604,7 +610,7 @@ function X_Node_Selector__parse( query, last ){
                        tmp = checked[ uid ];\r
                        if( tmp === void 0 ){\r
                                for( c = 0, node = xnode.parent[ pointer ](), tagName = flag_all || xnode._tag; node; node = node[ sibling ]() ){\r
-                                       if( node._xnodeType === 1 && ( flag_all || tagName === node._tag ) ){\r
+                                       if( node._tag && ( flag_all || tagName === node._tag ) ){\r
                                                ++c;\r
                                                checked[ node._uid ] = a === 0 ? c === b : (c - b) % a === 0 && (c - b) / a >= 0;\r
                                        };                                                      \r
@@ -660,16 +666,16 @@ var X_Node_Selector__filter = {
                m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorChild( 0, false, flags, xnodes ); }\r
        },\r
        'nth-child' : {\r
-               m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'firstChild', 'nextNode', true, flags, xnodes, a, b ); }\r
+               m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'firstChild', 'next', true, flags, xnodes, a, b ); }\r
        },\r
        'nth-last-child' : {\r
-               m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'lastChild', 'prevNode', true, flags, xnodes, a, b ); }\r
+               m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'lastChild', 'prev', true, flags, xnodes, a, b ); }\r
        },\r
        'nth-of-type' : {\r
-               m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'firstChild', 'nextNode', false, flags, xnodes, a, b ); }\r
+               m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'firstChild', 'next', false, flags, xnodes, a, b ); }\r
        },\r
        'nth-last-of-type' : {\r
-               m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'lastChild', 'prevNode', false, flags, xnodes, a, b ); }\r
+               m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'lastChild', 'prev', false, flags, xnodes, a, b ); }\r
        },\r
        empty : {\r
                m : function( flags, xnodes ){\r
@@ -679,7 +685,7 @@ var X_Node_Selector__filter = {
                        for( ; xnode = xnodes[i]; ++i ){\r
                                tmp = true;\r
                                for( node = xnode.firstChild(); node; node = node.nextSibling() ){\r
-                                       if( node._xnodeType === 1 || ( node._xnodeType === 3 && node._text ) ){\r
+                                       if( node._tag || ( !node._tag && node._text ) ){\r
                                                tmp = false;\r
                                                break;\r
                                        };                              \r