code: function( distance ){
              var v = this.vertices;
              var num = v.length - 1;
              if( num > 1 ){
                  var startX = v[0].x,
                      startY = v[0].y,
                      c = v[num].x,
                      d = v[num].y,
                      e = startX,
                      f = startY,
                      a,
                      b;
                  for( var i = 0; i < num; i++ ){
                      a = c;
                      b = d;
                      c = e;
                      d = f;
                      e = v[i + 1].x;
                      f = v[i + 1].y;
                      this._offsetCorner(a, b, c, d, e, f, distance, v[i]);
                  }
                  this._offsetCorner(c, d, e, f, startX, startY, distance, v[num]);
              }
              return this;
          }
docs: Moves each line segment of the polygon in/outward perpendicular by the
  given distance. New line segments and polygon vertices are created by
  computing the intersection points of the displaced segments. Choosing an
  too large displacement amount will result in deformation/undefined
  behavior with various self intersections. Should that happen, please try
  to clean up the shape using the {@link #toOutline()} method.
  
  @param distance
  offset/inset distance (negative for inset)
  @return itself