Heap Objects would fail on any different then numbers.

`compare()` only gets called with comparison to greater than zero. I could change it to return true if is greater than. Keeping the same behaviour matches the name

Fixes #3086