function assignment semicolon (v4)

Revision 4 of this benchmark created on


Test runner

Ready to run.

Testing in
TestOps/sec
padCenter
String.prototype.padLeft = function(value, length) {
  if (length < this.length) return this;
  if (typeof(value) != "string") value = String(value);
  if (value.length == 0) return this;

  var thisArr = (this.split('') || []),
      valueArr = (value.split('') || []),
      resultArr = new Array(length),
      padLen = length - thisArr.length,
      i = 0,
      j = 0;

  while (i < padLen) {
    if (j >= valueArr.length) {
      j = 0;
    }
    resultArr[i++] = valueArr[j++];
  }

  j = 0;

  while (i < length) {
    resultArr[i++] = thisArr[j++];
  }

  return resultArr.join('');
}

String.prototype.padRight = function(value, length) {
  if (length < this.length) return this;
  if (typeof(value) != "string") value = String(value);
  if (value.length == 0) return this;

  var thisArr = (this.split('') || []),
      valueArr = (value.split('') || []),
      resultArr = new Array(length),
      padLen = thisArr.length,
      i = 0,
      j = 0;

  while (i < padLen) {
    resultArr[i++] = thisArr[j++];
  }

  j = 0;

  while (i < length) {
    if (j >= valueArr.length) {
      j = 0;
    }
    resultArr[i++] = valueArr[j++];
  }

  return resultArr.join('');
}

String.prototype.padCenter = function(value, length) {
  if (length < this.length) return this;
  if (typeof(value) != "string") value = String(value);
  if (value.length == 0) return this;

  return this.padLeft(value, this.length + Math.round((length - this.length) / 2)).padRight(value, length);
}

"mystring".padCenter("*", 1000000);
ready
padCenter2
String.prototype.padLeft2 = function(value, length) {
  if (length < this.length) return this;
  if (typeof(value) != "string") value = String(value);
  if (value.length == 0) return this;

  var result = value,
      padLen = length - this.length;

  while (result.length < padLen) {
    result += value;
  }
  result = result.substr(0, padLen) + this;

  return result;
}

String.prototype.padRight2 = function(value, length) {
  if (length < this.length) return this;
  if (typeof(value) != "string") value = String(value);
  if (value.length == 0) return this;

  var result = value,
      padLen = length - this.length;

  while (result.length < padLen) {
    result += value;
  }
  result = this + result.substr(0, padLen);

  return result;
}

String.prototype.padCenter2 = function(value, length) {
  if (length < this.length) return this;
  if (typeof(value) != "string") value = String(value);
  if (value.length == 0) return this;

  return this.padLeft2(value, this.length + Math.round((length - this.length) / 2)).padRight2(value, length);
}

"mystring".padCenter2("*", 1000000);
ready
padCenter3
String.prototype.padLeft3 = function(value, length) {
  if (length < this.length) return this;
  if (typeof(value) != "string") value = String(value);
  if (value.length == 0) return this;

  var chars = (value.split('') || []),
      charsLen = chars.length,
      padLen = length - this.length,
      result = Array(padLen + 1),
      i = 0,
      j = 0;

  while (i < padLen) {
    if (j >= charsLen) {
      j = 0;
    }
    result[i++] = chars[j++];
  }

  result[i] = this;

  return result.join('');
}

String.prototype.padRight3 = function(value, length) {
  if (length < this.length) return this;
  if (typeof(value) != "string") value = String(value);
  if (value.length == 0) return this;

  var chars = (value.split('') || []),
      charsLen = chars.length,
      padLen = length - this.length,
      result = Array(padLen + 1),
      i = 0,
      j = 0;

  result[i++] = this;

  while (i <= padLen) {
    if (j >= charsLen) {
      j = 0;
    }
    result[i++] = chars[j++];
  }

  return result.join('');
}

String.prototype.padCenter3 = function(value, length) {
  if (length < this.length) return this;
  if (typeof(value) != "string") value = String(value);
  if (value.length == 0) return this;

  return this.padLeft3(value, this.length + Math.round((length - this.length) / 2)).padRight3(value, length);
}

"mystring".padCenter3("*", 1000000);
ready
native
String.prototype.pad = function(l, s, t) {
  return s || (s = " "), (l -= this.length) > 0 ? (s = new Array(Math.ceil(l / s.length) + 1).join(s)).substr(0, t = !t ? l : t == 1 ? 0 : Math.ceil(l / 2)) + this + s.substr(0, l - t) : this;
};

"mystring".pad(1000000, "*", 2);
ready
named without
 
ready
named with
 
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.