/* eslint id-length: 0 */ "use strict"; var memoize = require("../..") , join = Array.prototype.join; module.exports = function (a) { var i = 0 , fn = function () { ++i; return join.call(arguments, "|"); } , y = { toString: function () { return "foo"; } } , mfn; mfn = memoize(fn, { primitive: true, length: false }); a(mfn(y, "bar", "zeta"), "foo|bar|zeta", "#1"); a(mfn("foo", "bar", "zeta"), "foo|bar|zeta", "#2"); a(i, 1, "Called once"); a(mfn(y, "bar"), "foo|bar", "#3"); a(i, 2, "Called twice"); a(mfn(y, "bar"), "foo|bar", "#4"); a(i, 2, "Called twice #2"); };