template-literals.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. load("test-common.js");
  2. try {
  3. assert(`foo` === "foo");
  4. assert(`foo{` === "foo{");
  5. assert(`foo}` === "foo}");
  6. assert(`foo$` === "foo$");
  7. assert(`foo\`` === "foo`")
  8. assert(`foo\$` === "foo$");
  9. assert(`foo ${undefined}` === "foo undefined");
  10. assert(`foo ${null}` === "foo null");
  11. assert(`foo ${5}` === "foo 5");
  12. assert(`foo ${true}` === "foo true");
  13. assert(`foo ${"bar"}` === "foo bar");
  14. assert(`foo \${"bar"}` === 'foo ${"bar"}');
  15. assert(`foo ${{}}` === "foo [object Object]");
  16. assert(`foo ${{ bar: { baz: "qux" }}}` === "foo [object Object]");
  17. assert(`foo ${"bar"} ${"baz"}` === "foo bar baz");
  18. assert(`${"foo"} bar baz` === "foo bar baz");
  19. assert(`${"foo bar baz"}` === "foo bar baz");
  20. let a = 27;
  21. assert(`${a}` === "27");
  22. assert(`foo ${a}` === "foo 27");
  23. assert(`foo ${a ? "bar" : "baz"}` === "foo bar");
  24. assert(`foo ${(() => a)()}` === "foo 27");
  25. assert(`foo ${`bar`}` === "foo bar");
  26. assert(`${`${`${`${"foo"}`} bar`}`}` === "foo bar");
  27. assert(`foo
  28. bar` === "foo\n bar");
  29. assertThrowsError(() => {
  30. `${b}`;
  31. }, {
  32. error: ReferenceError,
  33. message: "'b' is not defined",
  34. })
  35. console.log("PASS");
  36. } catch (e) {
  37. console.log("FAIL: " + e);
  38. }