whole_func_string: function(el, index) {
        if(!isNumber(number(index)) || isNaN(index)) index = this.length;
        array.prototype.splice.apply(this, [index, 0].concat(el));
        return this;
      }
func_code_string: function(el, index) {
        if(!isNumber(number(index)) || isNaN(index)) index = this.length;
        array.prototype.splice.apply(this, [index, 0].concat(el));
        return this;
      }
func_documentation_string: *
  @method add(<el>, [index])
  @returns Array
  @short Adds <el> to the array.
  @extra If [index] is specified, it will add at [index], otherwise adds to the end of the array. %add% behaves like %concat% in that if <el> is an array it will be joined, not inserted. This method will change the array! Use %include% for a non-destructive alias. Also, %insert% is provided as an alias that reads better when using an index.
  @example
  
  [1,2,3,4].add(5)       -> [1,2,3,4,5]
  [1,2,3,4].add([5,6,7]) -> [1,2,3,4,5,6,7]
  [1,2,3,4].insert(8, 1) -> [1,8,2,3,4]
  
  *