code: function(geometry, style, featureId) {
          var components = geometry.components;
          var len = components.length;
          this.drawLinearRing(components[0], style, featureId);
          // erase inner rings
          for (var i=1; i<len; ++i) {
              /** 
               * Note that this is overly agressive.  Here we punch holes through 
               * all previously rendered features on the same canvas.  A better 
               * solution for polygons with interior rings would be to draw the 
               * polygon on a sketch canvas first.  We could erase all holes 
               * there and then copy the drawing to the layer canvas. 
               * TODO: http://trac.osgeo.org/openlayers/ticket/3130 
               */
              this.canvas.globalCompositeOperation = "destination-out";
              if (this.hitDetection) {
                  this.hitContext.globalCompositeOperation = "destination-out";
              }
              this.drawLinearRing(
                  components[i], 
                  OpenLayers.Util.applyDefaults({stroke: false, fillOpacity: 1.0}, style),
                  featureId
              );
              this.canvas.globalCompositeOperation = "source-over";
              if (this.hitDetection) {
                  this.hitContext.globalCompositeOperation = "source-over";
              }
              this.drawLinearRing(
                  components[i], 
                  OpenLayers.Util.applyDefaults({fill: false}, style),
                  featureId
              );
          }
      }
docs: Method: drawPolygon
  This method is only called by the renderer itself.
  
  Parameters:
  geometry - {<OpenLayers.Geometry>}
  style    - {Object}
  featureId - {String}