diff --git a/examples/addon/cpp/example.cpp b/examples/addon/cpp/example.cpp index ba8550d..ecd7928 100644 --- a/examples/addon/cpp/example.cpp +++ b/examples/addon/cpp/example.cpp @@ -33,6 +33,17 @@ Example::~Example() { } + +NAN_METHOD(Example::cppOn) { THIS_EXAMPLE; THIS_CHECK; + + REQ_STR_ARG(0, name); + REQ_FUN_ARG(1, cb); + + example->on(*name, cb); + +} + + // ------ System methods and props for ObjectWrap V8_STORE_FT Example::_protoExample; @@ -52,6 +63,7 @@ void Example::init(V8_VAR_OBJ target) { // -------- dynamic Nan::SetPrototypeMethod(proto, "destroy", destroy); + Nan::SetPrototypeMethod(proto, "cppOn", cppOn); // -------- static V8_VAR_FUNC ctor = Nan::GetFunction(proto).ToLocalChecked(); diff --git a/examples/addon/cpp/example.hpp b/examples/addon/cpp/example.hpp index 7487c70..e832494 100644 --- a/examples/addon/cpp/example.hpp +++ b/examples/addon/cpp/example.hpp @@ -27,6 +27,8 @@ private: static NAN_METHOD(destroy); + static NAN_METHOD(cppOn); + private: diff --git a/examples/addon/index.js b/examples/addon/index.js index 908849b..04c0ba3 100644 --- a/examples/addon/index.js +++ b/examples/addon/index.js @@ -57,4 +57,9 @@ example.on('max1', () => {}); example.on('max1', () => {}); example.on('max1', () => {}); +example.on('cpp-on', (arg1, arg2) => { + console.log('CPP_ON', arg1, arg2, example.eventNames()); +}); +example.emit('cpp-on', 555, 'abc'); + module.exports = Example;