]> git.r.bdr.sh - rbdr/dotfiles/blob
3db0af10acd3caad91b47e2f1dc2f62673b86b1b
[rbdr/dotfiles] /
1 'use strict';
2
3 var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
4
5 module.exports = function (t, a) {
6 var o, c, cg, cs, ce, ceg, ces, cew, cw, e, eg, es, ew, v, vg, vs, w, df, dfg
7 , dfs;
8
9 o = Object.create(Object.prototype, {
10 c: t('c', c = {}),
11 cgs: t.gs('c', cg = function () {}, cs = function () {}),
12 ce: t('ce', ce = {}),
13 cegs: t.gs('ce', ceg = function () {}, ces = function () {}),
14 cew: t('cew', cew = {}),
15 cw: t('cw', cw = {}),
16 e: t('e', e = {}),
17 egs: t.gs('e', eg = function () {}, es = function () {}),
18 ew: t('ew', ew = {}),
19 v: t('', v = {}),
20 vgs: t.gs('', vg = function () {}, vs = function () {}),
21 w: t('w', w = {}),
22
23 df: t(df = {}),
24 dfgs: t.gs(dfg = function () {}, dfs = function () {})
25 });
26
27 return {
28 c: function (a) {
29 var d = getOwnPropertyDescriptor(o, 'c');
30 a(d.value, c, "Value");
31 a(d.get, undefined, "Get");
32 a(d.set, undefined, "Set");
33 a(d.configurable, true, "Configurable");
34 a(d.enumerable, false, "Enumerable");
35 a(d.writable, false, "Writable");
36
37 d = getOwnPropertyDescriptor(o, 'cgs');
38 a(d.value, undefined, "GS Value");
39 a(d.get, cg, "GS Get");
40 a(d.set, cs, "GS Set");
41 a(d.configurable, true, "GS Configurable");
42 a(d.enumerable, false, "GS Enumerable");
43 a(d.writable, undefined, "GS Writable");
44 },
45 ce: function (a) {
46 var d = getOwnPropertyDescriptor(o, 'ce');
47 a(d.value, ce, "Value");
48 a(d.get, undefined, "Get");
49 a(d.set, undefined, "Set");
50 a(d.configurable, true, "Configurable");
51 a(d.enumerable, true, "Enumerable");
52 a(d.writable, false, "Writable");
53
54 d = getOwnPropertyDescriptor(o, 'cegs');
55 a(d.value, undefined, "GS Value");
56 a(d.get, ceg, "GS Get");
57 a(d.set, ces, "GS Set");
58 a(d.configurable, true, "GS Configurable");
59 a(d.enumerable, true, "GS Enumerable");
60 a(d.writable, undefined, "GS Writable");
61 },
62 cew: function (a) {
63 var d = getOwnPropertyDescriptor(o, 'cew');
64 a(d.value, cew, "Value");
65 a(d.get, undefined, "Get");
66 a(d.set, undefined, "Set");
67 a(d.configurable, true, "Configurable");
68 a(d.enumerable, true, "Enumerable");
69 a(d.writable, true, "Writable");
70 },
71 cw: function (a) {
72 var d = getOwnPropertyDescriptor(o, 'cw');
73 a(d.value, cw, "Value");
74 a(d.get, undefined, "Get");
75 a(d.set, undefined, "Set");
76 a(d.configurable, true, "Configurable");
77 a(d.enumerable, false, "Enumerable");
78 a(d.writable, true, "Writable");
79 },
80 e: function (a) {
81 var d = getOwnPropertyDescriptor(o, 'e');
82 a(d.value, e, "Value");
83 a(d.get, undefined, "Get");
84 a(d.set, undefined, "Set");
85 a(d.configurable, false, "Configurable");
86 a(d.enumerable, true, "Enumerable");
87 a(d.writable, false, "Writable");
88
89 d = getOwnPropertyDescriptor(o, 'egs');
90 a(d.value, undefined, "GS Value");
91 a(d.get, eg, "GS Get");
92 a(d.set, es, "GS Set");
93 a(d.configurable, false, "GS Configurable");
94 a(d.enumerable, true, "GS Enumerable");
95 a(d.writable, undefined, "GS Writable");
96 },
97 ew: function (a) {
98 var d = getOwnPropertyDescriptor(o, 'ew');
99 a(d.value, ew, "Value");
100 a(d.get, undefined, "Get");
101 a(d.set, undefined, "Set");
102 a(d.configurable, false, "Configurable");
103 a(d.enumerable, true, "Enumerable");
104 a(d.writable, true, "Writable");
105 },
106 v: function (a) {
107 var d = getOwnPropertyDescriptor(o, 'v');
108 a(d.value, v, "Value");
109 a(d.get, undefined, "Get");
110 a(d.set, undefined, "Set");
111 a(d.configurable, false, "Configurable");
112 a(d.enumerable, false, "Enumerable");
113 a(d.writable, false, "Writable");
114
115 d = getOwnPropertyDescriptor(o, 'vgs');
116 a(d.value, undefined, "GS Value");
117 a(d.get, vg, "GS Get");
118 a(d.set, vs, "GS Set");
119 a(d.configurable, false, "GS Configurable");
120 a(d.enumerable, false, "GS Enumerable");
121 a(d.writable, undefined, "GS Writable");
122 },
123 w: function (a) {
124 var d = getOwnPropertyDescriptor(o, 'w');
125 a(d.value, w, "Value");
126 a(d.get, undefined, "Get");
127 a(d.set, undefined, "Set");
128 a(d.configurable, false, "Configurable");
129 a(d.enumerable, false, "Enumerable");
130 a(d.writable, true, "Writable");
131 },
132 d: function (a) {
133 var d = getOwnPropertyDescriptor(o, 'df');
134 a(d.value, df, "Value");
135 a(d.get, undefined, "Get");
136 a(d.set, undefined, "Set");
137 a(d.configurable, true, "Configurable");
138 a(d.enumerable, false, "Enumerable");
139 a(d.writable, true, "Writable");
140
141 d = getOwnPropertyDescriptor(o, 'dfgs');
142 a(d.value, undefined, "GS Value");
143 a(d.get, dfg, "GS Get");
144 a(d.set, dfs, "GS Set");
145 a(d.configurable, true, "GS Configurable");
146 a(d.enumerable, false, "GS Enumerable");
147 a(d.writable, undefined, "GS Writable");
148 },
149 Options: {
150 v: function (a) {
151 var x = {}, d = t(x, { foo: true });
152 a.deep(d, { configurable: true, enumerable: false, writable: true,
153 value: x, foo: true }, "No descriptor");
154 d = t('c', 'foo', { marko: 'elo' });
155 a.deep(d, { configurable: true, enumerable: false, writable: false,
156 value: 'foo', marko: 'elo' }, "Descriptor");
157 },
158 gs: function (a) {
159 var gFn = function () {}, sFn = function () {}, d;
160 d = t.gs(gFn, sFn, { foo: true });
161 a.deep(d, { configurable: true, enumerable: false, get: gFn, set: sFn,
162 foo: true }, "No descriptor");
163 d = t.gs(null, sFn, { foo: true });
164 a.deep(d, { configurable: true, enumerable: false, get: undefined,
165 set: sFn, foo: true }, "No descriptor: Just set");
166 d = t.gs(gFn, { foo: true });
167 a.deep(d, { configurable: true, enumerable: false, get: gFn,
168 set: undefined, foo: true }, "No descriptor: Just get");
169
170 d = t.gs('e', gFn, sFn, { bar: true });
171 a.deep(d, { configurable: false, enumerable: true, get: gFn, set: sFn,
172 bar: true }, "Descriptor");
173 d = t.gs('e', null, sFn, { bar: true });
174 a.deep(d, { configurable: false, enumerable: true, get: undefined,
175 set: sFn, bar: true }, "Descriptor: Just set");
176 d = t.gs('e', gFn, { bar: true });
177 a.deep(d, { configurable: false, enumerable: true, get: gFn,
178 set: undefined, bar: true }, "Descriptor: Just get");
179 }
180 }
181 };
182 };