copy-deep.js 935 B

12345678910111213141516171819202122232425262728
  1. 'use strict';
  2. var stringify = JSON.stringify;
  3. module.exports = function (t, a) {
  4. var o = { 1: 'raz', 2: 'dwa', 3: 'trzy' }
  5. , no = t(o);
  6. a.not(no, o, "Return different object");
  7. a(stringify(no), stringify(o), "Match properties and values");
  8. o = { foo: 'bar', raz: { dwa: 'dwa',
  9. trzy: { cztery: 'pięć', 'sześć': 'siedem' }, osiem: {},
  10. 'dziewięć': function () { } },
  11. 'dziesięć': 10, "jedenaście": ['raz', ['dwa', 'trzy', { elo: "true" }]] };
  12. o.raz.rec = o;
  13. no = t(o);
  14. a.not(o.raz, no.raz, "Deep");
  15. a.not(o.raz.trzy, no.raz.trzy, "Deep #2");
  16. a(stringify(o.raz.trzy), stringify(no.raz.trzy), "Deep content");
  17. a(no.raz.rec, no, "Recursive");
  18. a.not(o.raz.osiem, no.raz.osiem, "Empty object");
  19. a(o.raz['dziewięć'], no.raz['dziewięć'], "Function");
  20. a.not(o['jedenaście'], no['jedenaście']);
  21. a.not(o['jedenaście'][1], no['jedenaście'][1]);
  22. a.not(o['jedenaście'][1][2], no['jedenaście'][1][2]);
  23. };