five-bells-visualization
Version:
Tool to visualize Five Bells payments
80 lines (70 loc) • 2.32 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>
/**
* Support `extends` property (for type-extension only).
*
* If the mixin is String-valued, the corresponding Polymer module
* is mixed in.
*
* Polymer({
* is: 'pro-input',
* extends: 'input',
* ...
* });
*
* Type-extension objects are created using `is` notation in HTML, or via
* the secondary argument to `document.createElement` (the type-extension
* rules are part of the Custom Elements specification, not something
* created by Polymer).
*
* Example:
*
* <!-- right: creates a pro-input element -->
* <input is="pro-input">
*
* <!-- wrong: creates an unknown element -->
* <pro-input>
*
* <script>
* // right: creates a pro-input element
* var elt = document.createElement('input', 'pro-input');
*
* // wrong: creates an unknown element
* var elt = document.createElement('pro-input');
* <\script>
*
* @class base feature: extends
*/
Polymer.Base._addFeature({
_prepExtends: function() {
if (this.extends) {
this.__proto__ = this.getExtendedPrototype(this.extends);
}
},
getExtendedPrototype: function(tag) {
return this.getExtendedNativePrototype(tag);
},
nativePrototypes: {}, // static
getExtendedNativePrototype: function(tag) {
var p = this.nativePrototypes[tag];
if (!p) {
var np = this.getNativePrototype(tag);
p = this.extend(Object.create(np), Polymer.Base);
this.nativePrototypes[tag] = p;
}
return p;
},
getNativePrototype: function(tag) {
// TODO(sjmiles): sad necessity
return Object.getPrototypeOf(document.createElement(tag));
}
});
</script>