1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-29 16:30:56 -05:00
denoland-deno/op_crates/web/03_global_interfaces.js
Bartek Iwańczuk 8e914be742
build: migrate to dlint (#8176)
This commit migrates repository from using "eslint" 
to "dlint" for linting JavaScript code.
2020-11-03 16:19:29 +01:00

69 lines
1.5 KiB
JavaScript

((window) => {
const { EventTarget } = window;
const illegalConstructorKey = Symbol("illegalConstuctorKey");
class Window extends EventTarget {
constructor(key) {
if (key !== illegalConstructorKey) {
throw new TypeError("Illegal constructor.");
}
super();
}
get [Symbol.toStringTag]() {
return "Window";
}
}
class WorkerGlobalScope extends EventTarget {
constructor(key) {
if (key != illegalConstructorKey) {
throw new TypeError("Illegal constructor.");
}
super();
}
get [Symbol.toStringTag]() {
return "WorkerGlobalScope";
}
}
class DedicatedWorkerGlobalScope extends WorkerGlobalScope {
constructor(key) {
if (key != illegalConstructorKey) {
throw new TypeError("Illegal constructor.");
}
super();
}
get [Symbol.toStringTag]() {
return "DedicatedWorkerGlobalScope";
}
}
window.__bootstrap = (window.__bootstrap || {});
window.__bootstrap.globalInterfaces = {
DedicatedWorkerGlobalScope,
Window,
WorkerGlobalScope,
dedicatedWorkerGlobalScopeConstructorDescriptor: {
configurable: true,
enumerable: false,
value: DedicatedWorkerGlobalScope,
writable: true,
},
windowConstructorDescriptor: {
configurable: true,
enumerable: false,
value: Window,
writable: true,
},
workerGlobalScopeConstructorDescriptor: {
configurable: true,
enumerable: false,
value: WorkerGlobalScope,
writable: true,
},
};
})(this);