iojs/io.js — pull request #165 by bnoordhuis (2014-12-15 16:43:38+00:00)
Title: lib: fix guard expression in timer.unref()

Fixes the following assertion on slow systems, like our ARM buildbot:

$ out/Debug/node test/simple/test-timers-unref.js
node: ../src/async-wrap-inl.h:101: v8::Handle
node::AsyncWrap::MakeCallback(uint32_t, int,
v8::Handle*): Assertion `cb_v->IsFunction()' failed.
Aborted

The reason it only manifests on slow systems is that the test starts
a 1 ms interval timer, then defers timer.unref.bind({}) to the next
tick. On fast systems, the test completes in under a millisecond,
before the callback is called.

This commit makes timer.unref() check that the receiver actually has
a timeout callback property.

Fixes #13.

R=@rvagg