diff --git a/lodash.src.js b/lodash.src.js index e496ed38a..dd50ea028 100644 --- a/lodash.src.js +++ b/lodash.src.js @@ -7792,6 +7792,7 @@ if (maxTimeoutId) { clearTimeout(maxTimeoutId); } + lastCalled = 0; maxTimeoutId = timeoutId = trailingCall = undefined; } diff --git a/test/test.js b/test/test.js index 76b02c574..f861695dd 100644 --- a/test/test.js +++ b/test/test.js @@ -15889,6 +15889,29 @@ QUnit.start(); } }); + + asyncTest('_.' + methodName + ' should reset `lastCalled` after cancelling', 3, function() { + if (!(isRhino && isModularize)) { + var callCount = 0; + + var funced = func(function() { + return ++callCount; + }, 32, { 'leading': true }); + + strictEqual(funced(), 1); + funced.cancel(); + strictEqual(funced(), 2); + + setTimeout(function() { + strictEqual(callCount, 2); + QUnit.start(); + }, 64); + } + else { + skipTest(3); + QUnit.start(); + } + }); }); /*--------------------------------------------------------------------------*/