five-bells-visualization
Version:
Tool to visualize Five Bells payments
79 lines (65 loc) • 2.26 kB
HTML
<!--
@license
Copyright (c) 2014 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
-->
<script>
// until ES6 modules become standard, we follow Occam and simply stake out
// a global namespace
// Polymer is a Function, but of course this is also an Object, so we
// hang various other objects off of Polymer.*
(function() {
var userPolymer = window.Polymer;
window.Polymer = function(prototype) {
var ctor = desugar(prototype);
// native Custom Elements treats 'undefined' extends property
// as valued, the property must not exist to be ignored
var options = {
prototype: ctor.prototype
};
if (prototype.extends) {
options.extends = prototype.extends;
}
Polymer.telemetry._registrate(prototype);
document.registerElement(prototype.is, options);
return ctor;
};
var desugar = function(prototype) {
prototype = Polymer.Base.chainObject(prototype, Polymer.Base);
prototype.registerCallback();
return prototype.constructor;
};
window.Polymer = Polymer;
if (userPolymer) {
for (var i in userPolymer) {
Polymer[i] = userPolymer[i];
}
}
Polymer.Class = desugar;
})();
/*
// Raw usage
[ctor =] Polymer.Class(prototype);
document.registerElement(name, ctor);
// Simplified usage
[ctor = ] Polymer(prototype);
*/
// telemetry: statistics, logging, and debug
Polymer.telemetry = {
registrations: [],
_regLog: function(prototype) {
console.log('[' + prototype.is + ']: registered')
},
_registrate: function(prototype) {
this.registrations.push(prototype);
Polymer.log && this._regLog(prototype);
},
dumpRegistrations: function() {
this.registrations.forEach(this._regLog);
}
};
</script>