chromium/third_party/blink/renderer/bindings/core/v8/callback_invoke_helper.cc

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "third_party/blink/renderer/bindings/core/v8/callback_invoke_helper.h"

#include "base/trace_event/trace_event.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_script_runner.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/core_probes_inl.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/platform/bindings/callback_function_base.h"
#include "third_party/blink/renderer/platform/bindings/callback_interface_base.h"
#include "third_party/blink/renderer/platform/bindings/script_forbidden_scope.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/scheduler/public/task_attribution_tracker.h"

namespace blink {

namespace bindings {

template <class CallbackBase,
          CallbackInvokeHelperMode mode,
          CallbackReturnTypeIsPromise return_type_is_promise>
bool CallbackInvokeHelper<CallbackBase, mode, return_type_is_promise>::
    PrepareForCall(V8ValueOrScriptWrappableAdapter callback_this) {}

template <class CallbackBase,
          CallbackInvokeHelperMode mode,
          CallbackReturnTypeIsPromise return_type_is_promise>
bool CallbackInvokeHelper<CallbackBase, mode, return_type_is_promise>::
    CallInternal(int argc, v8::Local<v8::Value>* argv) {}

template <class CallbackBase,
          CallbackInvokeHelperMode mode,
          CallbackReturnTypeIsPromise return_type_is_promise>
bool CallbackInvokeHelper<CallbackBase, mode, return_type_is_promise>::Call(
    int argc,
    v8::Local<v8::Value>* argv) {}

template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionBase,
                         CallbackInvokeHelperMode::kDefault>;
template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionBase,
                         CallbackInvokeHelperMode::kDefault,
                         CallbackReturnTypeIsPromise::kYes>;
template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionBase,
                         CallbackInvokeHelperMode::kConstructorCall>;
template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionBase,
                         CallbackInvokeHelperMode::kConstructorCall,
                         CallbackReturnTypeIsPromise::kYes>;
template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionBase,
                         CallbackInvokeHelperMode::kLegacyTreatNonObjectAsNull>;

template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionWithTaskAttributionBase,
                         CallbackInvokeHelperMode::kDefault>;
template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionWithTaskAttributionBase,
                         CallbackInvokeHelperMode::kDefault,
                         CallbackReturnTypeIsPromise::kYes>;
template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionWithTaskAttributionBase,
                         CallbackInvokeHelperMode::kConstructorCall>;
template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionWithTaskAttributionBase,
                         CallbackInvokeHelperMode::kConstructorCall,
                         CallbackReturnTypeIsPromise::kYes>;
template class CORE_TEMPLATE_EXPORT
    CallbackInvokeHelper<CallbackFunctionWithTaskAttributionBase,
                         CallbackInvokeHelperMode::kLegacyTreatNonObjectAsNull>;

template class CORE_TEMPLATE_EXPORT CallbackInvokeHelper<CallbackInterfaceBase>;

}  // namespace bindings

}  // namespace blink