anchor.diff:      }
     }
   
  +  Map _panes;
  +  var _mapPane, _tilePane;
  +
     _initPanes() {
       var panes = this._panes = {};
   
  -    this._mapPane = panes.mapPane = this._createPane('leaflet-map-pane', this._container);
  -
  -    this._tilePane = panes.tilePane = this._createPane('leaflet-tile-pane', this._mapPane);
  -    panes.objectsPane = this._createPane('leaflet-objects-pane', this._mapPane);
  -    panes.shadowPane = this._createPane('leaflet-shadow-pane');
  -    panes.overlayPane = this._createPane('leaflet-overlay-pane');
  -    panes.markerPane = this._createPane('leaflet-marker-pane');
  -    panes.popupPane = this._createPane('leaflet-popup-pane');
  +    this._mapPane = panes['mapPane'] = this._createPane('leaflet-map-pane', this._container);
  +
  +    this._tilePane = panes['tilePane'] = this._createPane('leaflet-tile-pane', this._mapPane);
  +    panes['objectsPane'] = this._createPane('leaflet-objects-pane', this._mapPane);
  +    panes['shadowPane'] = this._createPane('leaflet-shadow-pane');
  +    panes['overlayPane'] = this._createPane('leaflet-overlay-pane');
  +    panes['markerPane'] = this._createPane('leaflet-marker-pane');
  +    panes['popupPane'] = this._createPane('leaflet-popup-pane');
   
       var zoomHide = ' leaflet-zoom-hide';
   
  -    if (!this.options.markerZoomAnimation) {
  -      L.DomUtil.addClass(panes.markerPane, zoomHide);
  -      L.DomUtil.addClass(panes.shadowPane, zoomHide);
  -      L.DomUtil.addClass(panes.popupPane, zoomHide);
  -    }
  -  }
  -
  -  _createPane(className, container) {
  -    return L.DomUtil.create('div', className, container || this._panes.objectsPane);
  +    if (!this.options['markerZoomAnimation']) {
  +      dom.DomUtil.addClass(panes['markerPane'], zoomHide);
  +      dom.DomUtil.addClass(panes['shadowPane'], zoomHide);
  +      dom.DomUtil.addClass(panes['popupPane'], zoomHide);
  +    }
  +  }
  +
  +  _createPane(String className, [var container=null]) {
  +    return dom.DomUtil.create('div', className, container != null ? container : this._panes['objectsPane']);
     }
   
     _clearPanes() {
       this._container.removeChild(this._mapPane);
     }
   
  -  _addLayers(layers) {
  -    layers = layers ? (L.Util.isArray(layers) ? layers : [layers]) : [];
  +  _addLayers([var layers=null]) {
  +    layers = layers ? (layers is List ? layers : [layers]) : [];
   
       for (var i = 0, len = layers.length; i < len; i++) {
         this.addLayer(layers[i]);
  
positive.code: import 'dart:html';
  import 'dart:math' as math;
  
  class Options {
    CRS crs;
    bool fadeAnimation;
    bool trackResize = true;
    bool markerZoomAnimation;
  }
  
  class Map {
    Options options;
  
    List _handlers;
  
  
negative.code: 
    // map events
  
    _initEvents([String onOff='on']) {
      if (dom.DomEvent == null) { return; }
  
      if (onOff == 'on') {
        dom.DomEvent.on(this._container, 'click', this._onMouseClick, this);
      } else {
        dom.DomEvent.off(this._container, 'click', this._onMouseClick, this);
      }
  
      var events = ['dblclick', 'mousedown', 'mouseup', 'mouseenter',
                    'mouseleave', 'mousemove', 'contextmenu'],
  