diff options
author | Daniel Jasper <djasper@google.com> | 2016-09-17 07:20:36 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2016-09-17 07:20:36 +0000 |
commit | 58209dd9ad6a772ae37198f9216effc209138521 (patch) | |
tree | 5d2b31c79b16ec351eb5400edcb181067cf3eb14 | |
parent | 55394c0775c8799d3ff9eab70dc315925311b0b3 (diff) | |
download | bcm5719-llvm-58209dd9ad6a772ae37198f9216effc209138521.tar.gz bcm5719-llvm-58209dd9ad6a772ae37198f9216effc209138521.zip |
clang-format: [JS] Fix a crash in handledTemplateStrings.
llvm-svn: 281816
-rw-r--r-- | clang/lib/Format/FormatTokenLexer.cpp | 2 | ||||
-rw-r--r-- | clang/unittests/Format/FormatTestJS.cpp | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Format/FormatTokenLexer.cpp b/clang/lib/Format/FormatTokenLexer.cpp index 8c795fb4d6d..c9670aeff66 100644 --- a/clang/lib/Format/FormatTokenLexer.cpp +++ b/clang/lib/Format/FormatTokenLexer.cpp @@ -235,6 +235,8 @@ void FormatTokenLexer::handleTemplateStrings() { return; } if (BacktickToken->is(tok::r_brace)) { + if (StateStack.size() == 1) + return; StateStack.pop(); if (StateStack.top() != LexerState::TEMPLATE_STRING) return; diff --git a/clang/unittests/Format/FormatTestJS.cpp b/clang/unittests/Format/FormatTestJS.cpp index 528986a0c94..9ccb75b6296 100644 --- a/clang/unittests/Format/FormatTestJS.cpp +++ b/clang/unittests/Format/FormatTestJS.cpp @@ -1253,6 +1253,9 @@ TEST_F(FormatTestJS, NestedTemplateStrings) { verifyFormat( "var x = `<ul>${xs.map(x => `<li>${x}</li>`).join('\\n')}</ul>`;"); verifyFormat("var x = `he${({text: 'll'}.text)}o`;"); + + // Crashed at some point. + verifyFormat("}"); } TEST_F(FormatTestJS, TaggedTemplateStrings) { |