UNPKG

966 BJavaScriptView Raw
1var _Object$defineProperty = require("../core-js/object/define-property");
2
3var _Object$keys = require("../core-js/object/keys");
4
5function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
6 var desc = {};
7
8 _Object$keys(descriptor).forEach(function (key) {
9 desc[key] = descriptor[key];
10 });
11
12 desc.enumerable = !!desc.enumerable;
13 desc.configurable = !!desc.configurable;
14
15 if ('value' in desc || desc.initializer) {
16 desc.writable = true;
17 }
18
19 desc = decorators.slice().reverse().reduce(function (desc, decorator) {
20 return decorator(target, property, desc) || desc;
21 }, desc);
22
23 if (context && desc.initializer !== void 0) {
24 desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
25 desc.initializer = undefined;
26 }
27
28 if (desc.initializer === void 0) {
29 _Object$defineProperty(target, property, desc);
30
31 desc = null;
32 }
33
34 return desc;
35}
36
37module.exports = _applyDecoratedDescriptor;
\No newline at end of file