1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #include "mozilla/dom/ScriptLoadContext.h"
8 #include "mozilla/loader/ComponentModuleLoader.h"
9 #include "mozilla/dom/WorkerLoadContext.h"
10 #include "mozilla/dom/worklet/WorkletModuleLoader.h" // WorkletLoadContext
11 #include "js/loader/LoadContextBase.h"
12 #include "js/loader/ScriptLoadRequest.h"
14 namespace JS::loader
{
16 ////////////////////////////////////////////////////////////////
18 ////////////////////////////////////////////////////////////////
20 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(LoadContextBase
)
21 NS_INTERFACE_MAP_ENTRY(nsISupports
)
24 NS_IMPL_CYCLE_COLLECTING_ADDREF(LoadContextBase
)
25 NS_IMPL_CYCLE_COLLECTING_RELEASE(LoadContextBase
)
27 NS_IMPL_CYCLE_COLLECTION(LoadContextBase
, mRequest
)
29 LoadContextBase::LoadContextBase(ContextKind kind
) : mKind(kind
) {}
31 void LoadContextBase::SetRequest(ScriptLoadRequest
* aRequest
) {
32 MOZ_ASSERT(!mRequest
);
36 void LoadContextBase::GetProfilerLabel(nsACString
& aOutString
) {
37 aOutString
.Append("Unknown Script Element");
40 mozilla::dom::ScriptLoadContext
* LoadContextBase::AsWindowContext() {
41 MOZ_ASSERT(IsWindowContext());
42 return static_cast<mozilla::dom::ScriptLoadContext
*>(this);
45 mozilla::loader::ComponentLoadContext
* LoadContextBase::AsComponentContext() {
46 MOZ_ASSERT(IsComponentContext());
47 return static_cast<mozilla::loader::ComponentLoadContext
*>(this);
50 mozilla::dom::WorkerLoadContext
* LoadContextBase::AsWorkerContext() {
51 MOZ_ASSERT(IsWorkerContext());
52 return static_cast<mozilla::dom::WorkerLoadContext
*>(this);
55 mozilla::dom::WorkletLoadContext
* LoadContextBase::AsWorkletContext() {
56 MOZ_ASSERT(IsWorkletContext());
57 return static_cast<mozilla::dom::WorkletLoadContext
*>(this);
60 } // namespace JS::loader