summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/trusted-types/support/WorkerGlobalScope-eval.https.js
blob: be0a4300e1a69b3a0f846ed2c8d31826e5ac739c (plain)
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
let test_setup_policy = trustedTypes.createPolicy("hurrayanythinggoes", {
  createScriptURL: x => x
});
importScripts(test_setup_policy.createScriptURL("/resources/testharness.js"));

// Determine worker type (for better logging)
let worker_type = "unknown";
if (this.DedicatedWorkerGlobalScope !== undefined) {
  worker_type = "dedicated worker";
} else if (this.SharedWorkerGlobalScope !== undefined) {
  worker_type = "shared worker";
} else if (this.ServiceWorkerGlobalScope !== undefined) {
  worker_type = "service worker";
}

// Test eval(string)
test(t => {
  assert_throws_js(EvalError, _ => eval("2"));
}, "eval(string) in " + worker_type);

// Test eval(TrustedScript)
let test_policy = trustedTypes.createPolicy("xxx", {
  createScript: x => x.replace("2", "7")
});
test(t => {
  assert_equals(eval(test_policy.createScript("2")), 7);
}, "eval(TrustedScript) in " + worker_type);

// Test eval(String) with default policy
trustedTypes.createPolicy("default", {
  createScript: x => x.replace("2", "5")
});
test(t => {
  assert_equals(eval("2"), 5);
}, "eval(string) with default policy in " + worker_type);

done();