JSFiddle - React, Tailwind, and code Playground

HTML

<!-- For StackOverflow question -->
<!-- This is a modified version of this sample: http://bl.ocks.org/3020685
-->
<!-- Remove one or more items from the sourceData array and re-run to
see the error in the console -->

CSS

body {
    font: 10px sans-serif;
}
.axis path, .axis line {
    fill: none;
    stroke: #000;
    shape-rendering: crispEdges;
}

JavaScript

function assignDefaultValues( dataset )
{
    var defaultValue = 0;
    var keys = [ 'Group1' , 'Group2', 'Group3' ];
    var hadData = [ true, true, true];
    var newData = [];
    var previousdate = new Date();
    var sortByDate = function(a,b){ return a.date > b.date ? 1 : -1; };
    
    dataset.sort(sortByDate);
    dataset.forEach(function(row){
        if(row.date.valueOf() !== previousdate.valueOf()){
            for(var i = 0 ; i < keys.length ; ++i){
                if(hadData[i] === false){
                    newData.push( { key: keys[i], 
                                   value: defaultValue, 
                                   date: previousdate });
                }
                hadData[i] = false;
            }
            previousdate = row.date;
        }
        hadData[keys.indexOf(row.key)] = true; 
    });
    for( i = 0 ; i < keys.length ; ++i){
        if(hadData[i] === false){
            newData.push( { key: keys[i], value: defaultValue, 
                            date: previousdate });
        }
    }
    return dataset.concat(newData).sort(sortByDate);
}

var sourceData = 
    [
         {key:'Group1',value:37,date:'04/23/12'},
         {key:'Group1',value:32,date:'04/24/12'},
         {key:'Group1',value:45,date:'04/25/12'},
         //{key:'Group1',value:24,date:'04/26/12'},
         //{key:'Group2',value:12,date:'04/23/12'},
         {key:'Group2',value:19,date:'04/24/12'},
         {key:'Group2',value:16,date:'04/25/12'},
         {key:'Group2',value:52,date:'04/26/12'},
         {key:'Group3',value:46,date:'04/23/12'},
         {key:'Group3',value:42,date:'04/24/12'},
         {key:'Group3',value:19,date:'04/25/12'},
         {key:'Group3',value:16,date:'04/26/12'}
        ];

var format = d3.time.format("%m/%d/%y");
  
var margin = {top: 20, right: 30, bottom: 30, left: 40},
    width = 960 - margin.left - margin.right,
    height = 500 - margin.top - margin.bottom;

var x = d3.time.scale()
    .range([0, width]);

var y...