chromeのwebkitNotificationsに設定したonclickが一定時間後に効かなくなる

原因がよくわからんのだけどnotificationsに設定したonclickがしばらくすると効かなくなることがある気がする。chrome15。

function notify() {
  var n = webkitNotifications.createNotification("foo", "bar");
  n.onclick = function() {
    console.log("hoge");
  };
  n.show();
}

これでしばらく放置しといてクリックすると全く反応しなくなる。addEventListenerにしても同じだった。

var n; // window.n
function notify() {
  n = webkitNotifications.createNotification("foo", "bar");
  n.onclick = function() {
    console.log("hoge");
  };
  n.show();
}

とかにしたら直った。参照が消えるんだろうか。。謎。

lessのエラーハンドリング

function foo() {
  var e = { name: 'Error', message: 'hoge' };
  throw e;
}

foo();

node.jsでこれ実行すると

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: hoge

こうなるわけなんだけど、エラーの箇所がさっぱりわからんので

function bar() {
  var e = Error('hoge');
  throw e;
}

bar();

こうしていただくと、まだこっちのほうがわかりやすかったりする。

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: hoge
    at Error (unknown source)
    at bar (/Users/hokamura/tmp/err/test.js:2:11)
    at Object.<anonymous> (/Users/hokamura/tmp/err/test.js:6:1)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)
    at EventEmitter._tickCallback (node.js:192:40

lessでそうなってる。
https://github.com/cloudhead/less.js/blob/9eb0423cb2428bb166c962f1362ac727f1d92c7d/lib/less/parser.js#L260-264
しかもこれコールバックを受け取る関数なのにthrowしてるのでさらにやっかいですね:)

その下のこっちのエラーはちゃんとcallbackにわたっているのに。。
https://github.com/cloudhead/less.js/blob/9eb0423cb2428bb166c962f1362ac727f1d92c7d/lib/less/parser.js#L367-379

というか書いてて気づいたけど、そもそもこの関数非同期じゃないぞ。。