diff options
author | Leo Kettmeir <crowlkats@toaxl.com> | 2023-02-07 20:22:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-07 20:22:46 +0100 |
commit | b4aa1530970f7b9cc4e6f2f27e077852c4e178d3 (patch) | |
tree | 3d008912affe8550692183bd2697a386db5e3c79 /ext/web/04_global_interfaces.js | |
parent | 65500f36e870b4ada3996b06aa287e30177d21a3 (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.js | 124 |
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, +}; |