Что означает `!!~` в javascript?

Возможный дубликат:
Что означает тильда (~ ) предыдущий объект jQuery делать?

Я обнаружил странный !!~ в коде при чтении: https://github.com/LearnBoost/mongoose/blob/master/lib/document.js#L678

Document.prototype.isModified = function (path) {
  return !!~this.modifiedPaths.indexOf(path);
};

Я прочитал, что Что такое !! (не не) оператор в JavaScript? и Как сделать: оператор ~? ; почему автор использовал здесь !!~?

Я старался:

!!~1  // -> true
!!~0  // -> true
!!~-1 // -> false
!!~-2 // -> true

Кажется, что это будет только false, когда число -1. Это правильно? Почему бы просто не проверить, что число не -1 или >=0?


person Freewind    schedule 14.05.2012    source источник