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) 2016 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::New<v8::FunctionTemplate>(NAME)->GetFunction());
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)
|