forked from github/codeql
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTemplateSyntaxInStringLiteral.js
More file actions
69 lines (55 loc) · 1.63 KB
/
TemplateSyntaxInStringLiteral.js
File metadata and controls
69 lines (55 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
function connectAndLog(id) {
log.info(`Connecting to ${id}`)
let connection = openConnection(id)
if (!connection) {
log.error('Could not connect to ${id}') // $ Alert
}
}
function emitTemplate(name, date) {
writer.emit("Name: ${name}, Date: ${date}",
{ name: name, date: date });
}
var globalVar = "global";
function foo() {
log.error('globalVar = ${globalVar}'); // $ Alert
}
log.error('globalVar = ${globalVar}'); // $ Alert
function bar() {
log.error('Something ${notInScope}');
}
function baz(x){
log.error("${x}");
log.error("${y}");
log.error("${x} "); // $ Alert
log.error("${y} ");
}
function foo1() {
const aTemplateLitInScope = `Connecting to ${id}`;
const name = 2;
const date = 3;
const foobar = 4;
const data = {name: name, date: date};
writer.emit("Name: ${name}, Date: ${date}.", data);
writer.emit("Name: ${name}, Date: ${date}, ${foobar}", data); // $ Alert - `foobar` is not in `data`.
}
function a(actual, expected, description) {
assert(false, "a", description, "expected (" +
typeof expected + ") ${expected} but got (" + typeof actual + ") ${actual}", {
expected: expected,
actual: actual
});
}
function replacer(str, name) {
return str.replace("${name}", name);
}
function replacerAll(str, name) {
return str.replaceAll("${name}", name);
}
function manualInterpolation(name) {
let str = "Name: ${name}";
let result1 = replacer(str, name);
console.log(result1);
str = "Name: ${name} and again: ${name}";
let result2 = replacerAll(str, name);
console.log(result2);
}