summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/test/mochitest/browser_dbg_parser-template-strings.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/debugger/test/mochitest/browser_dbg_parser-template-strings.js')
-rw-r--r--devtools/client/debugger/test/mochitest/browser_dbg_parser-template-strings.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_parser-template-strings.js b/devtools/client/debugger/test/mochitest/browser_dbg_parser-template-strings.js
new file mode 100644
index 000000000..6ee271137
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_parser-template-strings.js
@@ -0,0 +1,29 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Test that template strings are correctly processed.
+ */
+
+"use strict";
+
+function test() {
+ let { Parser, SyntaxTreeVisitor } =
+ Cu.import("resource://devtools/shared/Parser.jsm", {});
+
+ let ast = Parser.reflectionAPI.parse("`foo${i}bar`");
+ let nodes = SyntaxTreeVisitor.filter(ast, e => e.type == "TemplateLiteral");
+ ok(nodes && nodes.length === 1, "Found the TemplateLiteral node");
+
+ let elements = nodes[0].elements;
+ ok(elements, "The TemplateLiteral node has elements");
+ is(elements.length, 3, "There are 3 elements in the literal");
+
+ ["Literal", "Identifier", "Literal"].forEach((type, i) => {
+ is(elements[i].type, type, `Element at index ${i} is '${type}'`);
+ });
+
+ finish();
+}