summaryrefslogtreecommitdiff
path: root/op_crates/web/02_abort_signal.js
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2020-09-19 22:30:59 +0100
committerGitHub <noreply@github.com>2020-09-19 23:30:59 +0200
commitaaa5e6613a739f8e2ff7579b69c2504bcdc37d4f (patch)
treed6c198b5bc222be4c097e7aa5e9504662c98a974 /op_crates/web/02_abort_signal.js
parent79e5b57663becad3614bce98e31c7d1d494cb50d (diff)
fix(cli/rt): make some web API constructors illegal at runtime (#7468)
Diffstat (limited to 'op_crates/web/02_abort_signal.js')
-rw-r--r--op_crates/web/02_abort_signal.js9
1 files changed, 7 insertions, 2 deletions
diff --git a/op_crates/web/02_abort_signal.js b/op_crates/web/02_abort_signal.js
index 908e85ac9..2b51ef1ea 100644
--- a/op_crates/web/02_abort_signal.js
+++ b/op_crates/web/02_abort_signal.js
@@ -5,6 +5,8 @@
const signalAbort = Symbol("signalAbort");
const remove = Symbol("remove");
+ const illegalConstructorKey = Symbol("illegalConstructorKey");
+
class AbortSignal extends EventTarget {
#aborted = false;
#abortAlgorithms = new Set();
@@ -29,7 +31,10 @@
this.#abortAlgorithms.delete(algorithm);
}
- constructor() {
+ constructor(key) {
+ if (key != illegalConstructorKey) {
+ throw new TypeError("Illegal constructor.");
+ }
super();
this.onabort = null;
this.addEventListener("abort", (evt) => {
@@ -50,7 +55,7 @@
}
class AbortController {
- #signal = new AbortSignal();
+ #signal = new AbortSignal(illegalConstructorKey);
get signal() {
return this.#signal;