This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//replacement for jQUery ready | |
document.addEventListener("DOMContentLoaded", function(event) { | |
//do work | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//this uses a 32bit hash with a 1/100000 collison prob for a 300 string cache | |
//this can has hash a 5k string 15000 per sec | |
//so lets say about 500 messages per msec | |
String.prototype.hashCode = 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 = hash && hash; // hash |= 0; Convert to 32bit integer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{{fmt:'%d',@field1}} | |
{{:@field:d}} | |
{{:format('%d',@field1)}} | |
{{:format('%d',@field1) + format('d',@field2)}} | |
{{fmt:'%d',db.props@field1}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{{fmt:'The %1 job is done. What %2 to do next?', @field1, @field2}} | |
//assumes we have added the Array Generics polyfill | |
//replacement elements start at 1 not 0 | |
//this code actually goes in the main format utility function | |
var reFmt1 = /%(\d+)/g; | |
function formatReplace(str) { | |
var args = Array.slice(arguments); |