/* -*- Mode: javascript; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 * -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef vm_Modules_h #define vm_Modules_h #include "NamespaceImports.h" #include "builtin/ModuleObject.h" #include "js/AllocPolicy.h" #include "js/GCVector.h" #include "js/RootingAPI.h" struct JSContext; namespace js { using ModuleVector = GCVector; bool ModuleResolveExport(JSContext* cx, Handle module, Handle exportName, MutableHandle result); ModuleNamespaceObject* GetOrCreateModuleNamespace(JSContext* cx, Handle module); bool ModuleInitializeEnvironment(JSContext* cx, Handle module); bool ModuleLink(JSContext* cx, Handle module); // Start evaluating the module. If TLA is enabled, result will be a promise. bool ModuleEvaluate(JSContext* cx, Handle module, MutableHandle result); void AsyncModuleExecutionFulfilled(JSContext* cx, Handle module); void AsyncModuleExecutionRejected(JSContext* cx, Handle module, HandleValue error); } // namespace js #endif // vm_Modules_h