-
Notifications
You must be signed in to change notification settings - Fork 503
/
error.cpp
62 lines (51 loc) · 2.63 KB
/
error.cpp
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
/*********************************************************************
* 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)
#define X(NAME) \
NAN_METHOD(Throw ## NAME ## 1) { \
return Nan::Throw ## NAME("errmsg"); \
} \
\
NAN_METHOD(Throw ## NAME ## 2) { \
return Nan::Throw ## NAME(Nan::New("errmsg").ToLocalChecked()); \
} \
\
NAN_METHOD(Throw ## NAME ## 3) { \
return Nan::ThrowError(NAME("errmsg")); \
} \
\
NAN_METHOD(Throw ## NAME ## 4) { \
return Nan::ThrowError(NAME(Nan::New("errmsg").ToLocalChecked())); \
}
X(Error)
X(RangeError)
X(ReferenceError)
X(SyntaxError)
X(TypeError)
#undef X
#define EXPORT_ERROR_FUNCTIONS(NAME) \
X(Throw ## NAME ## 1) \
X(Throw ## NAME ## 2) \
X(Throw ## NAME ## 3) \
X(Throw ## NAME ## 4)
#define X(NAME) \
Nan::Set( \
target \
, Nan::New(#NAME).ToLocalChecked() \
, Nan::GetFunction(New<v8::FunctionTemplate>(NAME)).ToLocalChecked());
NAN_MODULE_INIT(Init) {
EXPORT_ERROR_FUNCTIONS(Error)
EXPORT_ERROR_FUNCTIONS(RangeError)
EXPORT_ERROR_FUNCTIONS(ReferenceError)
EXPORT_ERROR_FUNCTIONS(SyntaxError)
EXPORT_ERROR_FUNCTIONS(TypeError)
}
#undef EXPORT_ERROR_FUNCTIONS
#undef X
NODE_MODULE(error, Init)