summaryrefslogtreecommitdiff
path: root/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es5-ext/test/object/normalize-options.js
blob: 0d2d4da04a53b180405004ee99982bb4e6c7953a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
'use strict';

var create = Object.create, defineProperty = Object.defineProperty;

module.exports = function (t, a) {
	var x = { foo: 'raz', bar: 'dwa' }, y;
	y = t(x);
	a.not(y, x, "Returns copy");
	a.deep(y, x, "Plain");

	x = { raz: 'one', dwa: 'two' };
	defineProperty(x, 'get', {
		configurable: true,
		enumerable: true,
		get: function () { return this.dwa; }
	});
	x = create(x);
	x.trzy = 'three';
	x.cztery = 'four';
	x = create(x);
	x.dwa = 'two!';
	x.trzy = 'three!';
	x.piec = 'five';
	x.szesc = 'six';

	a.deep(t(x), { raz: 'one', dwa: 'two!', trzy: 'three!', cztery: 'four',
		piec: 'five', szesc: 'six', get: 'two!' }, "Deep object");

	a.deep(t({ marko: 'raz', raz: 'foo' }, x, { szesc: 'elo', siedem: 'bibg' }),
		{ marko: 'raz', raz: 'one', dwa: 'two!', trzy: 'three!', cztery: 'four',
			piec: 'five', szesc: 'elo', siedem: 'bibg', get: 'two!' }, "Multiple options");
};