diff --git a/src/pkg/html/parse.go b/src/pkg/html/parse.go index f47d4ea147..c64eb66fcb 100644 --- a/src/pkg/html/parse.go +++ b/src/pkg/html/parse.go @@ -470,10 +470,15 @@ func inHeadIM(p *parser) (insertionMode, bool) { implied = true } case EndTagToken: - if p.tok.Data == "head" { + switch p.tok.Data { + case "head": pop = true + case "body", "html", "br": + implied = true + default: + // Ignore the token. + return inHeadIM, true } - // TODO. case CommentToken: p.addChild(&Node{ Type: CommentNode, @@ -524,7 +529,14 @@ func afterHeadIM(p *parser) (insertionMode, bool) { framesetOK = true } case EndTagToken: - // TODO. + switch p.tok.Data { + case "body", "html", "br": + implied = true + framesetOK = true + default: + // Ignore the token. + return afterHeadIM, true + } case CommentToken: p.addChild(&Node{ Type: CommentNode, diff --git a/src/pkg/html/parse_test.go b/src/pkg/html/parse_test.go index 27979225b3..14863da79f 100644 --- a/src/pkg/html/parse_test.go +++ b/src/pkg/html/parse_test.go @@ -133,7 +133,7 @@ func TestParser(t *testing.T) { n int }{ // TODO(nigeltao): Process all the test cases from all the .dat files. - {"tests1.dat", 92}, + {"tests1.dat", 99}, {"tests2.dat", 0}, {"tests3.dat", 0}, }