FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
nan/test/cpp/settemplate.cpp at main · nodejs/nan · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
nodejs
/
nan
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
529
Star
3.4k
Code
Issues
57
Pull requests
15
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
nan
/
test
/
cpp
/
settemplate.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
106 lines (85 loc) · 2.82 KB
Breadcrumbs
nan
/
test
/
cpp
/
settemplate.cpp
Copy path
File metadata and controls
106 lines (85 loc) · 2.82 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*
********************************************************************
* NAN - Native Abstractions for Node.js
*
* Copyright (c) 2018 NAN contributors
*
* MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
*******************************************************************
*/
#
include
<
nan.h
>
using
namespace
Nan
;
//
NOLINT(build/namespaces)
class
MyObject
:
public
node
::ObjectWrap {
public:
static
NAN_MODULE_INIT
(Init);
private:
MyObject
();
~MyObject
();
static
NAN_METHOD
(New);
static
Persistent<v8::Function> constructor;
};
Persistent<v8::Function> MyObject::constructor;
MyObject::MyObject
() {
}
MyObject::~MyObject
() {
}
void
Foo
(FunctionCallbackInfo<v8::Value>
const
&) {}
NAN_MODULE_INIT
(MyObject::Init) {
//
Prepare constructor template
v8::Local<v8::FunctionTemplate> tpl = Nan::New<v8::FunctionTemplate>(New);
tpl->
SetClassName
(Nan::New<v8::String>(
"
MyObject
"
).
ToLocalChecked
());
tpl->
InstanceTemplate
()->
SetInternalFieldCount
(
1
);
//
Prototype
SetPrototypeTemplate
(
tpl
,
"
prototypeProp
"
, Nan::New<v8::String>(
"
a prototype property
"
).
ToLocalChecked
());
//
Instance
SetInstanceTemplate
(
tpl
,
"
instanceProp
"
, Nan::New<v8::String>(
"
an instance property
"
).
ToLocalChecked
());
//
PropertyAttributes
SetInstanceTemplate
(
tpl
, Nan::New<v8::String>(
"
none
"
).
ToLocalChecked
()
, Nan::New<v8::String>(
"
none
"
).
ToLocalChecked
()
, v8::None);
SetInstanceTemplate
(
tpl
, Nan::New<v8::String>(
"
readOnly
"
).
ToLocalChecked
()
, Nan::New<v8::String>(
"
readOnly
"
).
ToLocalChecked
()
, v8::ReadOnly);
SetInstanceTemplate
(
tpl
, Nan::New<v8::String>(
"
dontEnum
"
).
ToLocalChecked
()
, Nan::New<v8::String>(
"
dontEnum
"
).
ToLocalChecked
()
, v8::DontEnum);
SetInstanceTemplate
(
tpl
, Nan::New<v8::String>(
"
dontDelete
"
).
ToLocalChecked
()
, Nan::New<v8::String>(
"
dontDelete
"
).
ToLocalChecked
()
, v8::DontDelete);
v8::Local<v8::Function> function =
Nan::GetFunction
(tpl).
ToLocalChecked
();
constructor.
Reset
(function);
Set
(target
, Nan::New<v8::String>(
"
MyObject
"
).
ToLocalChecked
()
, function);
//
=== SetMethod ==============================================================
v8::Local<v8::Object> obj = Nan::New<v8::Object>();
SetMethod
(obj,
"
foo
"
, Foo);
//
https://github.com/nodejs/nan/issues/564
v8::Local<v8::Function> func = Nan::New<v8::Function>(Foo);
SetMethod
(func,
"
foo
"
, Foo);
v8::Local<v8::FunctionTemplate> t = Nan::New<v8::FunctionTemplate>(Foo);
SetMethod
(t,
"
foo
"
, Foo);
}
NAN_METHOD
(MyObject::New) {
if
(info.
IsConstructCall
()) {
MyObject* obj =
new
MyObject
();
obj->
Wrap
(info.
This
());
info.
GetReturnValue
().
Set
(info.
This
());
}
else
{
v8::Local<v8::Function> cons = Nan::New<v8::Function>(constructor);
info.
GetReturnValue
().
Set
(
Nan::NewInstance
(cons).
ToLocalChecked
());
}
}
NODE_MODULE
(settemplate, MyObject::Init)
Back
|
FazBrowse Home
|
New Git URL