v8
10.1.124 (node 18.2.0)
V8 is Google's open source JavaScript engine
v8-extension.h
Go to the documentation of this file.
1
// Copyright 2021 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
INCLUDE_V8_EXTENSION_H_
6
#
define
INCLUDE_V8_EXTENSION_H_
7
8
#
include
<
memory
>
9
10
#
include
"v8-local-handle.h"
// NOLINT(build/include_directory)
11
#
include
"v8-primitive.h"
// NOLINT(build/include_directory)
12
#
include
"v8config.h"
// NOLINT(build/include_directory)
13
14
namespace
v8
{
15
16
class
FunctionTemplate
;
17
18
// --- Extensions ---
19
20
/**
21
* Ignore
22
*/
23
class
V8_EXPORT
Extension
{
24
public
:
25
// Note that the strings passed into this constructor must live as long
26
// as the Extension itself.
27
Extension
(
const
char
* name,
const
char
* source =
nullptr
,
int
dep_count = 0,
28
const
char
** deps =
nullptr
,
int
source_length = -1);
29
virtual
~
Extension
() {
delete
source_; }
30
virtual
Local
<
FunctionTemplate
>
GetNativeFunctionTemplate
(
31
Isolate
* isolate,
Local
<
String
> name) {
32
return
Local
<
FunctionTemplate
>
(
)
;
33
}
34
35
const
char
*
name
()
const
{
return
name_; }
36
size_t
source_length
()
const
{
return
source_length_; }
37
const
String
::
ExternalOneByteStringResource
*
source
()
const
{
38
return
source_;
39
}
40
int
dependency_count
()
const
{
return
dep_count_; }
41
const
char
**
dependencies
()
const
{
return
deps_; }
42
void
set_auto_enable
(
bool
value) { auto_enable_ = value; }
43
bool
auto_enable
() {
return
auto_enable_; }
44
45
// Disallow copying and assigning.
46
Extension
(
const
Extension
&) =
delete
;
47
void
operator
=(
const
Extension
&) =
delete
;
48
49
private
:
50
const
char
* name_;
51
size_t source_length_;
// expected to initialize before source_
52
String
::
ExternalOneByteStringResource
* source_;
53
int
dep_count_;
54
const
char
** deps_;
55
bool
auto_enable_;
56
};
57
58
void
V8_EXPORT
RegisterExtension
(std::unique_ptr<
Extension
>);
59
60
}
// namespace v8
61
62
#
endif
// INCLUDE_V8_EXTENSION_H_
include
v8-extension.h
Generated on Tue May 24 2022 19:28:58 for v8 by
1.9.1