array-changes-async
Advanced tools
Comparing version
/*global setTimeout */ | ||
var arrayDiff = require('arraydiff-async'); | ||
var MAX_STACK_DEPTH = 1000; | ||
function extend(target) { | ||
@@ -125,4 +127,6 @@ for (var i = 1; i < arguments.length; i += 1) { | ||
var countConflicts = function (i, c, callback) { | ||
var stackCallsRemaining = MAX_STACK_DEPTH; | ||
var countConflicts = function (i, c, stackCallsRemaining, callback) { | ||
if (i >= end || c > conflicts) { | ||
@@ -138,3 +142,8 @@ // Do a setTimeout to let the stack unwind | ||
c += 1; | ||
return countConflicts(i + 1, c, callback); | ||
if (stackCallsRemaining === 0) { | ||
return setTimeout(function () { | ||
countConflicts(i + 1, c, MAX_STACK_DEPTH, callback); | ||
}); | ||
} | ||
return countConflicts(i + 1, c, stackCallsRemaining - 1, callback); | ||
} | ||
@@ -145,3 +154,8 @@ equal(actual[i], expected[i], i, i, function (areEqual) { | ||
} | ||
return countConflicts(i + 1, c, callback); | ||
if (stackCallsRemaining === 0) { | ||
return setTimeout(function () { | ||
countConflicts(i + 1, c, MAX_STACK_DEPTH, callback); | ||
}); | ||
} | ||
return countConflicts(i + 1, c, stackCallsRemaining - 1, callback); | ||
}); | ||
@@ -151,3 +165,3 @@ }); | ||
countConflicts(0, 0, function (c) { | ||
countConflicts(0, 0, MAX_STACK_DEPTH, function (c) { | ||
if (c <= conflicts) { | ||
@@ -154,0 +168,0 @@ mutatedArray = []; |
{ | ||
"name": "array-changes-async", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "Array diffing", | ||
@@ -5,0 +5,0 @@ "main": "./lib/arrayChanges.js", |
Sorry, the diff of this file is not supported yet
53636
1.23%434
2.84%