function Component() {
	    var _this;

	    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	    var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Component.defaults;
	    var instructions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Component.instructions;

	    classCallCheck(this, Component);

	    _this = possibleConstructorReturn(this, getPrototypeOf$2(Component).call(this)); // Apply polyfilled parameters to .params;

	    defineProperty$3(defineProperty$3(defineProperty$3(assertThisInitialized(assertThisInitialized(_this)), "_wait", []), "modules", []), "children", []);

	    _this.params = extend(transformData(params, instructions), defaults);
	    if (_this.params.manager) _this.manager = new ModuleManager(assertThisInitialized(assertThisInitialized(_this)));
	    _this.modules = _this.params.modules;

	    _this.integrateModules();

	    return _this;
	  }
Collection of `child` Components.
@member {Array} module:core.Component#children
@public