src/core/component.js
function (schemaAddon) {
    var extendedSchema;
    // Clone base schema.
    extendedSchema = utils.extend({}, components[this.name].schema);
    // Extend base schema with new schema chunk.
    utils.extend(extendedSchema, schemaAddon);
    this.schema = processSchema(extendedSchema);
    this.el.emit('schemachanged', this.evtDetail);
  }
function (schemaAddon) {
    var extendedSchema;
    // Clone base schema.
    extendedSchema = utils.extend({}, components[this.name].schema);
    // Extend base schema with new schema chunk.
    utils.extend(extendedSchema, schemaAddon);
    this.schema = processSchema(extendedSchema);
    this.el.emit('schemachanged', this.evtDetail);
  }
function ( schemaAddon ) { var extendedSchema ; // Clone base schema. extendedSchema = utils . extend ( { } , components [ this . name ] . schema ) ; // Extend base schema with new schema chunk. utils . extend ( extendedSchema , schemaAddon ) ; this . schema = processSchema ( extendedSchema ) ; this . el . emit ( 'schemachanged' , this . evtDetail ) ; }
Extend schema of component given a partial schema.

Some components might want to mutate their schema based on certain properties.
e.g., Material component changes its schema based on `shader` to account for different
uniforms

@param {object} schemaAddon - Schema chunk that extend base schema.
Extend schema of component given a partial schema .