|
@@ 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. */ |