v8
10.1.124 (node 18.2.0)
V8 is Google's open source JavaScript engine
v8-container.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_CONTAINER_H_
6
#
define
INCLUDE_V8_CONTAINER_H_
7
8
#
include
<
stddef
.
h
>
9
#
include
<
stdint
.
h
>
10
11
#
include
"v8-local-handle.h"
// NOLINT(build/include_directory)
12
#
include
"v8-object.h"
// NOLINT(build/include_directory)
13
#
include
"v8config.h"
// NOLINT(build/include_directory)
14
15
namespace
v8
{
16
17
class
Context
;
18
class
Isolate
;
19
20
/**
21
* An instance of the built-in array constructor (ECMA-262, 15.4.2).
22
*/
23
class
V8_EXPORT
Array
:
public
Object
{
24
public
:
25
uint32_t
Length
()
const
;
26
27
/**
28
* Creates a JavaScript array with the given length. If the length
29
* is negative the returned array will have length 0.
30
*/
31
static
Local
<
Array
>
New
(
Isolate
* isolate,
int
length = 0);
32
33
/**
34
* Creates a JavaScript array out of a Local<Value> array in C++
35
* with a known length.
36
*/
37
static
Local
<
Array
>
New
(
Isolate
* isolate,
Local
<
Value
>* elements,
38
size_t length);
39
V8_INLINE
static
Array
*
Cast
(
Value
* value) {
40
#
ifdef
V8_ENABLE_CHECKS
41
CheckCast(value);
42
#
endif
43
return
static_cast
<
Array
*>(value);
44
}
45
46
private
:
47
Array();
48
static
void
CheckCast(
Value
* obj);
49
};
50
51
/**
52
* An instance of the built-in Map constructor (ECMA-262, 6th Edition, 23.1.1).
53
*/
54
class
V8_EXPORT
Map
:
public
Object
{
55
public
:
56
size_t
Size
()
const
;
57
void
Clear
();
58
V8_WARN_UNUSED_RESULT
MaybeLocal
<
Value
>
Get
(
Local
<
Context
> context,
59
Local
<
Value
> key);
60
V8_WARN_UNUSED_RESULT
MaybeLocal
<
Map
>
Set
(
Local
<
Context
> context,
61
Local
<
Value
> key,
62
Local
<
Value
> value);
63
V8_WARN_UNUSED_RESULT
Maybe
<
bool
>
Has
(
Local
<
Context
> context,
64
Local
<
Value
> key);
65
V8_WARN_UNUSED_RESULT
Maybe
<
bool
>
Delete
(
Local
<
Context
> context,
66
Local
<
Value
> key);
67
68
/**
69
* Returns an array of length Size() * 2, where index N is the Nth key and
70
* index N + 1 is the Nth value.
71
*/
72
Local
<
Array
>
AsArray
()
const
;
73
74
/**
75
* Creates a new empty Map.
76
*/
77
static
Local
<
Map
>
New
(
Isolate
* isolate);
78
79
V8_INLINE
static
Map
*
Cast
(
Value
* value) {
80
#
ifdef
V8_ENABLE_CHECKS
81
CheckCast(value);
82
#
endif
83
return
static_cast
<
Map
*>(value);
84
}
85
86
private
:
87
Map();
88
static
void
CheckCast(
Value
* obj);
89
};
90
91
/**
92
* An instance of the built-in Set constructor (ECMA-262, 6th Edition, 23.2.1).
93
*/
94
class
V8_EXPORT
Set
:
public
Object
{
95
public
:
96
size_t
Size
()
const
;
97
void
Clear
();
98
V8_WARN_UNUSED_RESULT
MaybeLocal
<
Set
>
Add
(
Local
<
Context
> context,
99
Local
<
Value
> key);
100
V8_WARN_UNUSED_RESULT
Maybe
<
bool
>
Has
(
Local
<
Context
> context,
101
Local
<
Value
> key);
102
V8_WARN_UNUSED_RESULT
Maybe
<
bool
>
Delete
(
Local
<
Context
> context,
103
Local
<
Value
> key);
104
105
/**
106
* Returns an array of the keys in this Set.
107
*/
108
Local
<
Array
>
AsArray
()
const
;
109
110
/**
111
* Creates a new empty Set.
112
*/
113
static
Local
<
Set
>
New
(
Isolate
* isolate);
114
115
V8_INLINE
static
Set
*
Cast
(
Value
* value) {
116
#
ifdef
V8_ENABLE_CHECKS
117
CheckCast(value);
118
#
endif
119
return
static_cast
<
Set
*>(value);
120
}
121
122
private
:
123
Set();
124
static
void
CheckCast(
Value
* obj);
125
};
126
127
}
// namespace v8
128
129
#
endif
// INCLUDE_V8_CONTAINER_H_
include
v8-container.h
Generated on Tue May 24 2022 19:28:57 for v8 by
1.9.1