869 |
$self->{document}->manakai_is_html (1); # MUST |
$self->{document}->manakai_is_html (1); # MUST |
870 |
$self->{document}->set_user_data (manakai_source_line => 1); |
$self->{document}->set_user_data (manakai_source_line => 1); |
871 |
$self->{document}->set_user_data (manakai_source_column => 1); |
$self->{document}->set_user_data (manakai_source_column => 1); |
872 |
|
|
873 |
|
$self->{frameset_ok} = 1; |
874 |
} # _initialize_tree_constructor |
} # _initialize_tree_constructor |
875 |
|
|
876 |
sub _terminate_tree_constructor ($) { |
sub _terminate_tree_constructor ($) { |
4339 |
!!!nack ('t343.1'); |
!!!nack ('t343.1'); |
4340 |
!!!next-token; |
!!!next-token; |
4341 |
next B; |
next B; |
4342 |
|
} elsif ($token->{tag_nane} eq 'frameset') { |
4343 |
|
!!!parse-error (type => 'in body', text => $token->{tag_name}, |
4344 |
|
token => $token); |
4345 |
|
|
4346 |
|
if (@{$self->{open_elements}} == 1 or |
4347 |
|
not ($self->{open_elements}->[1]->[1] != BODY_EL)) { |
4348 |
|
!!!cp ('t343.2'); |
4349 |
|
## Ignore the token. |
4350 |
|
} elsif (not $self->{frameset_ok}) { |
4351 |
|
!!!cp ('t343.3'); |
4352 |
|
## Ignore the token. |
4353 |
|
} else { |
4354 |
|
!!!cp ('t343.4'); |
4355 |
|
|
4356 |
|
## 1. Remove the second element. |
4357 |
|
my $body = $self->{open_elements}->[1]->[0]; |
4358 |
|
my $body_parent = $body->parent_node; |
4359 |
|
$body_parent->remove_child ($body) if $body_parent; |
4360 |
|
|
4361 |
|
## 2. Pop nodes. |
4362 |
|
splice @{$self->{open_elements}}, 1; |
4363 |
|
|
4364 |
|
## 3. Insert. |
4365 |
|
!!!insert-element-t ($token->{tag_name}, $token->{attributes}, $token); |
4366 |
|
|
4367 |
|
## 4. Switch. |
4368 |
|
$self->{insertion_mode} = IN_FRAMESET_IM; |
4369 |
|
} |
4370 |
|
|
4371 |
|
!!!nack ('t343.5'); |
4372 |
|
!!!next-token; |
4373 |
|
next B; |
4374 |
} elsif ({ |
} elsif ({ |
4375 |
## NOTE: Start tags for non-phrasing flow content elements |
## NOTE: Start tags for non-phrasing flow content elements |
4376 |
|
|