Generating rooms in a map
In your locationIsFine it seems you check for each room in your roomStore if any of its tiles intersect with a tile inside your new/fake room.

It would probably be worth wile to add some basic checks which (the larger your roomStore will grow, the more it) will reduce the number of checks needed.

This is actually a rectangle intersection problem.
Between rectangles, if one isn't completly to the left, right, above or below the other, they will intersect; so checking on that is the fastest way and will save you the check on each and every tile against each and every tile of the other room. This will save you from creating the tilesets for the fake room.

So a start to enhance the algorithm would be this.

var locationIsFine = function(x, y, width, height) {
    //make sure room wont hit any other rooms, we do this by checking if edges of a room collide with an exisiting room
    for (var i = 0; i &lt; roomStore.length; i++) {
        // roomStore[i] completly left or completly right of new room
        if(roomStore[i].X &gt; x+width || roomStore[i].x+roomStore[i].Width &lt; x) continue;
        // roomStore[i] completly above or completly below new room
        if(roomStore[i].Y &gt; y+height || roomStore[i].Y+roomStore[i].Height &lt; y) continue;

        //if a room is neither completely to the right nor completely to the left as well as
        //not completly above nor completely below, it will intersect
        return false;
    }
    return true;
}