normalize-options.js 892 B

1234567891011121314151617181920212223242526272829303132
  1. 'use strict';
  2. var create = Object.create, defineProperty = Object.defineProperty;
  3. module.exports = function (t, a) {
  4. var x = { foo: 'raz', bar: 'dwa' }, y;
  5. y = t(x);
  6. a.not(y, x, "Returns copy");
  7. a.deep(y, x, "Plain");
  8. x = { raz: 'one', dwa: 'two' };
  9. defineProperty(x, 'get', {
  10. configurable: true,
  11. enumerable: true,
  12. get: function () { return this.dwa; }
  13. });
  14. x = create(x);
  15. x.trzy = 'three';
  16. x.cztery = 'four';
  17. x = create(x);
  18. x.dwa = 'two!';
  19. x.trzy = 'three!';
  20. x.piec = 'five';
  21. x.szesc = 'six';
  22. a.deep(t(x), { raz: 'one', dwa: 'two!', trzy: 'three!', cztery: 'four',
  23. piec: 'five', szesc: 'six', get: 'two!' }, "Deep object");
  24. a.deep(t({ marko: 'raz', raz: 'foo' }, x, { szesc: 'elo', siedem: 'bibg' }),
  25. { marko: 'raz', raz: 'one', dwa: 'two!', trzy: 'three!', cztery: 'four',
  26. piec: 'five', szesc: 'elo', siedem: 'bibg', get: 'two!' }, "Multiple options");
  27. };