-
Notifications
You must be signed in to change notification settings - Fork 12k
Description
Steps to Reproduce (for bugs)
Setup a graph with a time scale and values "00:34:12" for example, with HH > 24
Current Behavior
First a null value
In scale.time.js, method determineDataLimits, the value is parsed:
timestamp = parse(data[j], me);
for the value "00:34:12" it returns null because HH > 24.
Then, the null value comes first
In the same method, the timestamps values are sorted:
timestamps = arrayUnique(timestamps).sort(sorter);
The previous null value is now first in timestamps array.
The null becomes a 0
The following line is:
min = Math.min(min, timestamps[0]);
Because timestamps[0] is null, min value is now 0
And finally...
Now we are in scale.time.js, method buildTicks.
The min value is 0 and the max value is something like 1528926965000
Because the options.ticks.source is auto, we call:
timestamps = generate(min, max, me.getLabelCapacity(min), options);
And we have now an array of 2548213 values!
Look at your RAM increasing then kill your browser tab 😉
Expected Behavior
I know that the Time axis is not a Duration axis, so the case should never happen.
But if it happens, that would be nice if we had an error/warning in the console and maybe a degraded behavior instead of the browser freezing 😛
Environment
- Chart.js version: 2.7.2
- Browser name and version: Chrome 67.0.3396.79 (64 bits)
- OS : Windows 7