ClipperOffset seems to return the wrong PolyTree structure when using negative offset.
https://jsfiddle.net/fdnhe938/3/
Note that with positive offset, the polytree's "IsHole" property matches the ring orientation (clockwise).
However, for negative offset, that's swapped.
JsFiddle output is in console.