(function() { function get(node, name){ while (!(name in node)) if (!(node = node.parentNode)) return; return node[name]; } d3.selection.prototype.local = function(name, value) { return arguments.length > 1 ? this.property(name, value) : get(this.node(), name); } })();