diff --git a/lib/sinon/spy.js b/lib/sinon/spy.js index 5d783565f..142395c21 100644 --- a/lib/sinon/spy.js +++ b/lib/sinon/spy.js @@ -22,6 +22,14 @@ var filter = Array.prototype.filter; var uuid = 0; +function matches(fake, args, strict) { + var margs = fake.matchingArguments; + if (margs.length <= args.length && deepEqual(slice(args, 0, margs.length), margs)) { + return !strict || margs.length === args.length; + } + return false; +} + // Public API var spyApi = { formatters: require("./spy-formatters"), @@ -44,7 +52,7 @@ var spyApi = { }; forEach(original.args, function(arg, i) { - if (!fake.matches(arg)) { + if (!matches(fake, arg)) { return; } @@ -64,20 +72,10 @@ var spyApi = { // Override proxy default implementation matchingFakes: function(args, strict) { return filter.call(this.fakes, function(fake) { - return fake.matches(args, strict); + return matches(fake, args, strict); }); }, - matches: function(args, strict) { - var margs = this.matchingArguments; - - if (margs.length <= args.length && deepEqual(slice(args, 0, margs.length), margs)) { - return !strict || margs.length === args.length; - } - - return undefined; - }, - printf: function(format) { var spyInstance = this; var args = slice(arguments, 1);