diff options
Diffstat (limited to 'src/html/template/escape.go')
-rw-r--r-- | src/html/template/escape.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/html/template/escape.go b/src/html/template/escape.go index 54fbcdca33..3d4cc19b5d 100644 --- a/src/html/template/escape.go +++ b/src/html/template/escape.go @@ -8,6 +8,7 @@ import ( "bytes" "fmt" "html" + "internal/godebug" "io" "text/template" "text/template/parse" @@ -223,6 +224,16 @@ func (e *escaper) escapeAction(c context, n *parse.ActionNode) context { c.jsCtx = jsCtxDivOp case stateJSDqStr, stateJSSqStr: s = append(s, "_html_template_jsstrescaper") + case stateJSBqStr: + debugAllowActionJSTmpl := godebug.Get("jstmpllitinterp") + if debugAllowActionJSTmpl == "1" { + s = append(s, "_html_template_jsstrescaper") + } else { + return context{ + state: stateError, + err: errorf(errJSTmplLit, n, n.Line, "%s appears in a JS template literal", n), + } + } case stateJSRegexp: s = append(s, "_html_template_jsregexpescaper") case stateCSS: |