summaryrefslogtreecommitdiff
path: root/ext/web/04_global_interfaces.js
diff options
context:
space:
mode:
authorLeo Kettmeir <crowlkats@toaxl.com>2023-02-07 20:22:46 +0100
committerGitHub <noreply@github.com>2023-02-07 20:22:46 +0100
commitb4aa1530970f7b9cc4e6f2f27e077852c4e178d3 (patch)
tree3d008912affe8550692183bd2697a386db5e3c79 /ext/web/04_global_interfaces.js
parent65500f36e870b4ada3996b06aa287e30177d21a3 (diff)
refactor: Use ES modules for internal runtime code (#17648)
This PR refactors all internal js files (except core) to be written as ES modules. `__bootstrap`has been mostly replaced with static imports in form in `internal:[path to file from repo root]`. To specify if files are ESM, an `esm` method has been added to `Extension`, similar to the `js` method. A new ModuleLoader called `InternalModuleLoader` has been added to enable the loading of internal specifiers, which is used in all situations except when a snapshot is only loaded, and not a new one is created from it. --------- Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'ext/web/04_global_interfaces.js')
-rw-r--r--ext/web/04_global_interfaces.js124
1 files changed, 64 insertions, 60 deletions
diff --git a/ext/web/04_global_interfaces.js b/ext/web/04_global_interfaces.js
index 840f93ba9..6a42968db 100644
--- a/ext/web/04_global_interfaces.js
+++ b/ext/web/04_global_interfaces.js
@@ -1,79 +1,83 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-"use strict";
// @ts-check
/// <reference path="../../core/internal.d.ts" />
-((window) => {
- const { EventTarget } = window.__bootstrap.eventTarget;
- const {
- Symbol,
- SymbolToStringTag,
- TypeError,
- } = window.__bootstrap.primordials;
+import { EventTarget } from "internal:ext/web/02_event.js";
+const primordials = globalThis.__bootstrap.primordials;
+const {
+ Symbol,
+ SymbolToStringTag,
+ TypeError,
+} = primordials;
- const illegalConstructorKey = Symbol("illegalConstructorKey");
+const illegalConstructorKey = Symbol("illegalConstructorKey");
- class Window extends EventTarget {
- constructor(key = null) {
- if (key !== illegalConstructorKey) {
- throw new TypeError("Illegal constructor.");
- }
- super();
+class Window extends EventTarget {
+ constructor(key = null) {
+ if (key !== illegalConstructorKey) {
+ throw new TypeError("Illegal constructor.");
}
+ super();
+ }
- get [SymbolToStringTag]() {
- return "Window";
- }
+ get [SymbolToStringTag]() {
+ return "Window";
}
+}
- class WorkerGlobalScope extends EventTarget {
- constructor(key = null) {
- if (key != illegalConstructorKey) {
- throw new TypeError("Illegal constructor.");
- }
- super();
+class WorkerGlobalScope extends EventTarget {
+ constructor(key = null) {
+ if (key != illegalConstructorKey) {
+ throw new TypeError("Illegal constructor.");
}
+ super();
+ }
- get [SymbolToStringTag]() {
- return "WorkerGlobalScope";
- }
+ get [SymbolToStringTag]() {
+ return "WorkerGlobalScope";
}
+}
- class DedicatedWorkerGlobalScope extends WorkerGlobalScope {
- constructor(key = null) {
- if (key != illegalConstructorKey) {
- throw new TypeError("Illegal constructor.");
- }
- super();
+class DedicatedWorkerGlobalScope extends WorkerGlobalScope {
+ constructor(key = null) {
+ if (key != illegalConstructorKey) {
+ throw new TypeError("Illegal constructor.");
}
+ super();
+ }
- get [SymbolToStringTag]() {
- return "DedicatedWorkerGlobalScope";
- }
+ get [SymbolToStringTag]() {
+ return "DedicatedWorkerGlobalScope";
}
+}
+
+const dedicatedWorkerGlobalScopeConstructorDescriptor = {
+ configurable: true,
+ enumerable: false,
+ value: DedicatedWorkerGlobalScope,
+ writable: true,
+};
+
+const windowConstructorDescriptor = {
+ configurable: true,
+ enumerable: false,
+ value: Window,
+ writable: true,
+};
+
+const workerGlobalScopeConstructorDescriptor = {
+ configurable: true,
+ enumerable: false,
+ value: WorkerGlobalScope,
+ writable: true,
+};
- 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);
+export {
+ DedicatedWorkerGlobalScope,
+ dedicatedWorkerGlobalScopeConstructorDescriptor,
+ Window,
+ windowConstructorDescriptor,
+ WorkerGlobalScope,
+ workerGlobalScopeConstructorDescriptor,
+};