// Replaces one or more format items in a specified string
// with the string representation of a specified object.
// Returns formatted string.
if (!String.prototype.format) {
  String.prototype.format = function() {
    var args = arguments;
    return this.replace(/{(\d+)}/g, function(match, number) {
      return typeof args[number] != 'undefined'
        ? args[number]
        : match
      ;
    });
  };
}

// Calculate hash value of the string.
// Returns integer value.
if (!String.prototype.hash) {
    String.prototype.hash = function() {
      var hash = 0, i, chr, len;
      if (this.length == 0) return hash;
      for (i = 0, len = this.length; i < len; i++) {
        chr   = this.charCodeAt(i);
        hash  = ((hash << 5) - hash) + chr;
        hash |= 0; // Convert to 32bit integer
      }
      return hash;
    };
}
// Replaces one or more format items in a specified string
// with the string representation of a specified object.
// Returns formatted string.
if (!String.prototype.format) {
  String.prototype.format = function() {
    var args = arguments;
    return this.replace(/{(\d+)}/g, function(match, number) {
      return typeof args[number] != 'undefined'
        ? args[number]
        : match
      ;
    });
  };
}
--- 
+++ 
@@ -12,3 +12,18 @@
     });
   };
 }
+
+// Calculate hash value of the string.
+// Returns integer value.
+if (!String.prototype.hash) {
+    String.prototype.hash = function() {
+      var hash = 0, i, chr, len;
+      if (this.length == 0) return hash;
+      for (i = 0, len = this.length; i < len; i++) {
+        chr   = this.charCodeAt(i);
+        hash  = ((hash << 5) - hash) + chr;
+        hash |= 0; // Convert to 32bit integer
+      }
+      return hash;
+    };
+}
Add method for calculation hashcode of string.
