anchor.diff:  
     @override
     Future<Rectangle> getBoundingClientRect() async {
  -    var rect = await context.driver
  +    Map<String, num> rect = await context.driver
           .execute('return arguments[0].getBoundingClientRect();', [context]);
       return new Rectangle<num>(rect['left'] as num, rect['top'] as num,
           rect['width'] as num, rect['height'] as num);
  
positive.code: 
    @override
    Future<Rectangle> get offset async {
      var rect = await context.driver.execute(
          '''return {
            left: arguments[0].offsetLeft,
            top: arguments[0].offsetTop,
  
negative.code: 
    _WebElementPageLoaderElement(
        wd.WebElement _context, WebDriverPageLoader loader)
        : this.context = _context,
          this.attributes = new _ElementAttributes(_context),
          this.computedStyle = new _ElementComputedStyle(_context),
          this.style = new _ElementStyle(_context),
          super._(loader);
  
    @override
    Future<WebDriverPageLoaderElement> get shadowRoot async {
  