@@ 2724-2758 (lines=35) @@ | ||
2721 | return $this->mainPhase($token); |
|
2722 | ||
2723 | /* An end tag whose tag name is "table" */ |
|
2724 | } elseif($token['type'] === HTML5::ENDTAG && |
|
2725 | $token['name'] === 'table') { |
|
2726 | /* If the stack of open elements does not have an element in table |
|
2727 | scope with the same tag name as the token, this is a parse error. |
|
2728 | Ignore the token. (innerHTML case) */ |
|
2729 | if(!$this->elementInScope($token['name'], true)) { |
|
2730 | return false; |
|
2731 | ||
2732 | /* Otherwise: */ |
|
2733 | } else { |
|
2734 | /* Generate implied end tags. */ |
|
2735 | $this->generateImpliedEndTags(); |
|
2736 | ||
2737 | /* Now, if the current node is not a table element, then this |
|
2738 | is a parse error. */ |
|
2739 | // w/e |
|
2740 | ||
2741 | /* Pop elements from this stack until a table element has been |
|
2742 | popped from the stack. */ |
|
2743 | while(true) { |
|
2744 | $current = end($this->stack)->nodeName; |
|
2745 | array_pop($this->stack); |
|
2746 | ||
2747 | if($current === 'table') { |
|
2748 | break; |
|
2749 | } |
|
2750 | } |
|
2751 | ||
2752 | /* Reset the insertion mode appropriately. */ |
|
2753 | $this->resetInsertionMode(); |
|
2754 | } |
|
2755 | ||
2756 | /* An end tag whose tag name is one of: "body", "caption", "col", |
|
2757 | "colgroup", "html", "tbody", "td", "tfoot", "th", "thead", "tr" */ |
|
2758 | } elseif($token['type'] === HTML5::ENDTAG && in_array($token['name'], |
|
2759 | array('body', 'caption', 'col', 'colgroup', 'html', 'tbody', 'td', |
|
2760 | 'tfoot', 'th', 'thead', 'tr'))) { |
|
2761 | // Parse error. Ignore the token. |
|
@@ 3298-3324 (lines=27) @@ | ||
3295 | } |
|
3296 | ||
3297 | /* An end tag whose tag name is "select" */ |
|
3298 | } elseif($token['type'] === HTML5::ENDTAG && |
|
3299 | $token['name'] === 'select') { |
|
3300 | /* If the stack of open elements does not have an element in table |
|
3301 | scope with the same tag name as the token, this is a parse error. |
|
3302 | Ignore the token. (innerHTML case) */ |
|
3303 | if(!$this->elementInScope($token['name'], true)) { |
|
3304 | // w/e |
|
3305 | ||
3306 | /* Otherwise: */ |
|
3307 | } else { |
|
3308 | /* Pop elements from the stack of open elements until a select |
|
3309 | element has been popped from the stack. */ |
|
3310 | while(true) { |
|
3311 | $current = end($this->stack)->nodeName; |
|
3312 | array_pop($this->stack); |
|
3313 | ||
3314 | if($current === 'select') { |
|
3315 | break; |
|
3316 | } |
|
3317 | } |
|
3318 | ||
3319 | /* Reset the insertion mode appropriately. */ |
|
3320 | $this->resetInsertionMode(); |
|
3321 | } |
|
3322 | ||
3323 | /* A start tag whose tag name is "select" */ |
|
3324 | } elseif($token['name'] === 'select' && |
|
3325 | $token['type'] === HTML5::STARTTAG) { |
|
3326 | /* Parse error. Act as if the token had been an end tag with the |
|
3327 | tag name "select" instead. */ |