1// Copyright 2017 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_CALLABLE_H_
6#define V8_CALLABLE_H_
7
8#include "src/allocation.h"
9#include "src/interface-descriptors.h"
10
11namespace v8 {
12namespace internal {
13
14class Code;
15
16// Associates a body of code with an interface descriptor.
17class Callable final {
18 public:
19 Callable(Handle<Code> code, CallInterfaceDescriptor descriptor)
20 : code_(code), descriptor_(descriptor) {}
21
22 Handle<Code> code() const { return code_; }
23 CallInterfaceDescriptor descriptor() const { return descriptor_; }
24
25 private:
26 const Handle<Code> code_;
27 const CallInterfaceDescriptor descriptor_;
28};
29
30} // namespace internal
31} // namespace v8
32
33#endif // V8_CALLABLE_H_
34