Copy entity in Graph#fetch

This shouldn't be necessary, but someone is modifying them
in place and it's causing problems elsewhere.
This commit is contained in:
John Firebaugh
2012-12-04 16:57:52 -05:00
parent 6780ecb75b
commit 12d02e0a6b
2 changed files with 2 additions and 2 deletions

View File

@@ -89,7 +89,7 @@ iD.Graph.prototype = {
// Resolve the id references in a way, replacing them with actual objects.
fetch: function(id) {
var entity = this.entities[id], nodes = [];
if (!entity.nodes || !entity.nodes.length) return entity;
if (!entity.nodes || !entity.nodes.length) return iD.Entity(entity); // TODO: shouldn't be necessary
for (var i = 0, l = entity.nodes.length; i < l; i++) {
nodes[i] = this.fetch(entity.nodes[i]);
}

View File

@@ -59,7 +59,7 @@ describe('Graph', function() {
var node = iD.Node({id: "n1"}),
way = iD.Way({id: "w1", nodes: ["n1"]}),
graph = iD.Graph({n1: node, w1: way});
expect(graph.fetch("w1").nodes).to.eql([node]);
expect(graph.fetch("w1").nodes[0].id).to.equal("n1");
});
});