| 249 |
mtext => FOREIGN_FLOW_CONTENT_EL, |
mtext => FOREIGN_FLOW_CONTENT_EL, |
| 250 |
}, |
}, |
| 251 |
$SVG_NS => { |
$SVG_NS => { |
| 252 |
foreignObject => FOREIGN_FLOW_CONTENT_EL, |
foreignObject => FOREIGN_FLOW_CONTENT_EL | MISC_SCOPING_EL, |
| 253 |
desc => FOREIGN_FLOW_CONTENT_EL, |
desc => FOREIGN_FLOW_CONTENT_EL, |
| 254 |
title => FOREIGN_FLOW_CONTENT_EL, |
title => FOREIGN_FLOW_CONTENT_EL, |
| 255 |
}, |
}, |
| 10033 |
} |
} |
| 10034 |
} |
} |
| 10035 |
|
|
| 10036 |
$self->{parse_error}->(level => $self->{level}->{must}, type => 'start tag not allowed', |
## NOTE: |<marquee></body>|, |<svg><foreignobject></body>| |
| 10037 |
|
|
| 10038 |
|
$self->{parse_error}->(level => $self->{level}->{must}, type => 'unmatched end tag', |
| 10039 |
text => $token->{tag_name}, token => $token); |
text => $token->{tag_name}, token => $token); |
| 10040 |
## NOTE: Ignore the token. |
## NOTE: Ignore the token. |
| 10041 |
$token = $self->_get_next_token; |
$token = $self->_get_next_token; |
| 10363 |
|
|
| 10364 |
## Step 2 |
## Step 2 |
| 10365 |
S2: { |
S2: { |
| 10366 |
if ($node->[0]->manakai_local_name eq $token->{tag_name}) { |
my $node_tag_name = $node->[0]->manakai_local_name; |
| 10367 |
|
$node_tag_name =~ tr/A-Z/a-z/; # for SVG camelCase tag names |
| 10368 |
|
if ($node_tag_name eq $token->{tag_name}) { |
| 10369 |
## Step 1 |
## Step 1 |
| 10370 |
## generate implied end tags |
## generate implied end tags |
| 10371 |
while ($self->{open_elements}->[-1]->[1] & END_TAG_OPTIONAL_EL) { |
while ($self->{open_elements}->[-1]->[1] & END_TAG_OPTIONAL_EL) { |
| 10378 |
} |
} |
| 10379 |
|
|
| 10380 |
## Step 2 |
## Step 2 |
| 10381 |
if ($self->{open_elements}->[-1]->[0]->manakai_local_name |
my $current_tag_name |
| 10382 |
ne $token->{tag_name}) { |
= $self->{open_elements}->[-1]->[0]->manakai_local_name; |
| 10383 |
|
$current_tag_name =~ tr/A-Z/a-z/; |
| 10384 |
|
if ($current_tag_name ne $token->{tag_name}) { |
| 10385 |
|
|
| 10386 |
## NOTE: <x><y></x> |
## NOTE: <x><y></x> |
| 10387 |
$self->{parse_error}->(level => $self->{level}->{must}, type => 'not closed', |
$self->{parse_error}->(level => $self->{level}->{must}, type => 'not closed', |