@polymer/polymer
Version:
The Polymer library makes it easy to create your own web components. Give your element some markup and properties, and then use it on a site. Polymer provides features like dynamic templates and data binding to reduce the amount of boilerplate you need to
64 lines (61 loc) • 1.87 kB
HTML
<!--
@license
Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<link rel="import" href="boot.html">
<script>
(function() {
'use strict';
/**
* Provides basic tracking of element definitions (registrations) and
* instance counts.
*
* @namespace
* @summary Provides basic tracking of element definitions (registrations) and
* instance counts.
*/
Polymer.telemetry = {
/**
* Total number of Polymer element instances created.
* @type {number}
*/
instanceCount: 0,
/**
* Array of Polymer element classes that have been finalized.
* @type {Array<Polymer.Element>}
*/
registrations: [],
/**
* @param {!PolymerElementConstructor} prototype Element prototype to log
* @this {this}
* @private
*/
_regLog: function(prototype) {
console.log('[' + prototype.is + ']: registered');
},
/**
* Registers a class prototype for telemetry purposes.
* @param {HTMLElement} prototype Element prototype to register
* @this {this}
* @protected
*/
register: function(prototype) {
this.registrations.push(prototype);
Polymer.log && this._regLog(prototype);
},
/**
* Logs all elements registered with an `is` to the console.
* @public
* @this {this}
*/
dumpRegistrations: function() {
this.registrations.forEach(this._regLog);
}
};
})();
</script>