From bed13d21475f62c18b5099a5d713e093d9d856f3 Mon Sep 17 00:00:00 2001 From: Conduitry Date: Sun, 15 Apr 2018 05:09:59 -0400 Subject: [PATCH] in v2, don't parse for interpolations in non-root style elements (#1339) --- src/parse/state/tag.ts | 22 +++++++++++++------ .../script-style-non-top-level/main-v2.html | 4 ++++ 2 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 test/runtime/samples/script-style-non-top-level/main-v2.html diff --git a/src/parse/state/tag.ts b/src/parse/state/tag.ts index dad44f81fe..0b7ea7f814 100644 --- a/src/parse/state/tag.ts +++ b/src/parse/state/tag.ts @@ -248,13 +248,21 @@ export default function tag(parser: Parser) { element.end = parser.index; } else if (name === 'style') { // special case - element.children = readSequence( - parser, - () => - parser.template.slice(parser.index, parser.index + 8) === '' - ); - parser.read(/<\/style>/); - element.end = parser.index; + if (parser.v2) { + const start = parser.index; + const data = parser.readUntil(/<\/style>/); + const end = parser.index; + element.children.push({ start, end, type: 'Text', data }); + parser.eat('', true); + } else { + element.children = readSequence( + parser, + () => + parser.template.slice(parser.index, parser.index + 8) === '' + ); + parser.read(/<\/style>/); + element.end = parser.index; + } } else { parser.stack.push(element); } diff --git a/test/runtime/samples/script-style-non-top-level/main-v2.html b/test/runtime/samples/script-style-non-top-level/main-v2.html new file mode 100644 index 0000000000..94cf72e4bd --- /dev/null +++ b/test/runtime/samples/script-style-non-top-level/main-v2.html @@ -0,0 +1,4 @@ +
+ + +
\ No newline at end of file