diff --git a/README.md b/README.md index c153bb5..3924543 100644 --- a/README.md +++ b/README.md @@ -124,13 +124,6 @@ created with. If this is called with a dead reference, `undefined` is returned. Checks to see if `ref` is a dead reference. Returns `true` if the original Object has already been GC'd, `false` otherwise. - -### Boolean weak.isNearDeath(Weakref ref) - -Checks to see if `ref` is "near death". This will be `true` exactly during the -weak reference callback function, and `false` any other time. - - ### Boolean weak.isWeakRef(Object obj) Checks to see if `obj` is "weak reference" instance. Returns `true` if the diff --git a/package.json b/package.json index 29f9d15..b3cdba6 100644 --- a/package.json +++ b/package.json @@ -15,20 +15,20 @@ "function", "callback" ], - "version": "1.0.1", + "version": "2.0.0", "repository": { "type": "git", "url": "git://github.com/TooTallNate/node-weak.git" }, "main": "lib/weak.js", "scripts": { - "test": "mocha -gc --reporter spec" + "test": "mocha --expose-gc --gc-global --reporter spec" }, "dependencies": { - "bindings": "^1.2.1", - "nan": "^2.0.5" + "bindings": "^1.5.0", + "nan": "^2.13.2" }, "devDependencies": { - "mocha": "5" + "mocha": "6" } } diff --git a/src/weakref.cc b/src/weakref.cc index 32f0790..4a27242 100644 --- a/src/weakref.cc +++ b/src/weakref.cc @@ -156,7 +156,7 @@ static void TargetCallback(const Nan::WeakCallbackInfo &info) { // node::MakeCallback() which calls into process._tickCallback() // too. Those other callbacks are not safe to run from here. v8::Local globalCallbackDirect = globalCallback->GetFunction(); - globalCallbackDirect->Call(Nan::GetCurrentContext()->Global(), 1, argv); + globalCallbackDirect->Call(Nan::GetCurrentContext(), Nan::GetCurrentContext()->Global(), 1, argv); // clean everything up Local proxy = Nan::New(cont->proxy); @@ -177,7 +177,9 @@ NAN_METHOD(Create) { Local _target = info[0].As(); Local _emitter = info[1].As(); - Local proxy = Nan::New(proxyClass)->NewInstance(); + + Local proxy = Nan::New(proxyClass)->NewInstance(Nan::GetCurrentContext()).ToLocalChecked(); + cont->proxy.Reset(proxy); cont->emitter.Reset(_emitter); cont->target.Reset(_target); @@ -224,23 +226,6 @@ NAN_METHOD(Get) { info.GetReturnValue().Set(Unwrap(proxy)); } -/** - * `isNearDeath(weakref)` JS function. - */ - -NAN_METHOD(IsNearDeath) { - WEAKREF_FIRST_ARG - - proxy_container *cont = reinterpret_cast( - Nan::GetInternalFieldPointer(proxy, FIELD_INDEX_CONTAINER) - ); - assert(cont != NULL); - - Local rtn = Nan::New(cont->target.IsNearDeath()); - - info.GetReturnValue().Set(rtn); -} - /** * `isDead(weakref)` JS function. */ @@ -293,7 +278,6 @@ NAN_MODULE_INIT(Initialize) { Nan::SetMethod(target, "get", Get); Nan::SetMethod(target, "isWeakRef", IsWeakRef); - Nan::SetMethod(target, "isNearDeath", IsNearDeath); Nan::SetMethod(target, "isDead", IsDead); Nan::SetMethod(target, "_create", Create); Nan::SetMethod(target, "_getEmitter", GetEmitter); diff --git a/test/exports.js b/test/exports.js index 348cffd..b96740f 100644 --- a/test/exports.js +++ b/test/exports.js @@ -18,7 +18,6 @@ describe('exports', function () { checkFunction('get') checkFunction('create') checkFunction('isWeakRef') - checkFunction('isNearDeath') checkFunction('isDead') checkFunction('callbacks') checkFunction('addCallback')