diff --git a/html/token_test.go b/html/token_test.go
index 3d20e8bce4..e0b2bbb49e 100644
--- a/html/token_test.go
+++ b/html/token_test.go
@@ -14,6 +14,24 @@ import (
"testing"
)
+// https://github.com/golang/go/issues/58246
+const issue58246 = ``
+const issue58246Rendered = ``
+
type tokenTest struct {
// A short description of the test case.
desc string
@@ -411,6 +429,78 @@ var tokenTests = []tokenTest{
"az",
"a$$z",
},
+ {
+ "comment23",
+ "az",
+ "a$$z",
+ },
+ {
+ "comment24",
+ "a",
+ },
+ {
+ "comment25",
+ "a",
+ },
+ {
+ "comment26",
+ "a",
+ },
+ {
+ "comment27",
+ "az",
+ "a$$z",
+ },
+ {
+ "comment28",
+ "az",
+ "a$$z",
+ },
+ {
+ "comment29",
+ "az",
+ "a$$z",
+ },
+ {
+ "comment30",
+ "az",
+ "a$$z",
+ },
+ // https://stackoverflow.design/email/base/mso/#targeting-specific-outlook-versions
+ // says "[For] Windows Outlook 2003 and above... conditional comments allow
+ // us to add bits of HTML that are only read by the Word-based versions of
+ // Outlook". TODO: these comments (with angle brackets) should pass through
+ // unchanged (by this Go package) when rendering.
+ //
+ // We should also still escape ">" as ">" when necessary.
+ // https://github.com/golang/go/issues/48237
+ //
+ // The "your code" example below comes from that stackoverflow.design link
+ // above but note that it can contain angle-bracket-rich XML.
+ // https://github.com/golang/go/issues/58246
+ {
+ "issue48237CommentWithAmpgtsemi1",
+ "az",
+ "a$$z",
+ },
+ {
+ "issue48237CommentWithAmpgtsemi2",
+ "az",
+ "a$$z",
+ },
+ {
+ "issue58246MicrosoftOutlookComment1",
+ "az",
+ "a$$z",
+ },
+ {
+ "issue58246MicrosoftOutlookComment2",
+ "a" + issue58246 + "z",
+ "a$" + issue58246Rendered + "$z",
+ },
// An attribute with a backslash.
{
"backslash",