D3 virtual dom