code: function (shaderType, symbol) {
          if (shaderType !== 'vertex' && shaderType !== 'fragment' && shaderType !== 'both'
              && arguments.length < 2
          ) {
              // shaderType default to be 'both'
              symbol = shaderType;
              shaderType = 'both';
          }
          if (shaderType === 'vertex' || shaderType === 'both') {
              if (this.isDefined('vertex', symbol)) {
                  delete this.vertexDefines[symbol];
                  // Mark as dirty
                  this._programKey = '';
              }
          }
          if (shaderType === 'fragment' || shaderType === 'both') {
              if (this.isDefined('fragment', symbol)) {
                  delete this.fragmentDefines[symbol];
                  if (shaderType !== 'both') {
                      this._programKey = '';
                  }
              }
          }
      }
docs: Remove a #define macro in shader code
  @param  {string} shaderType Can be vertex, fragment or both
  @param  {string} symbol