Fix crash in ticks for empty d3.time.scale domain.

Fixes #1525. This was only an issue because the domain is extended by one
millisecond when it is empty (for an inclusive upper bound).
This commit is contained in:
Mike Bostock 2013-09-18 20:35:27 -07:00
Родитель 5f8056c1e4
Коммит 90d06cf08d
4 изменённых файлов: 11 добавлений и 3 удалений

2
d3.js поставляемый
Просмотреть файл

@ -8887,7 +8887,7 @@ d3 = function() {
range: interval
}, skip ];
if (method) interval = method[0], skip = method[1];
return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip);
return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);
};
scale.tickFormat = function() {
return format;

2
d3.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -71,7 +71,7 @@ function d3_time_scale(linear, methods, format) {
if (method) interval = method[0], skip = method[1];
return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip); // inclusive upper bound
return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip); // inclusive upper bound
};
scale.tickFormat = function() {

Просмотреть файл

@ -313,6 +313,10 @@ suite.addBatch({
local(1500, 0, 1, 0, 0),
local(2000, 0, 1, 0, 0)
]);
},
"returns one tick for degenerate empty domain": function(scale) {
var x = scale().domain([local(2014, 2, 2), local(2014, 2, 2)]);
assert.deepEqual(x.ticks(6), [local(2014, 2, 2)]);
}
},
@ -617,6 +621,10 @@ suite.addBatch({
utc(1500, 0, 1, 0, 0),
utc(2000, 0, 1, 0, 0)
]);
},
"returns one tick for degenerate empty domain": function(scale) {
var x = scale().domain([utc(2014, 2, 2), utc(2014, 2, 2)]);
assert.deepEqual(x.ticks(6), [utc(2014, 2, 2)]);
}
},