Merge branch 'master' of https://github.com/raub/node-addon-tools
This commit is contained in:
commit
7b33ccdf35
|
@ -6,6 +6,7 @@
|
|||
This is a set of helpers for simplification and standardization of addons and
|
||||
dependency packages.
|
||||
|
||||
* EventEmitter C++ implementation.
|
||||
* Contains helpers of following types: GYP, C++, JS, BAT (Windows).
|
||||
* Platforms: win x32/x64, linux x32/x64, mac x64.
|
||||
* Useful links: [V8 Ref](https://v8docs.nodesource.com/node-0.8/d2/dc3/namespacev8.html),
|
||||
|
|
|
@ -292,6 +292,26 @@ protected:
|
|||
emitter->_wrappedIds[nextId] = cb;
|
||||
emitter->_rawIds[nextId] = raw;
|
||||
|
||||
int count = emitter->_raw[name].size();
|
||||
|
||||
if (emitter->_maxListeners > 0 && count > emitter->_maxListeners) {
|
||||
|
||||
std::cout << "EventEmitter Warning: too many listeners (";
|
||||
std::cout << count << " > " << emitter->_maxListeners << ") on '";
|
||||
std::cout << name << "' event, possible memory leak." << std::endl;
|
||||
|
||||
// Some JS magic to retrieve the call stack
|
||||
v8::Local<v8::String> code = JS_STR(
|
||||
"(new Error()).stack.split('\\n').slice(1).join('\\n')"
|
||||
);
|
||||
v8::Local<v8::String> stack = v8::Local<v8::String>::Cast(
|
||||
v8::Script::Compile(code)->Run()
|
||||
);
|
||||
Nan::Utf8String stackStr(stack);
|
||||
std::cout << *stackStr << std::endl;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue