anchor.diff:    Element fetchTemplate(Element elementElement) =>
         elementElement.query('template');
   
  -  /** Utility function that creates a shadow root from a `<template>`. */
  +  /**
  +   * Utility function that creates a shadow root from a `<template>`.
  +   *
  +   * The base implementation will return a [ShadowRoot], but you can replace it
  +   * with your own code and skip ShadowRoot creation. In that case, you should
  +   * return `null`.
  +   *
  +   * In your overridden method, you can use [instanceTemplate] to stamp the
  +   * template and initialize data binding, and [shadowRootReady] to intialize
  +   * other Polymer features like event handlers. It is fine to call
  +   * shadowRootReady with a node something other than a ShadowRoot; for example,
  +   * with this Node.
  +   */
     ShadowRoot shadowFromTemplate(Element template) {
       if (template == null) return null;
       // cache elder shadow root (if any)
  
positive.code:   void parseDeclaration(Element elementElement) {
      var root = shadowFromTemplate(fetchTemplate(elementElement));
  
      // Dart note: this is extra code compared to Polymer to support
      // the getShadowRoot method.
      if (root == null) return;
  
      var name = elementElement.attributes['name'];
      if (name == null) return;
  
negative.code:     return root;
    }
  
    void shadowRootReady(Node root, Element template) {
      // locate nodes with id and store references to them in this.$ hash
      marshalNodeReferences(root);
      // add local events of interest...
  