| 335 |
!!!next-input-character; |
!!!next-input-character; |
| 336 |
next TAGNAME; |
next TAGNAME; |
| 337 |
} else { |
} else { |
|
!!!parse-error (type => 'unmatched end tag'); |
|
| 338 |
$self->{next_input_character} = shift @next_char; # reconsume |
$self->{next_input_character} = shift @next_char; # reconsume |
| 339 |
!!!back-next-input-character (@next_char); |
!!!back-next-input-character (@next_char); |
| 340 |
$self->{state} = 'data'; |
$self->{state} = 'data'; |
| 354 |
$self->{next_input_character} == 0x003E or # > |
$self->{next_input_character} == 0x003E or # > |
| 355 |
$self->{next_input_character} == 0x002F or # / |
$self->{next_input_character} == 0x002F or # / |
| 356 |
$self->{next_input_character} == -1) { |
$self->{next_input_character} == -1) { |
|
!!!parse-error (type => 'unmatched end tag'); |
|
| 357 |
$self->{next_input_character} = shift @next_char; # reconsume |
$self->{next_input_character} = shift @next_char; # reconsume |
| 358 |
!!!back-next-input-character (@next_char); |
!!!back-next-input-character (@next_char); |
| 359 |
$self->{state} = 'data'; |
$self->{state} = 'data'; |
| 2719 |
return; |
return; |
| 2720 |
} elsif ({ |
} elsif ({ |
| 2721 |
b => 1, big => 1, em => 1, font => 1, i => 1, |
b => 1, big => 1, em => 1, font => 1, i => 1, |
| 2722 |
nobr => 1, s => 1, small => 1, strile => 1, |
s => 1, small => 1, strile => 1, |
| 2723 |
strong => 1, tt => 1, u => 1, |
strong => 1, tt => 1, u => 1, |
| 2724 |
}->{$token->{tag_name}}) { |
}->{$token->{tag_name}}) { |
| 2725 |
$reconstruct_active_formatting_elements->($insert_to_current); |
$reconstruct_active_formatting_elements->($insert_to_current); |
| 2726 |
|
|
| 2727 |
!!!insert-element-t ($token->{tag_name}, $token->{attributes}); |
!!!insert-element-t ($token->{tag_name}, $token->{attributes}); |
| 2728 |
push @$active_formatting_elements, $self->{open_elements}->[-1]; |
push @$active_formatting_elements, $self->{open_elements}->[-1]; |
| 2729 |
|
|
| 2730 |
|
!!!next-token; |
| 2731 |
|
return; |
| 2732 |
|
} elsif ($token->{tag_name} eq 'nobr') { |
| 2733 |
|
$reconstruct_active_formatting_elements->($insert_to_current); |
| 2734 |
|
|
| 2735 |
|
## has a |nobr| element in scope |
| 2736 |
|
INSCOPE: for (reverse 0..$#{$self->{open_elements}}) { |
| 2737 |
|
my $node = $self->{open_elements}->[$_]; |
| 2738 |
|
if ($node->[1] eq 'nobr') { |
| 2739 |
|
!!!back-token; |
| 2740 |
|
$token = {type => 'end tag', tag_name => 'nobr'}; |
| 2741 |
|
return; |
| 2742 |
|
} elsif ({ |
| 2743 |
|
table => 1, caption => 1, td => 1, th => 1, |
| 2744 |
|
button => 1, marquee => 1, object => 1, html => 1, |
| 2745 |
|
}->{$node->[1]}) { |
| 2746 |
|
last INSCOPE; |
| 2747 |
|
} |
| 2748 |
|
} # INSCOPE |
| 2749 |
|
|
| 2750 |
|
!!!insert-element-t ($token->{tag_name}, $token->{attributes}); |
| 2751 |
|
push @$active_formatting_elements, $self->{open_elements}->[-1]; |
| 2752 |
|
|
| 2753 |
!!!next-token; |
!!!next-token; |
| 2754 |
return; |
return; |