MarchingSquare.js issue

progressCallback function never called

HTML

<div id="container"></div>

<script>
/*
 @license GNU Affero General Public License.
 Copyright (c) 2015, 2015 Ronny Lorenz <[email protected]>
 v. 1.2.2
 https://github.com/RaumZeit/MarchingSquares.js
*/
(function(x,B){"function"===typeof define&&define.amd?define([],function(){return{isoBands:B()}}):"object"===typeof module&&module.exports?module.exports={isoBands:B()}:x.MarchingSquaresJS={isoBands:B(),isoContours:x.MarchingSquaresJS?x.MarchingSquaresJS.isoContours:null}})(this,function(){function x(d,b,c,g,h,a){d=(g+c+b+d)/4;return d>a?2:d<h?0:1}function B(d,b,c,g){0===c?(d+=1,b+=g[0][1]):1===c?d+=g[0][0]:2===c?b+=g[0][1]:3===c&&(d+=g[0][0],b+=1);return[d,b]}function H(d,b,c){0===c?d++:1!==c&&(2===
c?b++:3===c&&(d++,b++));return[d,b]}function I(d){for(var b=d.rows,c=d.cols,g=[],h=0;h<b;h++)for(var a=0;a<c;a++)if("undefined"!==typeof d.cells[h][a]){var f=d.cells[h][a];0!==f.cval&&170!==f.cval&&f.polygons.forEach(function(b){b.forEach(function(b){b[0]+=a;b[1]+=h});g.push(b)})}return g}var E={successCallback:null,verbose:!1,polygons:!1,polygons_full:!1,interpolate:function(d,b,c,g){return d<b?d<c?(c-d)/(b-d):(g-d)/(b-d):d>g?(d-g)/(d-b):(d-c)/(d-b)},interpolate_a:function(d,b,c,g){return d<b?(c-
d)/(b-d):(d-g)/(d-b)},interpolate_b:function(d,b,c,g){return...

JavaScript

function drawMarchingSquaresContours(divId) {
        // var zs = [0, 3];
         var zs = [3, 5];
        // var zs = [5, 7];
        // var zs = [7, 10];
        // var zs = [10, 15];
        var data = [
        [ 1, 1,  1,  1,  1, 1, 1],
        [ 1, 5,  5,  5,  5, 5, 1],
        [ 1, 5, 15, 15, 15, 5, 1],
        [ 1, 5, 10, 10, 10, 5, 1],
        [ 1, 5,  5,  5,  5, 5, 1],
        [ 1, 1,  1,  1,  1, 1, 1]
      ];

        // data = d3.transpose(data);

        var xs = d3.range(0, data[0].length);
        var ys = d3.range(0, data.length);

        var marginBottomLabel = 0;

        var width = 150;
        var height = width * (ys.length / xs.length);

        var xScale = d3.scale.linear()
                .range([0, width])
                .domain([Math.min.apply(null, xs), Math.max.apply(null, xs)]);

        var yScale = d3.scale.linear()
                .range([0, height])
                .domain([Math.min.apply(null, ys), Math.max.apply(null, ys)]);

        var colours = d3.scale.linear().domain([zs[0], zs[zs.length - 1]])
                .range([d3.rgb(0, 0, 0),
                    d3.rgb(200, 200, 200)]);

        var isoBands = [];
        for (var i = 1; i < zs.length; i++) {
            var lowerBand = zs[i - 1];
            var upperBand = zs[i];

            var band = MarchingSquaresJS.isoBands(data, lowerBand, upperBand - lowerBand, {
                successCallback: function(band) {
                     // console.log('band', JSON.stringify(band));
                },
                progressCallback: function () {
                    // console.log('progress callback:', arguments, i)
                },
                verbose: false,
                polygons: false
            });
            isoBands.push({"coords": band, "level": i, "val": zs[i]});
        }

        var svg = d3.select(divId)
                .append("svg")
                .attr("width", width)
                .attr("height", height + marginBottomLabel);

        /*
 ...