docs: function () {
  			var k, ent,
  			hash = {
  				max: { x: -Infinity, y: -Infinity },
  				min: { x: Infinity, y: Infinity }
  			},
  			coords = {
  				max: { x: -Infinity, y: -Infinity },
  				min: { x: Infinity, y: Infinity }
  			};
  
        //Using broad phase hash to speed up the computation of boundaries.
  			for (var h in this.map) {
  				if (!this.map[h].length) continue;
  
          //broad phase coordinate
  				var i= h>>16,
  					j=(h<<16)>>16;
  				if (j<0) { i = i^-1 }
  				if (i >= hash.max.x) {
  					hash.max.x = i;
  					for (k in this.map[h]) {
  						ent = this.map[h][k];
  						//make sure that this is a Crafty entity
  						if (typeof ent == 'object' && 'requires' in ent) {
  							coords.max.x = Math.max(coords.max.x, ent.x + ent.w);
  						}
  					}
  				}
  				if (i <= hash.min.x) {
  					hash.min.x = i;
  					for (k in this.map[h]) {
  						ent = this.map[h][k];
  						if (typeof ent == 'object' && 'requires' in ent) {
  							coords.min.x = Math.min(coords.min.x, ent.x);
  						}
  					}
  				}
  				if (j >= hash.max.y) {
  					hash.max.y = j;
  					for (k in this.map[h]) {
  						ent = this.map[h][k];
  						if (typeof ent == 'object' && 'requires' in ent) {
  							coords.max.y = Math.max(coords.max.y, ent.y + ent.h);
  						}
  					}
  				}
  				if (j <= hash.min.y) {
  					hash.min.y = j;
  					for (k in this.map[h]) {
  						ent = this.map[h][k];
  						if (typeof ent == 'object' && 'requires' in ent) {
  							coords.min.y = Math.min(coords.min.y, ent.y);
  						}
  					}
  				}
  			}
  
  			return coords;
  		}