ladybird/Libraries/LibJS/Tests/template-literals.js
Matthew Olsson 78155a6668 LibJS: Consolidate error messages into ErrorTypes.h
Now, exceptions can be thrown with
interpreter.throw_exception<T>(ErrorType:TYPE, "format", "args",
"here").
2020-06-11 07:46:20 +02:00

45 lines
1.3 KiB
JavaScript

load("test-common.js");
try {
assert(`foo` === "foo");
assert(`foo{` === "foo{");
assert(`foo}` === "foo}");
assert(`foo$` === "foo$");
assert(`foo\`` === "foo`")
assert(`foo\$` === "foo$");
assert(`foo ${undefined}` === "foo undefined");
assert(`foo ${null}` === "foo null");
assert(`foo ${5}` === "foo 5");
assert(`foo ${true}` === "foo true");
assert(`foo ${"bar"}` === "foo bar");
assert(`foo \${"bar"}` === 'foo ${"bar"}');
assert(`foo ${{}}` === "foo [object Object]");
assert(`foo ${{ bar: { baz: "qux" }}}` === "foo [object Object]");
assert(`foo ${"bar"} ${"baz"}` === "foo bar baz");
assert(`${"foo"} bar baz` === "foo bar baz");
assert(`${"foo bar baz"}` === "foo bar baz");
let a = 27;
assert(`${a}` === "27");
assert(`foo ${a}` === "foo 27");
assert(`foo ${a ? "bar" : "baz"}` === "foo bar");
assert(`foo ${(() => a)()}` === "foo 27");
assert(`foo ${`bar`}` === "foo bar");
assert(`${`${`${`${"foo"}`} bar`}`}` === "foo bar");
assert(`foo
bar` === "foo\n bar");
assertThrowsError(() => {
`${b}`;
}, {
error: ReferenceError,
message: "'b' is not defined",
})
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);
}