AbstractModuleSource
AbstractModuleSource オブジェクトは、import source または import.source() で取得した、コンパイル済みモジュールのソースを表します。AbstractModuleSource コンストラクターは直接見える形では存在しません。
解説
AbstractModuleSource コンストラクター(JavaScript プログラムに公開されるグローバルオブジェクトに対応しないことから、「内在的」であることを示すために %AbstractModuleSource% と呼ばれることもあります)は、すべてのモジュールソースのサブクラスのスーパークラスとして、ユーティリティメソッドの共通インターフェイスを提供します。このコンストラクターは直接公開されていません。グローバルな AbstractModuleSource プロパティはありません。Object.getPrototypeOf(moduleSourceObject.constructor) などを通じてのみアクセスできます。
AbstractModuleSource オブジェクト
JavaScript のモジュールソースオブジェクトは、ECMAScript Module Phase Imports の提案によって追加される予定です。
コンストラクター
このオブジェクトを直接インスタンス化することはできません。new で構築しようとすると TypeError が発生します。
import source modSource from "./module.wasm";
new (Object.getPrototypeOf(modSource.constructor))();
// TypeError: Abstract class AbstractModuleSource not directly constructable
代わりに、import source、import.source()、WebAssembly.Module() のような具象モジュール型の API を使用して、モジュールソースオブジェクトを取得してください。これらの仕組みは抽象コンストラクターを呼び出しません。
インスタンスプロパティ
これらのプロパティは AbstractModuleSource.prototype で定義されており、すべての AbstractModuleSource サブクラスのインスタンスで共有されます。
AbstractModuleSource.prototype.constructor-
インスタンスオブジェクトを作成したコンストラクター関数。
AbstractModuleSource.prototype.constructorは隠されたAbstractModuleSourceコンストラクター関数ですが、各モジュールソースのサブクラスも独自のconstructorプロパティを定義します。 AbstractModuleSource.prototype[Symbol.toStringTag]-
AbstractModuleSource.prototype[Symbol.toStringTag]プロパティの初期値は、コンストラクターの識別情報に基づく文字列("WebAssembly.Module"や"ModuleSource"など)を返すゲッターです。this値がいずれかのモジュールソースのサブクラスのインスタンスでない場合は、undefinedを返します。このプロパティはObject.prototype.toString()で使用されます。
仕様書
| 仕様書 |
|---|
| Source Phase Imports> # sec-module-source-objects> |