UNPKG

ember-cli-ajh

Version:

Command line tool for developing ambitious ember.js apps

44 lines (40 loc) 1.18 kB
'use strict'; var memoize = require('../..'); module.exports = { "": function (a) { var i = 0, fn = function (x, y, z) { ++i; return x + y + z; }, mfn , y = { toString: function () { return 'foo'; } }; mfn = memoize(fn, { primitive: true }); a(mfn(y, 'bar', 'zeta'), 'foobarzeta', "#1"); a(mfn('foo', 'bar', 'zeta'), 'foobarzeta', "#2"); a(i, 1, "Called once"); }, Delete: function (a) { var i = 0, fn = function (x, y, z) { ++i; return x + y + z; }, mfn , y = { toString: function () { return 'foo'; } }; mfn = memoize(fn, { primitive: true }); a(mfn(y, 'bar', 'zeta'), 'foobarzeta', "#1"); a(mfn('foo', 'bar', 'zeta'), 'foobarzeta', "#2"); a(i, 1, "Called once"); mfn.delete('foo', { toString: function () { return 'bar'; } }, 'zeta'); a(mfn(y, 'bar', 'zeta'), 'foobarzeta', "#3"); a(i, 2, "Called twice"); }, Clear: function (a) { var i = 0, fn; fn = memoize(function (x) { if (++i < 2) fn(x); }); a.throws(function () { fn('foo'); }, 'CIRCULAR_INVOCATION'); i = 0; fn = memoize(function (x, y) { if (++i < 2) fn(x, y); }); a.throws(function () { fn('foo', 'bar'); }, 'CIRCULAR_INVOCATION'); } };