code: function () {
          var material = new this.constructor({
              name: this.name,
              shader: this.shader
          });
          for (var symbol in this.uniforms) {
              material.uniforms[symbol].value = this.uniforms[symbol].value;
          }
          material.depthTest = this.depthTest;
          material.depthMask = this.depthMask;
          material.transparent = this.transparent;
          material.blend = this.blend;
  
          material.vertexDefines = util$1.clone(this.vertexDefines);
          material.fragmentDefines = util$1.clone(this.fragmentDefines);
          material.enableTexture(this.getEnabledTextures());
          material.precision = this.precision;
  
          return material;
      }
docs: Clone a new material and keep uniforms, shader will not be cloned
  @return {clay.Material}