MCPcopy Create free account
hub / github.com/nodejs/nan / Callback

Class Callback

nan.h:1722–1954  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1720 , Nan::NAN_INDEX_QUERY_ARGS_TYPE info)
1721
1722class Callback {
1723 public:
1724 Callback() {}
1725
1726 explicit Callback(const v8::Local<v8::Function> &fn) : handle_(fn) {}
1727
1728 ~Callback() {
1729 handle_.Reset();
1730 }
1731
1732 bool operator==(const Callback &other) const {
1733 return handle_ == other.handle_;
1734 }
1735
1736 bool operator!=(const Callback &other) const {
1737 return !operator==(other);
1738 }
1739
1740 inline
1741 v8::Local<v8::Function> operator*() const { return GetFunction(); }
1742
1743 NAN_DEPRECATED inline v8::Local<v8::Value> operator()(
1744 v8::Local<v8::Object> target
1745 , int argc = 0
1746 , v8::Local<v8::Value> argv[] = 0) const {
1747#if NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION
1748 v8::Isolate *isolate = v8::Isolate::GetCurrent();
1749# if NODE_MODULE_VERSION >= NODE_9_0_MODULE_VERSION
1750 AsyncResource async("nan:Callback:operator()");
1751 return Call_(isolate, target, argc, argv, &async)
1752 .FromMaybe(v8::Local<v8::Value>());
1753# else
1754 return Call_(isolate, target, argc, argv);
1755# endif // NODE_MODULE_VERSION >= NODE_9_0_MODULE_VERSION
1756#else
1757 return Call_(target, argc, argv);
1758#endif // NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION
1759 }
1760
1761 NAN_DEPRECATED inline v8::Local<v8::Value> operator()(
1762 int argc = 0
1763 , v8::Local<v8::Value> argv[] = 0) const {
1764#if NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION
1765 v8::Isolate *isolate = v8::Isolate::GetCurrent();
1766 v8::EscapableHandleScope scope(isolate);
1767# if NODE_MODULE_VERSION >= NODE_9_0_MODULE_VERSION
1768 AsyncResource async("nan:Callback:operator()");
1769 return scope.Escape(Call_(isolate, isolate->GetCurrentContext()->Global(),
1770 argc, argv, &async)
1771 .FromMaybe(v8::Local<v8::Value>()));
1772# else
1773 return scope.Escape(
1774 Call_(isolate, isolate->GetCurrentContext()->Global(), argc, argv));
1775# endif // NODE_MODULE_VERSION >= NODE_9_0_MODULE_VERSION
1776#else
1777 v8::HandleScope scope;
1778 return scope.Close(Call_(v8::Context::GetCurrent()->Global(), argc, argv));
1779#endif // NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION

Callers 1

NAN_METHODFunction · 0.85

Calls 4

EscapeMethod · 0.80
CallFunction · 0.70
FromMaybeMethod · 0.45
GlobalMethod · 0.45

Tested by

no test coverage detected