Skip to content

Commit

Permalink
Highlight special onclosetag logic for p and br
Browse files Browse the repository at this point in the history
`Parser.ts` has special `onclosetag` logic for
[`p`](https://github.com/fb55/htmlparser2/blob/6445c32b05dc070049eeaaf201bfc123daca3d37/src/Parser.ts#L336)
and
[`br`](https://github.com/fb55/htmlparser2/blob/6445c32b05dc070049eeaaf201bfc123daca3d37/src/Parser.ts#L340) tags.

The updated tests in PR fb55#1046 were unable to expose any
behavioral differences, despite the different code paths
taken by the existing special logic. So I decided it would be
best to at least to clarify with an update to the existing
comment in the code, as well as by using the literal values
'p' and 'br' instead of the variable `name` (which is
guaranteed to have those values).
  • Loading branch information
vassudanagunta committed Dec 14, 2021
1 parent 40ac4c4 commit 6df0bb6
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/Parser.ts
Expand Up @@ -334,14 +334,15 @@ export class Parser {
}
} else this.stack.length = pos;
} else if (!this.options.xmlMode && name === "p") {
this.emitOpenTag(name);
// Implicit open before close
this.emitOpenTag("p");
this.closeCurrentTag(true);
}
} else if (!this.options.xmlMode && name === "br") {
// We can't go through `emitOpenTag` here, as `br` would be implicitly closed.
this.cbs.onopentagname?.(name);
this.cbs.onopentag?.(name, {}, true);
this.cbs.onclosetag?.(name, false);
// We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.
this.cbs.onopentagname?.("br");
this.cbs.onopentag?.("br", {}, true);
this.cbs.onclosetag?.("br", false);
}

// Set `startIndex` for next node
Expand Down

0 comments on commit 6df0bb6

Please sign in to comment.