V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
growable-fixed-array-gen.h
1
// Copyright 2018 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_BUILTINS_GROWABLE_FIXED_ARRAY_GEN_H_
6
#define V8_BUILTINS_GROWABLE_FIXED_ARRAY_GEN_H_
7
8
#include "src/code-stub-assembler.h"
9
10
namespace
v8
{
11
namespace
internal {
12
13
template
<
class
T>
14
using
TNode = compiler::TNode<T>;
15
16
// Utility class implementing a growable fixed array through CSA.
17
class
GrowableFixedArray
:
public
CodeStubAssembler
{
18
public
:
19
explicit
GrowableFixedArray
(
compiler::CodeAssemblerState
* state)
20
:
CodeStubAssembler
(state),
21
var_array_(
this
),
22
var_length_(
this
),
23
var_capacity_(
this
) {
24
var_array_ = EmptyFixedArrayConstant();
25
var_capacity_ = IntPtrConstant(0);
26
var_length_ = IntPtrConstant(0);
27
}
28
29
TNode<IntPtrT>
length()
const
{
return
var_length_.value(); }
30
31
TVariable<FixedArray>
* var_array() {
return
&var_array_; }
32
TVariable<IntPtrT>
* var_length() {
return
&var_length_; }
33
TVariable<IntPtrT>
* var_capacity() {
return
&var_capacity_; }
34
35
void
Push(
TNode<Object>
const
value);
36
37
TNode<JSArray>
ToJSArray(
TNode<Context>
const
context);
38
39
private
:
40
TNode<IntPtrT>
NewCapacity(
TNode<IntPtrT>
current_capacity);
41
42
// Creates a new array with {new_capacity} and copies the first
43
// {element_count} elements from the current array.
44
TNode<FixedArray>
ResizeFixedArray(
TNode<IntPtrT>
const
element_count,
45
TNode<IntPtrT>
const
new_capacity);
46
47
private
:
48
TVariable<FixedArray>
var_array_;
49
TVariable<IntPtrT>
var_length_;
50
TVariable<IntPtrT>
var_capacity_;
51
};
52
53
}
// namespace internal
54
}
// namespace v8
55
56
#endif // V8_BUILTINS_GROWABLE_FIXED_ARRAY_GEN_H_
v8::internal::compiler::CodeAssemblerState
Definition:
code-assembler.h:1599
v8
Definition:
libplatform.h:13
v8::internal::GrowableFixedArray
Definition:
growable-fixed-array-gen.h:17
v8::internal::compiler::TNode
Definition:
code-assembler.h:455
v8::internal::CodeStubAssembler
Definition:
code-stub-assembler.h:206
v8::internal::compiler::TypedCodeAssemblerVariable
Definition:
code-assembler.h:346
v8
src
builtins
growable-fixed-array-gen.h
Generated on Tue Dec 25 2018 14:38:21 by
1.8.14