/* automatically generated by JSCoverage - do not edit */
try {
  if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) {
    // this is a browser window that was opened from another window

    if (! top.opener._$jscoverage) {
      top.opener._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null) {
    // this is a browser window

    try {
      if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) {
        top._$jscoverage = top.opener._$jscoverage;
      }
    }
    catch (e) {}

    if (! top._$jscoverage) {
      top._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null && top._$jscoverage) {
    _$jscoverage = top._$jscoverage;
  }
}
catch (e) {}
if (typeof _$jscoverage !== 'object') {
  _$jscoverage = {};
}
if (! _$jscoverage['core/htmlparser.js']) {
  _$jscoverage['core/htmlparser.js'] = [];
  _$jscoverage['core/htmlparser.js'][25] = 0;
  _$jscoverage['core/htmlparser.js'][26] = 0;
  _$jscoverage['core/htmlparser.js'][30] = 0;
  _$jscoverage['core/htmlparser.js'][34] = 0;
  _$jscoverage['core/htmlparser.js'][35] = 0;
  _$jscoverage['core/htmlparser.js'][36] = 0;
  _$jscoverage['core/htmlparser.js'][38] = 0;
  _$jscoverage['core/htmlparser.js'][39] = 0;
  _$jscoverage['core/htmlparser.js'][41] = 0;
  _$jscoverage['core/htmlparser.js'][46] = 0;
  _$jscoverage['core/htmlparser.js'][65] = 0;
  _$jscoverage['core/htmlparser.js'][67] = 0;
  _$jscoverage['core/htmlparser.js'][68] = 0;
  _$jscoverage['core/htmlparser.js'][69] = 0;
  _$jscoverage['core/htmlparser.js'][70] = 0;
  _$jscoverage['core/htmlparser.js'][71] = 0;
  _$jscoverage['core/htmlparser.js'][74] = 0;
  _$jscoverage['core/htmlparser.js'][78] = 0;
  _$jscoverage['core/htmlparser.js'][79] = 0;
  _$jscoverage['core/htmlparser.js'][80] = 0;
  _$jscoverage['core/htmlparser.js'][81] = 0;
  _$jscoverage['core/htmlparser.js'][82] = 0;
  _$jscoverage['core/htmlparser.js'][83] = 0;
  _$jscoverage['core/htmlparser.js'][84] = 0;
  _$jscoverage['core/htmlparser.js'][85] = 0;
  _$jscoverage['core/htmlparser.js'][86] = 0;
  _$jscoverage['core/htmlparser.js'][88] = 0;
  _$jscoverage['core/htmlparser.js'][90] = 0;
  _$jscoverage['core/htmlparser.js'][91] = 0;
  _$jscoverage['core/htmlparser.js'][97] = 0;
  _$jscoverage['core/htmlparser.js'][105] = 0;
  _$jscoverage['core/htmlparser.js'][106] = 0;
  _$jscoverage['core/htmlparser.js'][107] = 0;
  _$jscoverage['core/htmlparser.js'][108] = 0;
  _$jscoverage['core/htmlparser.js'][110] = 0;
  _$jscoverage['core/htmlparser.js'][113] = 0;
  _$jscoverage['core/htmlparser.js'][115] = 0;
  _$jscoverage['core/htmlparser.js'][118] = 0;
  _$jscoverage['core/htmlparser.js'][119] = 0;
  _$jscoverage['core/htmlparser.js'][126] = 0;
  _$jscoverage['core/htmlparser.js'][128] = 0;
  _$jscoverage['core/htmlparser.js'][132] = 0;
  _$jscoverage['core/htmlparser.js'][133] = 0;
  _$jscoverage['core/htmlparser.js'][134] = 0;
  _$jscoverage['core/htmlparser.js'][135] = 0;
  _$jscoverage['core/htmlparser.js'][136] = 0;
  _$jscoverage['core/htmlparser.js'][138] = 0;
  _$jscoverage['core/htmlparser.js'][140] = 0;
  _$jscoverage['core/htmlparser.js'][142] = 0;
  _$jscoverage['core/htmlparser.js'][144] = 0;
  _$jscoverage['core/htmlparser.js'][145] = 0;
  _$jscoverage['core/htmlparser.js'][146] = 0;
  _$jscoverage['core/htmlparser.js'][147] = 0;
  _$jscoverage['core/htmlparser.js'][148] = 0;
  _$jscoverage['core/htmlparser.js'][149] = 0;
  _$jscoverage['core/htmlparser.js'][150] = 0;
  _$jscoverage['core/htmlparser.js'][151] = 0;
  _$jscoverage['core/htmlparser.js'][155] = 0;
  _$jscoverage['core/htmlparser.js'][158] = 0;
  _$jscoverage['core/htmlparser.js'][160] = 0;
  _$jscoverage['core/htmlparser.js'][164] = 0;
  _$jscoverage['core/htmlparser.js'][169] = 0;
  _$jscoverage['core/htmlparser.js'][170] = 0;
  _$jscoverage['core/htmlparser.js'][172] = 0;
}
_$jscoverage['core/htmlparser.js'].source = ["<span class=\"c\">/**</span>","<span class=\"c\"> * html&#23383;&#31526;&#20018;&#36716;&#25442;&#25104;uNode&#33410;&#28857;</span>","<span class=\"c\"> * @file</span>","<span class=\"c\"> * @module UE</span>","<span class=\"c\"> * @since 1.2.6.1</span>","<span class=\"c\"> */</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * UEditor&#20844;&#29992;&#31354;&#38388;&#65292;UEditor&#25152;&#26377;&#30340;&#21151;&#33021;&#37117;&#25346;&#36733;&#22312;&#35813;&#31354;&#38388;&#19979;</span>","<span class=\"c\"> * @unfile</span>","<span class=\"c\"> * @module UE</span>","<span class=\"c\"> */</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * html&#23383;&#31526;&#20018;&#36716;&#25442;&#25104;uNode&#33410;&#28857;&#30340;&#38745;&#24577;&#26041;&#27861;</span>","<span class=\"c\"> * @method htmlparser</span>","<span class=\"c\"> * @param { String } htmlstr &#35201;&#36716;&#25442;&#30340;html&#20195;&#30721;</span>","<span class=\"c\"> * @param { Boolean } ignoreBlank &#33509;&#35774;&#32622;&#20026;true&#65292;&#36716;&#25442;&#30340;&#26102;&#20505;&#24573;&#30053;\\n\\r\\t&#31561;&#31354;&#30333;&#23383;&#31526;</span>","<span class=\"c\"> * @example</span>","<span class=\"c\"> * ```javascript</span>","<span class=\"c\"> * var root = UE.htmlparser('&lt;p&gt;&lt;b&gt;htmlparser&lt;/b&gt;&lt;/p&gt;', true);</span>","<span class=\"c\"> * ```</span>","<span class=\"c\"> */</span>","","<span class=\"k\">var</span> htmlparser <span class=\"k\">=</span> UE<span class=\"k\">.</span>htmlparser <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">(</span>htmlstr<span class=\"k\">,</span>ignoreBlank<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> re_tag <span class=\"k\">=</span> <span class=\"s\">/&lt;(?:(?:\\/([^&gt;]+)&gt;)|(?:!--([\\S|\\s]*?)--&gt;)|(?:([^\\s\\/&gt;]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'&lt;&gt;])*)\\/?&gt;))/g</span><span class=\"k\">,</span>","        re_attr <span class=\"k\">=</span> <span class=\"s\">/([\\w\\-:.]+)(?:(?:\\s*=\\s*(?:(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s&gt;]+)))|(?=\\s|$))/g</span><span class=\"k\">;</span>","","    <span class=\"c\">//ie&#19979;&#21462;&#24471;&#30340;html&#21487;&#33021;&#20250;&#26377;\\n&#23384;&#22312;&#65292;&#35201;&#21435;&#25481;&#65292;&#22312;&#22788;&#29702;replace(/[\\t\\r\\n]*/g,'');&#20195;&#30721;&#39640;&#37327;&#30340;\\n&#19981;&#33021;&#21435;&#38500;</span>","    <span class=\"k\">var</span> allowEmptyTags <span class=\"k\">=</span> <span class=\"k\">{</span>","        b<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>code<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>i<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>u<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>strike<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>s<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>tt<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>strong<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>q<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>samp<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>em<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>span<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>","        sub<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>img<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>sup<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>font<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>big<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>small<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>iframe<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>a<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>br<span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>pre<span class=\"k\">:</span><span class=\"s\">1</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","    htmlstr <span class=\"k\">=</span> htmlstr<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"k\">new</span> RegExp<span class=\"k\">(</span>domUtils<span class=\"k\">.</span>fillChar<span class=\"k\">,</span> <span class=\"s\">'g'</span><span class=\"k\">),</span> <span class=\"s\">''</span><span class=\"k\">);</span>","    <span class=\"k\">if</span><span class=\"k\">(!</span>ignoreBlank<span class=\"k\">)</span><span class=\"k\">{</span>","        htmlstr <span class=\"k\">=</span> htmlstr<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"k\">new</span> RegExp<span class=\"k\">(</span><span class=\"s\">'[</span><span class=\"t\">\\\\</span><span class=\"s\">r</span><span class=\"t\">\\\\</span><span class=\"s\">t</span><span class=\"t\">\\\\</span><span class=\"s\">n'</span><span class=\"k\">+(</span>ignoreBlank<span class=\"k\">?</span><span class=\"s\">''</span><span class=\"k\">:</span><span class=\"s\">' '</span><span class=\"k\">)+</span><span class=\"s\">']*&lt;</span><span class=\"t\">\\/</span><span class=\"s\">?(</span><span class=\"t\">\\\\</span><span class=\"s\">w+)</span><span class=\"t\">\\\\</span><span class=\"s\">s*(?:[^&gt;]*)&gt;[</span><span class=\"t\">\\\\</span><span class=\"s\">r</span><span class=\"t\">\\\\</span><span class=\"s\">t</span><span class=\"t\">\\\\</span><span class=\"s\">n'</span><span class=\"k\">+(</span>ignoreBlank<span class=\"k\">?</span><span class=\"s\">''</span><span class=\"k\">:</span><span class=\"s\">' '</span><span class=\"k\">)+</span><span class=\"s\">']*'</span><span class=\"k\">,</span><span class=\"s\">'g'</span><span class=\"k\">),</span> <span class=\"k\">function</span><span class=\"k\">(</span>a<span class=\"k\">,</span>b<span class=\"k\">)</span><span class=\"k\">{</span>","            <span class=\"c\">//br&#26242;&#26102;&#21333;&#29420;&#22788;&#29702;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>b <span class=\"k\">&amp;&amp;</span> allowEmptyTags<span class=\"k\">[</span>b<span class=\"k\">.</span>toLowerCase<span class=\"k\">()])</span><span class=\"k\">{</span>","                <span class=\"k\">return</span> a<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"s\">/(^[\\n\\r]+)|([\\n\\r]+$)/g</span><span class=\"k\">,</span><span class=\"s\">''</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> a<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"k\">new</span> RegExp<span class=\"k\">(</span><span class=\"s\">'^[</span><span class=\"t\">\\\\</span><span class=\"s\">r</span><span class=\"t\">\\\\</span><span class=\"s\">n'</span><span class=\"k\">+(</span>ignoreBlank<span class=\"k\">?</span><span class=\"s\">''</span><span class=\"k\">:</span><span class=\"s\">' '</span><span class=\"k\">)+</span><span class=\"s\">']+'</span><span class=\"k\">),</span><span class=\"s\">''</span><span class=\"k\">).</span>replace<span class=\"k\">(</span><span class=\"k\">new</span> RegExp<span class=\"k\">(</span><span class=\"s\">'[</span><span class=\"t\">\\\\</span><span class=\"s\">r</span><span class=\"t\">\\\\</span><span class=\"s\">n'</span><span class=\"k\">+(</span>ignoreBlank<span class=\"k\">?</span><span class=\"s\">''</span><span class=\"k\">:</span><span class=\"s\">' '</span><span class=\"k\">)+</span><span class=\"s\">']+$'</span><span class=\"k\">),</span><span class=\"s\">''</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">);</span>","    <span class=\"k\">}</span>","","","    <span class=\"k\">var</span> uNode <span class=\"k\">=</span> UE<span class=\"k\">.</span>uNode<span class=\"k\">,</span>","        needParentNode <span class=\"k\">=</span> <span class=\"k\">{</span>","            <span class=\"s\">'td'</span><span class=\"k\">:</span><span class=\"s\">'tr'</span><span class=\"k\">,</span>","            <span class=\"s\">'tr'</span><span class=\"k\">:[</span><span class=\"s\">'tbody'</span><span class=\"k\">,</span><span class=\"s\">'thead'</span><span class=\"k\">,</span><span class=\"s\">'tfoot'</span><span class=\"k\">],</span>","            <span class=\"s\">'tbody'</span><span class=\"k\">:</span><span class=\"s\">'table'</span><span class=\"k\">,</span>","            <span class=\"s\">'th'</span><span class=\"k\">:</span><span class=\"s\">'tr'</span><span class=\"k\">,</span>","            <span class=\"s\">'thead'</span><span class=\"k\">:</span><span class=\"s\">'table'</span><span class=\"k\">,</span>","            <span class=\"s\">'tfoot'</span><span class=\"k\">:</span><span class=\"s\">'table'</span><span class=\"k\">,</span>","            <span class=\"s\">'caption'</span><span class=\"k\">:</span><span class=\"s\">'table'</span><span class=\"k\">,</span>","            <span class=\"s\">'li'</span><span class=\"k\">:[</span><span class=\"s\">'ul'</span><span class=\"k\">,</span> <span class=\"s\">'ol'</span><span class=\"k\">],</span>","            <span class=\"s\">'dt'</span><span class=\"k\">:</span><span class=\"s\">'dl'</span><span class=\"k\">,</span>","            <span class=\"s\">'dd'</span><span class=\"k\">:</span><span class=\"s\">'dl'</span><span class=\"k\">,</span>","            <span class=\"s\">'option'</span><span class=\"k\">:</span><span class=\"s\">'select'</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        needChild <span class=\"k\">=</span> <span class=\"k\">{</span>","            <span class=\"s\">'ol'</span><span class=\"k\">:</span><span class=\"s\">'li'</span><span class=\"k\">,</span>","            <span class=\"s\">'ul'</span><span class=\"k\">:</span><span class=\"s\">'li'</span>","        <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"k\">function</span> text<span class=\"k\">(</span>parent<span class=\"k\">,</span> data<span class=\"k\">)</span> <span class=\"k\">{</span>","","        <span class=\"k\">if</span><span class=\"k\">(</span>needChild<span class=\"k\">[</span>parent<span class=\"k\">.</span>tagName<span class=\"k\">])</span><span class=\"k\">{</span>","            <span class=\"k\">var</span> tmpNode <span class=\"k\">=</span> uNode<span class=\"k\">.</span>createElement<span class=\"k\">(</span>needChild<span class=\"k\">[</span>parent<span class=\"k\">.</span>tagName<span class=\"k\">]);</span>","            parent<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>tmpNode<span class=\"k\">);</span>","            tmpNode<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>uNode<span class=\"k\">.</span>createText<span class=\"k\">(</span>data<span class=\"k\">));</span>","            parent <span class=\"k\">=</span> tmpNode<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">else</span><span class=\"k\">{</span>","","            parent<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>uNode<span class=\"k\">.</span>createText<span class=\"k\">(</span>data<span class=\"k\">));</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","","    <span class=\"k\">function</span> element<span class=\"k\">(</span>parent<span class=\"k\">,</span> tagName<span class=\"k\">,</span> htmlattr<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> needParentTag<span class=\"k\">;</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>needParentTag <span class=\"k\">=</span> needParentNode<span class=\"k\">[</span>tagName<span class=\"k\">])</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> tmpParent <span class=\"k\">=</span> parent<span class=\"k\">,</span>hasParent<span class=\"k\">;</span>","            <span class=\"k\">while</span><span class=\"k\">(</span>tmpParent<span class=\"k\">.</span>type <span class=\"k\">!=</span> <span class=\"s\">'root'</span><span class=\"k\">)</span><span class=\"k\">{</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>utils<span class=\"k\">.</span>isArray<span class=\"k\">(</span>needParentTag<span class=\"k\">)</span> <span class=\"k\">?</span> utils<span class=\"k\">.</span>indexOf<span class=\"k\">(</span>needParentTag<span class=\"k\">,</span> tmpParent<span class=\"k\">.</span>tagName<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"k\">-</span><span class=\"s\">1</span> <span class=\"k\">:</span> needParentTag <span class=\"k\">==</span> tmpParent<span class=\"k\">.</span>tagName<span class=\"k\">)</span><span class=\"k\">{</span>","                    parent <span class=\"k\">=</span> tmpParent<span class=\"k\">;</span>","                    hasParent <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                    <span class=\"k\">break</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","                tmpParent <span class=\"k\">=</span> tmpParent<span class=\"k\">.</span>parentNode<span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span><span class=\"k\">(!</span>hasParent<span class=\"k\">)</span><span class=\"k\">{</span>","                parent <span class=\"k\">=</span> element<span class=\"k\">(</span>parent<span class=\"k\">,</span> utils<span class=\"k\">.</span>isArray<span class=\"k\">(</span>needParentTag<span class=\"k\">)</span> <span class=\"k\">?</span> needParentTag<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">:</span> needParentTag<span class=\"k\">)</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        <span class=\"c\">//&#25353;dtd&#22788;&#29702;&#23884;&#22871;</span>","<span class=\"c\">//        if(parent.type != 'root' &amp;&amp; !dtd[parent.tagName][tagName])</span>","<span class=\"c\">//            parent = parent.parentNode;</span>","        <span class=\"k\">var</span> elm <span class=\"k\">=</span> <span class=\"k\">new</span> uNode<span class=\"k\">(</span><span class=\"k\">{</span>","            parentNode<span class=\"k\">:</span>parent<span class=\"k\">,</span>","            type<span class=\"k\">:</span><span class=\"s\">'element'</span><span class=\"k\">,</span>","            tagName<span class=\"k\">:</span>tagName<span class=\"k\">.</span>toLowerCase<span class=\"k\">(),</span>","            <span class=\"c\">//&#26159;&#33258;&#38381;&#21512;&#30340;&#22788;&#29702;&#19968;&#19979;</span>","            children<span class=\"k\">:</span>dtd<span class=\"k\">.</span>$empty<span class=\"k\">[</span>tagName<span class=\"k\">]</span> <span class=\"k\">?</span> <span class=\"k\">null</span> <span class=\"k\">:</span> <span class=\"k\">[]</span>","        <span class=\"k\">}</span><span class=\"k\">);</span>","        <span class=\"c\">//&#22914;&#26524;&#23646;&#24615;&#23384;&#22312;&#65292;&#22788;&#29702;&#23646;&#24615;</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>htmlattr<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> attrs <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">,</span> match<span class=\"k\">;</span>","            <span class=\"k\">while</span> <span class=\"k\">(</span>match <span class=\"k\">=</span> re_attr<span class=\"k\">.</span>exec<span class=\"k\">(</span>htmlattr<span class=\"k\">))</span> <span class=\"k\">{</span>","                attrs<span class=\"k\">[</span>match<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">].</span>toLowerCase<span class=\"k\">()]</span> <span class=\"k\">=</span> utils<span class=\"k\">.</span>unhtml<span class=\"k\">(</span>match<span class=\"k\">[</span><span class=\"s\">2</span><span class=\"k\">]</span> <span class=\"k\">||</span> match<span class=\"k\">[</span><span class=\"s\">3</span><span class=\"k\">]</span> <span class=\"k\">||</span> match<span class=\"k\">[</span><span class=\"s\">4</span><span class=\"k\">])</span>","            <span class=\"k\">}</span>","            elm<span class=\"k\">.</span>attrs <span class=\"k\">=</span> attrs<span class=\"k\">;</span>","        <span class=\"k\">}</span>","","        parent<span class=\"k\">.</span>children<span class=\"k\">.</span>push<span class=\"k\">(</span>elm<span class=\"k\">);</span>","        <span class=\"c\">//&#22914;&#26524;&#26159;&#33258;&#38381;&#21512;&#33410;&#28857;&#36820;&#22238;&#29238;&#20146;&#33410;&#28857;</span>","        <span class=\"k\">return</span>  dtd<span class=\"k\">.</span>$empty<span class=\"k\">[</span>tagName<span class=\"k\">]</span> <span class=\"k\">?</span> parent <span class=\"k\">:</span> elm","    <span class=\"k\">}</span>","","    <span class=\"k\">function</span> comment<span class=\"k\">(</span>parent<span class=\"k\">,</span> data<span class=\"k\">)</span> <span class=\"k\">{</span>","        parent<span class=\"k\">.</span>children<span class=\"k\">.</span>push<span class=\"k\">(</span><span class=\"k\">new</span> uNode<span class=\"k\">(</span><span class=\"k\">{</span>","            type<span class=\"k\">:</span><span class=\"s\">'comment'</span><span class=\"k\">,</span>","            data<span class=\"k\">:</span>data<span class=\"k\">,</span>","            parentNode<span class=\"k\">:</span>parent","        <span class=\"k\">}</span><span class=\"k\">));</span>","    <span class=\"k\">}</span>","","    <span class=\"k\">var</span> match<span class=\"k\">,</span> currentIndex <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> nextIndex <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","    <span class=\"c\">//&#35774;&#32622;&#26681;&#33410;&#28857;</span>","    <span class=\"k\">var</span> root <span class=\"k\">=</span> <span class=\"k\">new</span> uNode<span class=\"k\">(</span><span class=\"k\">{</span>","        type<span class=\"k\">:</span><span class=\"s\">'root'</span><span class=\"k\">,</span>","        children<span class=\"k\">:[]</span>","    <span class=\"k\">}</span><span class=\"k\">);</span>","    <span class=\"k\">var</span> currentParent <span class=\"k\">=</span> root<span class=\"k\">;</span>","    <span class=\"k\">while</span> <span class=\"k\">(</span>match <span class=\"k\">=</span> re_tag<span class=\"k\">.</span>exec<span class=\"k\">(</span>htmlstr<span class=\"k\">))</span> <span class=\"k\">{</span>","        currentIndex <span class=\"k\">=</span> match<span class=\"k\">.</span>index<span class=\"k\">;</span>","        <span class=\"k\">try</span><span class=\"k\">{</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>currentIndex <span class=\"k\">&gt;</span> nextIndex<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"c\">//text node</span>","                text<span class=\"k\">(</span>currentParent<span class=\"k\">,</span> htmlstr<span class=\"k\">.</span>slice<span class=\"k\">(</span>nextIndex<span class=\"k\">,</span> currentIndex<span class=\"k\">));</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>match<span class=\"k\">[</span><span class=\"s\">3</span><span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"c\">//start tag</span>","                currentParent <span class=\"k\">=</span> element<span class=\"k\">(</span>currentParent<span class=\"k\">,</span> match<span class=\"k\">[</span><span class=\"s\">3</span><span class=\"k\">].</span>toLowerCase<span class=\"k\">(),</span> match<span class=\"k\">[</span><span class=\"s\">4</span><span class=\"k\">]);</span>","","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>match<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>currentParent<span class=\"k\">.</span>type <span class=\"k\">!=</span> <span class=\"s\">'root'</span><span class=\"k\">)</span><span class=\"k\">{</span>","                    <span class=\"k\">var</span> tmpParent <span class=\"k\">=</span> currentParent<span class=\"k\">;</span>","                    <span class=\"k\">while</span><span class=\"k\">(</span>currentParent<span class=\"k\">.</span>type <span class=\"k\">==</span> <span class=\"s\">'element'</span> <span class=\"k\">&amp;&amp;</span> currentParent<span class=\"k\">.</span>tagName <span class=\"k\">!=</span> match<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">].</span>toLowerCase<span class=\"k\">())</span><span class=\"k\">{</span>","                        currentParent <span class=\"k\">=</span> currentParent<span class=\"k\">.</span>parentNode<span class=\"k\">;</span>","                        <span class=\"k\">if</span><span class=\"k\">(</span>currentParent<span class=\"k\">.</span>type <span class=\"k\">==</span> <span class=\"s\">'root'</span><span class=\"k\">)</span><span class=\"k\">{</span>","                            currentParent <span class=\"k\">=</span> tmpParent<span class=\"k\">;</span>","                            <span class=\"k\">throw</span> <span class=\"s\">'break'</span>","                        <span class=\"k\">}</span>","                    <span class=\"k\">}</span>","                    <span class=\"c\">//end tag</span>","                    currentParent <span class=\"k\">=</span> currentParent<span class=\"k\">.</span>parentNode<span class=\"k\">;</span>","                <span class=\"k\">}</span>","","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>match<span class=\"k\">[</span><span class=\"s\">2</span><span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"c\">//comment</span>","                comment<span class=\"k\">(</span>currentParent<span class=\"k\">,</span> match<span class=\"k\">[</span><span class=\"s\">2</span><span class=\"k\">])</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">catch</span><span class=\"k\">(</span>e<span class=\"k\">)</span><span class=\"k\">{}</span>","","        nextIndex <span class=\"k\">=</span> re_tag<span class=\"k\">.</span>lastIndex<span class=\"k\">;</span>","","    <span class=\"k\">}</span>","    <span class=\"c\">//&#22914;&#26524;&#32467;&#26463;&#26159;&#25991;&#26412;&#65292;&#23601;&#26377;&#21487;&#33021;&#20002;&#25481;&#65292;&#25152;&#20197;&#36825;&#37324;&#25163;&#21160;&#21028;&#26029;&#19968;&#19979;</span>","    <span class=\"c\">//&#20363;&#22914; &lt;li&gt;sdfsdfsdf&lt;li&gt;sdfsdfsdfsdf</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>nextIndex <span class=\"k\">&lt;</span> htmlstr<span class=\"k\">.</span>length<span class=\"k\">)</span> <span class=\"k\">{</span>","        text<span class=\"k\">(</span>currentParent<span class=\"k\">,</span> htmlstr<span class=\"k\">.</span>slice<span class=\"k\">(</span>nextIndex<span class=\"k\">));</span>","    <span class=\"k\">}</span>","    <span class=\"k\">return</span> root<span class=\"k\">;</span>","<span class=\"k\">}</span><span class=\"k\">;</span>"];
_$jscoverage['core/htmlparser.js'][25]++;
var htmlparser = (UE.htmlparser = (function (htmlstr, ignoreBlank) {
  _$jscoverage['core/htmlparser.js'][26]++;
  var re_tag = /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g, re_attr = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g;
  _$jscoverage['core/htmlparser.js'][30]++;
  var allowEmptyTags = {b: 1, code: 1, i: 1, u: 1, strike: 1, s: 1, tt: 1, strong: 1, q: 1, samp: 1, em: 1, span: 1, sub: 1, img: 1, sup: 1, font: 1, big: 1, small: 1, iframe: 1, a: 1, br: 1, pre: 1};
  _$jscoverage['core/htmlparser.js'][34]++;
  htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar, "g"), "");
  _$jscoverage['core/htmlparser.js'][35]++;
  if ((! ignoreBlank)) {
    _$jscoverage['core/htmlparser.js'][36]++;
    htmlstr = htmlstr.replace(new RegExp(("[\\r\\t\\n" + (ignoreBlank? "": " ") + "]*</?(\\w+)\\s*(?:[^>]*)>[\\r\\t\\n" + (ignoreBlank? "": " ") + "]*"), "g"), (function (a, b) {
  _$jscoverage['core/htmlparser.js'][38]++;
  if ((b && allowEmptyTags[b.toLowerCase()])) {
    _$jscoverage['core/htmlparser.js'][39]++;
    return a.replace(/(^[\n\r]+)|([\n\r]+$)/g, "");
  }
  _$jscoverage['core/htmlparser.js'][41]++;
  return a.replace(new RegExp(("^[\\r\\n" + (ignoreBlank? "": " ") + "]+")), "").replace(new RegExp(("[\\r\\n" + (ignoreBlank? "": " ") + "]+$")), "");
}));
  }
  _$jscoverage['core/htmlparser.js'][46]++;
  var uNode = UE.uNode, needParentNode = {"td": "tr", "tr": ["tbody", "thead", "tfoot"], "tbody": "table", "th": "tr", "thead": "table", "tfoot": "table", "caption": "table", "li": ["ul", "ol"], "dt": "dl", "dd": "dl", "option": "select"}, needChild = {"ol": "li", "ul": "li"};
  _$jscoverage['core/htmlparser.js'][65]++;
  function text(parent, data) {
    _$jscoverage['core/htmlparser.js'][67]++;
    if (needChild[parent.tagName]) {
      _$jscoverage['core/htmlparser.js'][68]++;
      var tmpNode = uNode.createElement(needChild[parent.tagName]);
      _$jscoverage['core/htmlparser.js'][69]++;
      parent.appendChild(tmpNode);
      _$jscoverage['core/htmlparser.js'][70]++;
      tmpNode.appendChild(uNode.createText(data));
      _$jscoverage['core/htmlparser.js'][71]++;
      parent = tmpNode;
    }
    else {
      _$jscoverage['core/htmlparser.js'][74]++;
      parent.appendChild(uNode.createText(data));
    }
}
  _$jscoverage['core/htmlparser.js'][78]++;
  function element(parent, tagName, htmlattr) {
    _$jscoverage['core/htmlparser.js'][79]++;
    var needParentTag;
    _$jscoverage['core/htmlparser.js'][80]++;
    if ((needParentTag = needParentNode[tagName])) {
      _$jscoverage['core/htmlparser.js'][81]++;
      var tmpParent = parent, hasParent;
      _$jscoverage['core/htmlparser.js'][82]++;
      while ((tmpParent.type != "root")) {
        _$jscoverage['core/htmlparser.js'][83]++;
        if ((utils.isArray(needParentTag)? (utils.indexOf(needParentTag, tmpParent.tagName) != -1): (needParentTag == tmpParent.tagName))) {
          _$jscoverage['core/htmlparser.js'][84]++;
          parent = tmpParent;
          _$jscoverage['core/htmlparser.js'][85]++;
          hasParent = true;
          _$jscoverage['core/htmlparser.js'][86]++;
          break;
        }
        _$jscoverage['core/htmlparser.js'][88]++;
        tmpParent = tmpParent.parentNode;
}
      _$jscoverage['core/htmlparser.js'][90]++;
      if ((! hasParent)) {
        _$jscoverage['core/htmlparser.js'][91]++;
        parent = element(parent, (utils.isArray(needParentTag)? needParentTag[0]: needParentTag));
      }
    }
    _$jscoverage['core/htmlparser.js'][97]++;
    var elm = new uNode({parentNode: parent, type: "element", tagName: tagName.toLowerCase(), children: (dtd.$empty[tagName]? null: [])});
    _$jscoverage['core/htmlparser.js'][105]++;
    if (htmlattr) {
      _$jscoverage['core/htmlparser.js'][106]++;
      var attrs = {}, match;
      _$jscoverage['core/htmlparser.js'][107]++;
      while ((match = re_attr.exec(htmlattr))) {
        _$jscoverage['core/htmlparser.js'][108]++;
        attrs[match[1].toLowerCase()] = utils.unhtml((match[2] || match[3] || match[4]));
}
      _$jscoverage['core/htmlparser.js'][110]++;
      elm.attrs = attrs;
    }
    _$jscoverage['core/htmlparser.js'][113]++;
    parent.children.push(elm);
    _$jscoverage['core/htmlparser.js'][115]++;
    return (dtd.$empty[tagName]? parent: elm);
}
  _$jscoverage['core/htmlparser.js'][118]++;
  function comment(parent, data) {
    _$jscoverage['core/htmlparser.js'][119]++;
    parent.children.push(new uNode({type: "comment", data: data, parentNode: parent}));
}
  _$jscoverage['core/htmlparser.js'][126]++;
  var match, currentIndex = 0, nextIndex = 0;
  _$jscoverage['core/htmlparser.js'][128]++;
  var root = new uNode({type: "root", children: []});
  _$jscoverage['core/htmlparser.js'][132]++;
  var currentParent = root;
  _$jscoverage['core/htmlparser.js'][133]++;
  while ((match = re_tag.exec(htmlstr))) {
    _$jscoverage['core/htmlparser.js'][134]++;
    currentIndex = match.index;
    _$jscoverage['core/htmlparser.js'][135]++;
    try {
      _$jscoverage['core/htmlparser.js'][136]++;
      if ((currentIndex > nextIndex)) {
        _$jscoverage['core/htmlparser.js'][138]++;
        text(currentParent, htmlstr.slice(nextIndex, currentIndex));
      }
      _$jscoverage['core/htmlparser.js'][140]++;
      if (match[3]) {
        _$jscoverage['core/htmlparser.js'][142]++;
        currentParent = element(currentParent, match[3].toLowerCase(), match[4]);
      }
      else {
        _$jscoverage['core/htmlparser.js'][144]++;
        if (match[1]) {
          _$jscoverage['core/htmlparser.js'][145]++;
          if ((currentParent.type != "root")) {
            _$jscoverage['core/htmlparser.js'][146]++;
            var tmpParent = currentParent;
            _$jscoverage['core/htmlparser.js'][147]++;
            while (((currentParent.type == "element") && (currentParent.tagName != match[1].toLowerCase()))) {
              _$jscoverage['core/htmlparser.js'][148]++;
              currentParent = currentParent.parentNode;
              _$jscoverage['core/htmlparser.js'][149]++;
              if ((currentParent.type == "root")) {
                _$jscoverage['core/htmlparser.js'][150]++;
                currentParent = tmpParent;
                _$jscoverage['core/htmlparser.js'][151]++;
                throw "break";
              }
}
            _$jscoverage['core/htmlparser.js'][155]++;
            currentParent = currentParent.parentNode;
          }
        }
        else {
          _$jscoverage['core/htmlparser.js'][158]++;
          if (match[2]) {
            _$jscoverage['core/htmlparser.js'][160]++;
            comment(currentParent, match[2]);
          }
        }
      }
    }
    catch (e) {
    }
    _$jscoverage['core/htmlparser.js'][164]++;
    nextIndex = re_tag.lastIndex;
}
  _$jscoverage['core/htmlparser.js'][169]++;
  if ((nextIndex < htmlstr.length)) {
    _$jscoverage['core/htmlparser.js'][170]++;
    text(currentParent, htmlstr.slice(nextIndex));
  }
  _$jscoverage['core/htmlparser.js'][172]++;
  return root;
}));
