anchor.diff:    getComputedStyle(elem) => elem.getComputedStyle();
   
     setGlobalVar(String path, value) {
  -    if (value is Function) {
  -      ngSetGlobalVar(path, allowInterop(value));
  -    } else {
  -      ngSetGlobalVar(path, value);
  +    var parts = path.split('.');
  +    Object obj = window;
  +    for (var i = 0; i < parts.length - 1; i++) {
  +      var name = parts[i];
  +      if (js_util.callMethod(obj, 'hasOwnProperty', [name])) {
  +        obj = js_util.getProperty(obj, name);
  +      } else {
  +        js_util.setProperty(obj, name, js_util.newObject());
  +        obj = js_util.getProperty(obj, name);
  +      }
       }
  +    js_util.setProperty(obj, parts[parts.length - 1],
  +        (value is Function) ? allowInterop(value) : value);
     }
   
     requestAnimationFrame(callback) {
  
positive.code: library browser_adapter;
  
  import 'dart:html';
  import 'package:angular2/platform/common_dom.dart' show setRootDomAdapter;
  import 'generic_browser_adapter.dart' show GenericBrowserDomAdapter;
  import 'package:angular2/src/facade/browser.dart';
  
negative.code:   }
  }();
  
  @JS('document.implementation.createHTMLDocument')
  external ngCreateDocument(value);
  
  class BrowserDomAdapter
      extends GenericBrowserDomAdapter<Element, Node, EventTarget> {
    static void makeCurrent() {
      setRootDomAdapter(new BrowserDomAdapter());
    }
  
    bool hasProperty(Element element, String name) =>
        js_util.hasProperty(element, name);
  
    void setProperty(Element element, String name, Object value) {
      js_util.setProperty(element, name, value);
    }
  
    getProperty(Element element, String name) =>
        js_util.getProperty(element, name);
  
    // TODO(tbosch): move this into a separate environment class once we have it
    logError(error) {
  