/**
 * @fileoverview Externs for closure compiler
 * @externs
 */

/**
 * Block renaming of properties added to Node to
 * prevent conflicts with other closure-compiler code.
 * @type {Object}
 */
EventTarget.prototype.__handlers;

/** @type {Object} */
Node.prototype.__shady;

/** @interface */
function IWrapper() {}

/** @type {Object} */
IWrapper.prototype._activeElement;

// NOTE: For some reason, Closure likes to remove focus() from the IWrapper
// class. Not yet clear why focus() is affected and not any other methods (e.g.
// blur).
IWrapper.prototype.focus = function() {};

/** @type {!boolean|undefined} */
Event.prototype.__composed;

/** @type {!boolean|undefined} */
Event.prototype.__immediatePropagationStopped;

/** @type {!Node|undefined} */
Event.prototype.__relatedTarget;

/** @type {!Array<!EventTarget>|undefined} */
Event.prototype.__composedPath;

/** @type {!Array<!EventTarget>|undefined} */
Event.prototype.__relatedTargetComposedPath;

/**
 * Prevent renaming of this method on ShadyRoot for testing and debugging.
 */
ShadowRoot.prototype._renderSelf = function(){};

@@ -1090,12 +1090,303 @@
 nction()%7B%7D;%0A
+%0A// Prevent renaming of properties used by Polymer templates with%0A// shadyUpgradeFragment optimization%0A/** @type %7B!Object%7D */%0ADocumentFragment.prototype.$;%0A/** @type %7Bboolean%7D */%0ADocumentFragment.prototype.__noInsertionPoint;%0A/** @type %7B!Array%3C!Node%3E%7D */%0ADocumentFragment.prototype.nodeList;

Add externs for Polymer template instance properties