Commit 820523d0 authored by Andrew Balholm's avatar Andrew Balholm Committed by Nigel Tao

html: correctly parse </html> in <head> element.

Pass tests1.dat, test 92:
<head></html><meta><p>

| <html>
|   <head>
|   <body>
|     <meta>
|     <p>

Also pass tests through test 98:
<p><b><div><marquee></p></b></div>

R=nigeltao
CC=golang-dev
https://golang.org/cl/5359054
parent 929070ee
......@@ -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,
......
......@@ -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},
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment