Now you can say d3.time.seconds(start, stop, step), which will return every
step'th second after start (inclusive) and before stop (exclusive). In addition,
you can now pass a range method to the time scale's ticks method, which makes it
easier to generate ticks. For example, x.ticks(d3.time.seconds, 15) will return
15-second ticks, rather than using the automatic default.
UglifyJS requires Node.js to run, but it's a lot faster than Google's
compiler and produces smaller gzipped sizes. Some of the non-gzipped
sizes are a bit larger than Google's but I think the gzipped size is
more important. Faster runtime is also good when we start testing the
minified versions too.
First, we were using the wrong space-filling format for %d and equivalent.
Second, we weren't parsing numbers with optional leading spaces correctly.
Yay tests!
The renaming of attributes is totally not worth the hassle of maintaining an
externs file (or using the awkward `foo["bar"]` syntax). The file size
reduction from the advanced optimizations was negligible, besides!