component.js
function() {
		'use strict';
		var features = arguments;
		
		if (!features.length) {
			return;
		}
		
		// Detect isWhat, tag and parent class
		var props = feature.apply(null, arguments);
		var isWhat = props.is;
		var tag = props.tag;
		var parentClass = props.extends;

		if (!parentClass) {parentClass = HTMLElement;}
		if (tag && !isWhat) {isWhat = tag; tag = null;};
		if (!tag && !isWhat) {utils.warn('Name not specified'); return;} 
		if (props.polyfill == 'v0') {
			return utils.registerElement(parentClass, isWhat, tag, arguments);
		} else {
			return utils.defineElement(parentClass, isWhat, tag, arguments);
		}
		
	}
function() {
		'use strict';
		var features = arguments;
		
		if (!features.length) {
			return;
		}
		
		// Detect isWhat, tag and parent class
		var props = feature.apply(null, arguments);
		var isWhat = props.is;
		var tag = props.tag;
		var parentClass = props.extends;

		if (!parentClass) {parentClass = HTMLElement;}
		if (tag && !isWhat) {isWhat = tag; tag = null;};
		if (!tag && !isWhat) {utils.warn('Name not specified'); return;} 
		if (props.polyfill == 'v0') {
			return utils.registerElement(parentClass, isWhat, tag, arguments);
		} else {
			return utils.defineElement(parentClass, isWhat, tag, arguments);
		}
		
	}
function ( ) { 'use strict' ; var features = arguments ; if ( ! features . length ) { return ; } // Detect isWhat, tag and parent class var props = feature . apply ( null , arguments ) ; var isWhat = props . is ; var tag = props . tag ; var parentClass = props . extends ; if ( ! parentClass ) { parentClass = HTMLElement ; } if ( tag && ! isWhat ) { isWhat = tag ; tag = null ; } ; if ( ! tag && ! isWhat ) { utils . warn ( 'Name not specified' ) ; return ; } if ( props . polyfill == 'v0' ) { return utils . registerElement ( parentClass , isWhat , tag , arguments ) ; } else { return utils . defineElement ( parentClass , isWhat , tag , arguments ) ; } }
Define a component and register in the DOM
@memberof bb
@param {object} [...] One or more features to have in the component. Features will be mixed. At least one of the features needs to have "is" proeprty defined.
@return {function} Constructor for elements
Define a component and register in the DOM