diff --git a/src/pkg/exp/template/html/escape.go b/src/pkg/exp/template/html/escape.go
index d3c06bb7f6..955b41be22 100644
--- a/src/pkg/exp/template/html/escape.go
+++ b/src/pkg/exp/template/html/escape.go
@@ -487,9 +487,9 @@ func tJS(c context, s []byte) (context, []byte) {
case '/':
switch {
case i+1 < len(s) && s[i+1] == '/':
- c.state = stateJSLineCmt
+ c.state, i = stateJSLineCmt, i+1
case i+1 < len(s) && s[i+1] == '*':
- c.state = stateJSBlockCmt
+ c.state, i = stateJSBlockCmt, i+1
case c.jsCtx == jsCtxRegexp:
c.state = stateJSRegexp
default:
diff --git a/src/pkg/exp/template/html/escape_test.go b/src/pkg/exp/template/html/escape_test.go
index 23f5734987..488f33a4ad 100644
--- a/src/pkg/exp/template/html/escape_test.go
+++ b/src/pkg/exp/template/html/escape_test.go
@@ -643,6 +643,14 @@ func TestEscapeText(t *testing.T) {
`