FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
node/src/node_v8.cc at master · greenjava/node · GitHub
greenjava
/
node
Public
forked from
nodejs/node
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
node
/
src
/
node_v8.cc
Copy path
More file actions
More file actions
Latest commit
History
History
History
91 lines (73 loc) · 2.98 KB
Breadcrumbs
node
/
src
/
node_v8.cc
Copy path
File metadata and controls
91 lines (73 loc) · 2.98 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#
include
"
node.h
"
#
include
"
env.h
"
#
include
"
env-inl.h
"
#
include
"
util.h
"
#
include
"
util-inl.h
"
#
include
"
v8.h
"
namespace
node
{
using
v8::ArrayBuffer;
using
v8::Context;
using
v8::Function;
using
v8::FunctionCallbackInfo;
using
v8::HeapStatistics;
using
v8::Isolate;
using
v8::Local;
using
v8::Object;
using
v8::String;
using
v8::Uint32;
using
v8::Uint32Array;
using
v8::
V8
;
using
v8::Value;
#
define
HEAP_STATISTICS_PROPERTIES
(
V
) \
V
(
0
, total_heap_size,
kTotalHeapSizeIndex
) \
V
(
1
, total_heap_size_executable,
kTotalHeapSizeExecutableIndex
) \
V
(
2
, total_physical_size,
kTotalPhysicalSizeIndex
) \
V
(
3
, total_available_size,
kTotalAvailableSize
) \
V
(
4
, used_heap_size,
kUsedHeapSizeIndex
) \
V
(
5
, heap_size_limit,
kHeapSizeLimitIndex
)
#
define
V
(
a, b, c
) +
1
static
const
size_t
kHeapStatisticsPropertiesCount
=
HEAP_STATISTICS_PROPERTIES
(V);
#
undef
V
void
UpdateHeapStatisticsArrayBuffer
(
const
FunctionCallbackInfo<Value>& args) {
Environment* env =
Environment::GetCurrent
(args);
HeapStatistics s;
env->
isolate
()->
GetHeapStatistics
(&s);
uint32_t
*
const
buffer = env->
heap_statistics_buffer
();
#
define
V
(
index, name, _
) buffer[index] =
static_cast
<
uint32_t
>(s.name());
HEAP_STATISTICS_PROPERTIES
(V)
#
undef
V
}
void
SetFlagsFromString
(
const
FunctionCallbackInfo<Value>& args) {
Environment* env =
Environment::GetCurrent
(args);
if
(args.
Length
() <
1
)
return
env->
ThrowTypeError
(
"
v8 flag is required
"
);
if
(!args[
0
]->
IsString
())
return
env->
ThrowTypeError
(
"
v8 flag must be a string
"
);
String::Utf8Value
flags
(args[
0
]);
V8::SetFlagsFromString
(*flags, flags.
length
());
}
void
InitializeV8Bindings
(Local<Object> target,
Local<Value> unused,
Local<Context> context) {
Environment* env =
Environment::GetCurrent
(context);
env->
SetMethod
(target,
"
updateHeapStatisticsArrayBuffer
"
,
UpdateHeapStatisticsArrayBuffer);
env->
SetMethod
(target,
"
setFlagsFromString
"
, SetFlagsFromString);
env->
set_heap_statistics_buffer
(
new
uint32_t
[
kHeapStatisticsPropertiesCount
]);
const
size_t
heap_statistics_buffer_byte_length =
sizeof
(*env->
heap_statistics_buffer
()) *
kHeapStatisticsPropertiesCount
;
target->
Set
(
FIXED_ONE_BYTE_STRING
(env->
isolate
(),
"
heapStatisticsArrayBuffer
"
),
ArrayBuffer::New
(env->
isolate
(),
env->
heap_statistics_buffer
(),
heap_statistics_buffer_byte_length));
#
define
V
(
i, _, name
) \
target->
Set
(
FIXED_ONE_BYTE_STRING
(env->
isolate
(), #name), \
Uint32::NewFromUnsigned
(env->
isolate
(), i));
HEAP_STATISTICS_PROPERTIES
(V)
#
undef
V
}
}
//
namespace node
NODE_MODULE_CONTEXT_AWARE_BUILTIN
(v8, node::InitializeV8Bindings)
Back
|
FazBrowse Home
|
New Git URL