diff --git a/js/id/core/graph.js b/js/id/core/graph.js index 5da30c957..790e30ed5 100644 --- a/js/id/core/graph.js +++ b/js/id/core/graph.js @@ -84,6 +84,8 @@ iD.Graph.prototype = { nodes[i] = this.entity(entity.nodes[i]); } + if (iD.debug) Object.freeze(nodes); + this._childNodes[entity.id] = nodes; return this._childNodes[entity.id]; }, diff --git a/js/id/geo/multipolygon.js b/js/id/geo/multipolygon.js index 761831ec2..75ec6a3e2 100644 --- a/js/id/geo/multipolygon.js +++ b/js/id/geo/multipolygon.js @@ -87,7 +87,7 @@ iD.geo.joinWays = function(array, graph) { while (array.length) { member = array.shift(); current = [member]; - current.nodes = nodes = resolve(member); + current.nodes = nodes = resolve(member).slice(); joined.push(current); while (array.length && _.first(nodes) !== _.last(nodes)) {