From ec0608a36e6cc37de2461fb9dc66eabb65a402fc Mon Sep 17 00:00:00 2001 From: Slava Kim Date: Wed, 10 Jun 2015 14:27:10 -0700 Subject: [PATCH] Fix the spacebars compiler crash on unterminated string literal Fixes #4529 --- packages/blaze-tools/token_tests.js | 4 ++++ packages/blaze-tools/tokens.js | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/blaze-tools/token_tests.js b/packages/blaze-tools/token_tests.js index 3e4592a2ac..91aa8bd369 100644 --- a/packages/blaze-tools/token_tests.js +++ b/packages/blaze-tools/token_tests.js @@ -71,4 +71,8 @@ Tinytest.add("blaze-tools - token parsers", function (test) { runValue(parseStringLiteral, "'\\\\'", '\\'); runValue(parseStringLiteral, "'\\\"'", '\"'); runValue(parseStringLiteral, "'\\\''", '\''); + + test.throws(function () { + run(parseStringLiteral, "'this is my string"); + }, /Unterminated string literal/); }); diff --git a/packages/blaze-tools/tokens.js b/packages/blaze-tools/tokens.js index d7c3db1e44..441d070fb4 100644 --- a/packages/blaze-tools/tokens.js +++ b/packages/blaze-tools/tokens.js @@ -183,7 +183,7 @@ BlazeTools.parseStringLiteral = function (scanner) { } } - if (match[0] !== quote) + if (! match || match[0] !== quote) scanner.fatal("Unterminated string literal"); jsonLiteral += '"';