OSDN Git Service

Version 0.6.133, fix for closure compiler - ADVANCED_OPTIMIZATIONS
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 09_XHTMLParser.js
index 1a3e692..2aff37d 100644 (file)
@@ -50,7 +50,9 @@ var X_HTMLParser_CHARS = {
        X_HTMLParser_fillAttrs = X_Node_Attr_noValue, //{checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};\r
 \r
        // Special Elements (can contain anything)\r
-       X_HTMLParser_special = { SCRIPT : 1, STYLE : 1, PLAINTEXT : 1, XMP : 1, TEXTAREA : 1 };\r
+       X_HTMLParser_special = { SCRIPT : 1, STYLE : 1, PLAINTEXT : 1, XMP : 1, TEXTAREA : 1 },\r
+       \r
+       X_HTMLParser_skipFixNesting = false;\r
        \r
        function X_HTMLParser_exec( html, handler, async ){\r
                var special        = X_HTMLParser_special,\r
@@ -269,8 +271,8 @@ var X_HTMLParser_CHARS = {
                var inline   = X_HTMLParser_inline,\r
                        parseEndTag = X_HTMLParser_parseEndTag,\r
                        sisters  = X_HTMLParser_sisters;\r
-               if ( X_HTMLParser_block[ tagName ] === 1 ) {\r
-                       while ( last && inline[ last ] === 1 ) {\r
+               if( !X_HTMLParser_skipFixNesting && X_HTMLParser_block[ tagName ] === 1 ){\r
+                       while( last && inline[ last ] === 1 ){\r
                                parseEndTag( stack, handler, last );\r
                                last = stack[ stack.length - 1 ];\r
                        };\r
@@ -325,7 +327,7 @@ var X_HTMLParser_htmlStringToXNode = {
                        _attrs = {};\r
                        for( ; i; ){\r
                                if( attr = attrs[ --i ] ){\r
-                                       if( X.Type.isString( attr ) ){\r
+                                       if( X_Type_isString( attr ) ){\r
                                                name = attr;\r
                                                _attrs[ name ] = true;\r
                                        } else {\r
@@ -364,7 +366,7 @@ function X_HtmlParser_parse( html, ignoreError ){
 var X_HTMLParser_asyncHtmlStringToXNode = {\r
        err : function( html ){\r
                X_HTMLParser_htmlStringToXNode.err( html );\r
-               this.asyncDispatch( X.Event.ERROR );\r
+               this.asyncDispatch( X_Event.ERROR );\r
        },\r
        start   : X_HTMLParser_htmlStringToXNode.start,\r
        end     : X_HTMLParser_htmlStringToXNode.end,\r
@@ -372,19 +374,19 @@ var X_HTMLParser_asyncHtmlStringToXNode = {
        comment : X.emptyFunction,\r
        \r
        progress : function( pct ){\r
-               this.asyncDispatch( { type : X.Event.PROGRESS, percent : pct } );\r
+               this.asyncDispatch( { type : X_Event.PROGRESS, percent : pct } );\r
        },\r
        complete : function(){\r
                var ret = X_HTMLParser_htmlStringToXNode.flat;\r
                delete X_HTMLParser_htmlStringToXNode.flat;\r
-               this.asyncDispatch( { type : X.Event.SUCCESS, xnodes : ret } );\r
+               this.asyncDispatch( { type : X_Event.SUCCESS, xnodes : ret } );\r
        }\r
 };\r
 \r
 function X_HTMLParser_asyncParse( html, ignoreError ){\r
        var dispatcher = X_Class_override( new X.EventDispatcher(), X_HTMLParser_asyncHtmlStringToXNode ),\r
                worker = X_HTMLParser_htmlStringToXNode;\r
-       dispatcher.listenOnce( X.Event.SUCCESS, dispatcher, dispatcher.kill );\r
+       dispatcher.listenOnce( X_Event.SUCCESS, dispatcher, dispatcher.kill );\r
        worker.flat = [];\r
        worker.nest.length = 0;\r
        worker.ignoreError = ignoreError;\r