@jsenv/core 29.1.19 → 29.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/babel_helpers/AsyncGenerator/AsyncGenerator.js +3 -16
- package/dist/babel_helpers/applyDecoratorDescriptor/applyDecoratorDescriptor.js +0 -5
- package/dist/babel_helpers/applyDecs/applyDecs.js +54 -241
- package/dist/babel_helpers/applyDecs2023/applyDecs2023.js +47 -195
- package/dist/babel_helpers/arrayLikeToArray/arrayLikeToArray.js +0 -2
- package/dist/babel_helpers/arrayWithoutHoles/arrayWithoutHoles.js +2 -1
- package/dist/babel_helpers/assertThisInitialized/assertThisInitialized.js +0 -1
- package/dist/babel_helpers/asyncGeneratorDelegate/asyncGeneratorDelegate.js +4 -14
- package/dist/babel_helpers/asyncIterator/asyncIterator.js +5 -20
- package/dist/babel_helpers/asyncToGenerator/asyncToGenerator.js +2 -8
- package/dist/babel_helpers/awaitAsyncGenerator/awaitAsyncGenerator.js +1 -3
- package/dist/babel_helpers/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +0 -4
- package/dist/babel_helpers/classApplyDescriptorGet/classApplyDescriptorGet.js +0 -1
- package/dist/babel_helpers/classApplyDescriptorSet/classApplyDescriptorSet.js +0 -1
- package/dist/babel_helpers/classExtractFieldDescriptor/classExtractFieldDescriptor.js +0 -1
- package/dist/babel_helpers/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +0 -1
- package/dist/babel_helpers/classPrivateMethodGet/classPrivateMethodGet.js +0 -1
- package/dist/babel_helpers/construct/construct.js +5 -5
- package/dist/babel_helpers/createClass/createClass.js +0 -1
- package/dist/babel_helpers/createForOfIteratorHelper/createForOfIteratorHelper.js +5 -9
- package/dist/babel_helpers/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +2 -3
- package/dist/babel_helpers/createRawReactElement/createRawReactElement.js +2 -8
- package/dist/babel_helpers/createSuper/createSuper.js +2 -4
- package/dist/babel_helpers/decorate/decorate.js +60 -311
- package/dist/babel_helpers/defaults/defaults.js +0 -3
- package/dist/babel_helpers/defineEnumerableProperties/defineEnumerableProperties.js +2 -5
- package/dist/babel_helpers/defineProperty/defineProperty.js +0 -1
- package/dist/babel_helpers/extends/extends.js +0 -3
- package/dist/babel_helpers/get/get.js +0 -3
- package/dist/babel_helpers/getPrototypeOf/getPrototypeOf.js +2 -1
- package/dist/babel_helpers/inherits/inherits.js +2 -3
- package/dist/babel_helpers/instanceof/instanceof.js +0 -1
- package/dist/babel_helpers/interopRequireWildcard/interopRequireWildcard.js +0 -10
- package/dist/babel_helpers/isNativeReflectConstruct/isNativeReflectConstruct.js +6 -6
- package/dist/babel_helpers/iterableToArrayLimit/iterableToArrayLimit.js +0 -5
- package/dist/babel_helpers/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +2 -5
- package/dist/babel_helpers/jsx/jsx.js +2 -8
- package/dist/babel_helpers/maybeArrayLike/maybeArrayLike.js +2 -3
- package/dist/babel_helpers/objectDestructuringEmpty/objectDestructuringEmpty.js +1 -1
- package/dist/babel_helpers/objectSpread/objectSpread.js +4 -6
- package/dist/babel_helpers/objectSpread2/objectSpread2.js +3 -8
- package/dist/babel_helpers/objectWithoutProperties/objectWithoutProperties.js +0 -3
- package/dist/babel_helpers/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +0 -2
- package/dist/babel_helpers/possibleConstructorReturn/possibleConstructorReturn.js +0 -1
- package/dist/babel_helpers/regeneratorRuntime/regeneratorRuntime.js +634 -0
- package/dist/babel_helpers/set/set.js +2 -12
- package/dist/babel_helpers/superPropBase/superPropBase.js +0 -1
- package/dist/babel_helpers/taggedTemplateLiteral/taggedTemplateLiteral.js +0 -1
- package/dist/babel_helpers/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +0 -1
- package/dist/babel_helpers/toPrimitive/toPrimitive.js +1 -5
- package/dist/babel_helpers/typeof/typeof.js +0 -2
- package/dist/babel_helpers/wrapNativeSuper/wrapNativeSuper.js +0 -7
- package/dist/babel_helpers/wrapRegExp/wrapRegExp.js +5 -19
- package/dist/controllable_child_process.mjs +17 -27
- package/dist/controllable_worker_thread.mjs +4 -16
- package/dist/js/autoreload.js +13 -56
- package/dist/js/execute_using_dynamic_import.js +40 -164
- package/dist/js/global_this.js +2 -10
- package/dist/js/import_meta_hot.js +3 -9
- package/dist/js/new_stylesheet.js +0 -59
- package/dist/js/regenerator_runtime.js +80 -156
- package/dist/js/s.js +25 -113
- package/dist/js/s.js.map +10 -10
- package/dist/js/script_type_module_supervisor.js +4 -13
- package/dist/js/server_events_client.js +10 -38
- package/dist/js/supervisor.js +25 -167
- package/dist/js/v8_coverage.js +29 -92
- package/dist/js/ws.js +239 -717
- package/dist/main.js +761 -4155
- package/package.json +6 -6
- package/src/plugins/import_meta_url/client/import_meta_url_browser.js +1 -2
- package/src/plugins/import_meta_url/client/import_meta_url_commonjs.mjs +1 -1
- package/src/plugins/plugins.js +1 -1
- package/src/plugins/transpilation/as_js_classic/helpers-string.js +1 -0
- package/src/plugins/transpilation/babel/global_this/client/global_this.js +0 -2
|
@@ -1,38 +1,21 @@
|
|
|
1
1
|
/* eslint-disable block-scoped-var */
|
|
2
|
-
|
|
3
2
|
/* eslint-disable no-nested-ternary */
|
|
4
|
-
|
|
5
3
|
/* eslint-disable no-negated-condition */
|
|
6
|
-
|
|
7
4
|
/* eslint-disable consistent-return */
|
|
8
|
-
|
|
9
5
|
/* eslint-disable prefer-spread */
|
|
10
|
-
|
|
11
6
|
/* eslint-disable no-void */
|
|
12
|
-
|
|
13
7
|
/* eslint-disable no-sequences */
|
|
14
8
|
import toArray from "../toArray/toArray.js";
|
|
15
|
-
import toPropertyKey from "../toPropertyKey/toPropertyKey.js";
|
|
9
|
+
import toPropertyKey from "../toPropertyKey/toPropertyKey.js";
|
|
16
10
|
|
|
17
|
-
|
|
18
|
-
/* : ClassDecorator[] */
|
|
19
|
-
, factory
|
|
20
|
-
/* : ClassFactory */
|
|
21
|
-
, superClass
|
|
22
|
-
/* : ?Class<*> */
|
|
23
|
-
, mixins
|
|
24
|
-
/* : ?Array<Function> */
|
|
25
|
-
)
|
|
26
|
-
/* : Class<*> */
|
|
27
|
-
{
|
|
11
|
+
// ClassDefinitionEvaluation (Steps 26-*)
|
|
12
|
+
export default function _decorate(decorators /* : ClassDecorator[] */, factory /* : ClassFactory */, superClass /* : ?Class<*> */, mixins /* : ?Array<Function> */) /* : Class<*> */{
|
|
28
13
|
var api = _getDecoratorsApi();
|
|
29
|
-
|
|
30
14
|
if (mixins) {
|
|
31
15
|
for (var i = 0; i < mixins.length; i++) {
|
|
32
16
|
api = mixins[i](api);
|
|
33
17
|
}
|
|
34
18
|
}
|
|
35
|
-
|
|
36
19
|
var r = factory(function initialize(O) {
|
|
37
20
|
api.initializeInstanceElements(O, decorated.elements);
|
|
38
21
|
}, superClass);
|
|
@@ -40,46 +23,26 @@ export default function _decorate(decorators
|
|
|
40
23
|
api.initializeClassElements(r.F, decorated.elements);
|
|
41
24
|
return api.runClassFinishers(r.F, decorated.finishers);
|
|
42
25
|
}
|
|
43
|
-
|
|
44
26
|
var _getDecoratorsApi = function () {
|
|
45
27
|
var api = {
|
|
46
28
|
elementsDefinitionOrder: [["method"], ["field"]],
|
|
47
|
-
|
|
48
29
|
// InitializeInstanceElements
|
|
49
|
-
initializeInstanceElements(
|
|
50
|
-
/* ::<C>*/
|
|
51
|
-
O
|
|
52
|
-
/* : C */
|
|
53
|
-
, elements
|
|
54
|
-
/* : ElementDescriptor[] */
|
|
55
|
-
) {
|
|
30
|
+
initializeInstanceElements( /* ::<C>*/O /* : C */, elements /* : ElementDescriptor[] */) {
|
|
56
31
|
;
|
|
57
32
|
["method", "field"].forEach(function (kind) {
|
|
58
|
-
elements.forEach(function (element
|
|
59
|
-
/* : ElementDescriptor */
|
|
60
|
-
) {
|
|
33
|
+
elements.forEach(function (element /* : ElementDescriptor */) {
|
|
61
34
|
if (element.kind === kind && element.placement === "own") {
|
|
62
35
|
this.defineClassElement(O, element);
|
|
63
36
|
}
|
|
64
37
|
}, this);
|
|
65
38
|
}, this);
|
|
66
39
|
},
|
|
67
|
-
|
|
68
40
|
// InitializeClassElements
|
|
69
|
-
initializeClassElements(
|
|
70
|
-
/* ::<C>*/
|
|
71
|
-
F
|
|
72
|
-
/* : Class<C> */
|
|
73
|
-
, elements
|
|
74
|
-
/* : ElementDescriptor[] */
|
|
75
|
-
) {
|
|
41
|
+
initializeClassElements( /* ::<C>*/F /* : Class<C> */, elements /* : ElementDescriptor[] */) {
|
|
76
42
|
var proto = F.prototype;
|
|
77
43
|
["method", "field"].forEach(function (kind) {
|
|
78
|
-
elements.forEach(function (element
|
|
79
|
-
/* : ElementDescriptor */
|
|
80
|
-
) {
|
|
44
|
+
elements.forEach(function (element /* : ElementDescriptor */) {
|
|
81
45
|
var placement = element.placement;
|
|
82
|
-
|
|
83
46
|
if (element.kind === kind && (placement === "static" || placement === "prototype")) {
|
|
84
47
|
var receiver = placement === "static" ? F : proto;
|
|
85
48
|
this.defineClassElement(receiver, element);
|
|
@@ -87,19 +50,9 @@ var _getDecoratorsApi = function () {
|
|
|
87
50
|
}, this);
|
|
88
51
|
}, this);
|
|
89
52
|
},
|
|
90
|
-
|
|
91
53
|
// DefineClassElement
|
|
92
|
-
defineClassElement(
|
|
93
|
-
|
|
94
|
-
receiver
|
|
95
|
-
/* : C | Class<C> */
|
|
96
|
-
, element
|
|
97
|
-
/* : ElementDescriptor */
|
|
98
|
-
) {
|
|
99
|
-
var descriptor
|
|
100
|
-
/* : PropertyDescriptor */
|
|
101
|
-
= element.descriptor;
|
|
102
|
-
|
|
54
|
+
defineClassElement( /* ::<C>*/receiver /* : C | Class<C> */, element /* : ElementDescriptor */) {
|
|
55
|
+
var descriptor /* : PropertyDescriptor */ = element.descriptor;
|
|
103
56
|
if (element.kind === "field") {
|
|
104
57
|
var initializer = element.initializer;
|
|
105
58
|
descriptor = {
|
|
@@ -109,163 +62,86 @@ var _getDecoratorsApi = function () {
|
|
|
109
62
|
value: initializer === void 0 ? void 0 : initializer.call(receiver)
|
|
110
63
|
};
|
|
111
64
|
}
|
|
112
|
-
|
|
113
65
|
Object.defineProperty(receiver, element.key, descriptor);
|
|
114
66
|
},
|
|
115
|
-
|
|
116
67
|
// DecorateClass
|
|
117
|
-
decorateClass(elements
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
)
|
|
122
|
-
/* : ElementsFinishers */
|
|
123
|
-
{
|
|
124
|
-
var newElements
|
|
125
|
-
/* : ElementDescriptor[] */
|
|
126
|
-
= [];
|
|
127
|
-
var finishers
|
|
128
|
-
/* : ClassFinisher[] */
|
|
129
|
-
= [];
|
|
130
|
-
var placements
|
|
131
|
-
/* : Placements */
|
|
132
|
-
= {
|
|
68
|
+
decorateClass(elements /* : ElementDescriptor[] */, decorators /* : ClassDecorator[] */) /* : ElementsFinishers */{
|
|
69
|
+
var newElements /* : ElementDescriptor[] */ = [];
|
|
70
|
+
var finishers /* : ClassFinisher[] */ = [];
|
|
71
|
+
var placements /* : Placements */ = {
|
|
133
72
|
static: [],
|
|
134
73
|
prototype: [],
|
|
135
74
|
own: []
|
|
136
75
|
};
|
|
137
|
-
elements.forEach(function (element
|
|
138
|
-
/* : ElementDescriptor */
|
|
139
|
-
) {
|
|
76
|
+
elements.forEach(function (element /* : ElementDescriptor */) {
|
|
140
77
|
this.addElementPlacement(element, placements);
|
|
141
78
|
}, this);
|
|
142
|
-
elements.forEach(function (element
|
|
143
|
-
/* : ElementDescriptor */
|
|
144
|
-
) {
|
|
79
|
+
elements.forEach(function (element /* : ElementDescriptor */) {
|
|
145
80
|
if (!_hasDecorators(element)) return newElements.push(element);
|
|
146
|
-
var elementFinishersExtras
|
|
147
|
-
/* : ElementFinishersExtras */
|
|
148
|
-
= this.decorateElement(element, placements);
|
|
81
|
+
var elementFinishersExtras /* : ElementFinishersExtras */ = this.decorateElement(element, placements);
|
|
149
82
|
newElements.push(elementFinishersExtras.element);
|
|
150
83
|
newElements.push.apply(newElements, elementFinishersExtras.extras);
|
|
151
84
|
finishers.push.apply(finishers, elementFinishersExtras.finishers);
|
|
152
85
|
}, this);
|
|
153
|
-
|
|
154
86
|
if (!decorators) {
|
|
155
87
|
return {
|
|
156
88
|
elements: newElements,
|
|
157
89
|
finishers
|
|
158
90
|
};
|
|
159
91
|
}
|
|
160
|
-
|
|
161
|
-
var result
|
|
162
|
-
/* : ElementsFinishers */
|
|
163
|
-
= this.decorateConstructor(newElements, decorators);
|
|
92
|
+
var result /* : ElementsFinishers */ = this.decorateConstructor(newElements, decorators);
|
|
164
93
|
finishers.push.apply(finishers, result.finishers);
|
|
165
94
|
result.finishers = finishers;
|
|
166
95
|
return result;
|
|
167
96
|
},
|
|
168
|
-
|
|
169
97
|
// AddElementPlacement
|
|
170
|
-
addElementPlacement(element
|
|
171
|
-
/* : ElementDescriptor */
|
|
172
|
-
, placements
|
|
173
|
-
/* : Placements */
|
|
174
|
-
, silent
|
|
175
|
-
/* : boolean */
|
|
176
|
-
) {
|
|
98
|
+
addElementPlacement(element /* : ElementDescriptor */, placements /* : Placements */, silent /* : boolean */) {
|
|
177
99
|
var keys = placements[element.placement];
|
|
178
|
-
|
|
179
100
|
if (!silent && keys.indexOf(element.key) !== -1) {
|
|
180
101
|
throw new TypeError(`Duplicated element (${element.key})`);
|
|
181
102
|
}
|
|
182
|
-
|
|
183
103
|
keys.push(element.key);
|
|
184
104
|
},
|
|
185
|
-
|
|
186
105
|
// DecorateElement
|
|
187
|
-
decorateElement(element
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
/* : Placements */
|
|
191
|
-
)
|
|
192
|
-
/* : ElementFinishersExtras */
|
|
193
|
-
{
|
|
194
|
-
var extras
|
|
195
|
-
/* : ElementDescriptor[] */
|
|
196
|
-
= [];
|
|
197
|
-
var finishers
|
|
198
|
-
/* : ClassFinisher[] */
|
|
199
|
-
= [];
|
|
200
|
-
|
|
106
|
+
decorateElement(element /* : ElementDescriptor */, placements /* : Placements */) /* : ElementFinishersExtras */{
|
|
107
|
+
var extras /* : ElementDescriptor[] */ = [];
|
|
108
|
+
var finishers /* : ClassFinisher[] */ = [];
|
|
201
109
|
for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
|
|
202
110
|
// (inlined) RemoveElementPlacement
|
|
203
111
|
var keys = placements[element.placement];
|
|
204
112
|
keys.splice(keys.indexOf(element.key), 1);
|
|
205
|
-
var elementObject
|
|
206
|
-
/* :
|
|
207
|
-
= this.fromElementDescriptor(element);
|
|
208
|
-
var elementFinisherExtras
|
|
209
|
-
/* : ElementFinisherExtras */
|
|
210
|
-
= this.toElementFinisherExtras((0, decorators[i])(elementObject)
|
|
211
|
-
/* : ElementObjectOutput */
|
|
212
|
-
|| elementObject);
|
|
113
|
+
var elementObject /* : ElementObjectInput */ = this.fromElementDescriptor(element);
|
|
114
|
+
var elementFinisherExtras /* : ElementFinisherExtras */ = this.toElementFinisherExtras((0, decorators[i])(elementObject) /* : ElementObjectOutput */ || elementObject);
|
|
213
115
|
element = elementFinisherExtras.element;
|
|
214
116
|
this.addElementPlacement(element, placements);
|
|
215
|
-
|
|
216
117
|
if (elementFinisherExtras.finisher) {
|
|
217
118
|
finishers.push(elementFinisherExtras.finisher);
|
|
218
119
|
}
|
|
219
|
-
|
|
220
|
-
var newExtras
|
|
221
|
-
/* : ElementDescriptor[] | void */
|
|
222
|
-
= elementFinisherExtras.extras;
|
|
223
|
-
|
|
120
|
+
var newExtras /* : ElementDescriptor[] | void */ = elementFinisherExtras.extras;
|
|
224
121
|
if (newExtras) {
|
|
225
122
|
for (var j = 0; j < newExtras.length; j++) {
|
|
226
123
|
this.addElementPlacement(newExtras[j], placements);
|
|
227
124
|
}
|
|
228
|
-
|
|
229
125
|
extras.push.apply(extras, newExtras);
|
|
230
126
|
}
|
|
231
127
|
}
|
|
232
|
-
|
|
233
128
|
return {
|
|
234
129
|
element,
|
|
235
130
|
finishers,
|
|
236
131
|
extras
|
|
237
132
|
};
|
|
238
133
|
},
|
|
239
|
-
|
|
240
134
|
// DecorateConstructor
|
|
241
|
-
decorateConstructor(elements
|
|
242
|
-
|
|
243
|
-
, decorators
|
|
244
|
-
/* : ClassDecorator[] */
|
|
245
|
-
)
|
|
246
|
-
/* : ElementsFinishers */
|
|
247
|
-
{
|
|
248
|
-
var finishers
|
|
249
|
-
/* : ClassFinisher[] */
|
|
250
|
-
= [];
|
|
251
|
-
|
|
135
|
+
decorateConstructor(elements /* : ElementDescriptor[] */, decorators /* : ClassDecorator[] */) /* : ElementsFinishers */{
|
|
136
|
+
var finishers /* : ClassFinisher[] */ = [];
|
|
252
137
|
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
253
|
-
var obj
|
|
254
|
-
/* : ClassObject */
|
|
255
|
-
= this.fromClassDescriptor(elements);
|
|
256
|
-
var elementsAndFinisher
|
|
257
|
-
/* : ElementsFinisher */
|
|
258
|
-
= this.toClassDescriptor((0, decorators[i])(obj)
|
|
259
|
-
/* : ClassObject */
|
|
260
|
-
|| obj);
|
|
261
|
-
|
|
138
|
+
var obj /* : ClassObject */ = this.fromClassDescriptor(elements);
|
|
139
|
+
var elementsAndFinisher /* : ElementsFinisher */ = this.toClassDescriptor((0, decorators[i])(obj) /* : ClassObject */ || obj);
|
|
262
140
|
if (elementsAndFinisher.finisher !== undefined) {
|
|
263
141
|
finishers.push(elementsAndFinisher.finisher);
|
|
264
142
|
}
|
|
265
|
-
|
|
266
143
|
if (elementsAndFinisher.elements !== undefined) {
|
|
267
144
|
elements = elementsAndFinisher.elements;
|
|
268
|
-
|
|
269
145
|
for (var j = 0; j < elements.length - 1; j++) {
|
|
270
146
|
for (var k = j + 1; k < elements.length; k++) {
|
|
271
147
|
if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
|
|
@@ -275,22 +151,14 @@ var _getDecoratorsApi = function () {
|
|
|
275
151
|
}
|
|
276
152
|
}
|
|
277
153
|
}
|
|
278
|
-
|
|
279
154
|
return {
|
|
280
155
|
elements,
|
|
281
156
|
finishers
|
|
282
157
|
};
|
|
283
158
|
},
|
|
284
|
-
|
|
285
159
|
// FromElementDescriptor
|
|
286
|
-
fromElementDescriptor(element
|
|
287
|
-
|
|
288
|
-
)
|
|
289
|
-
/* : ElementObject */
|
|
290
|
-
{
|
|
291
|
-
var obj
|
|
292
|
-
/* : ElementObject */
|
|
293
|
-
= {
|
|
160
|
+
fromElementDescriptor(element /* : ElementDescriptor */) /* : ElementObject */{
|
|
161
|
+
var obj /* : ElementObject */ = {
|
|
294
162
|
kind: element.kind,
|
|
295
163
|
key: element.key,
|
|
296
164
|
placement: element.placement,
|
|
@@ -304,13 +172,8 @@ var _getDecoratorsApi = function () {
|
|
|
304
172
|
if (element.kind === "field") obj.initializer = element.initializer;
|
|
305
173
|
return obj;
|
|
306
174
|
},
|
|
307
|
-
|
|
308
175
|
// ToElementDescriptors
|
|
309
|
-
toElementDescriptors(elementObjects
|
|
310
|
-
/* : ElementObject[] */
|
|
311
|
-
)
|
|
312
|
-
/* : ElementDescriptor[] */
|
|
313
|
-
{
|
|
176
|
+
toElementDescriptors(elementObjects /* : ElementObject[] */) /* : ElementDescriptor[] */{
|
|
314
177
|
if (elementObjects === undefined) return;
|
|
315
178
|
return toArray(elementObjects).map(function (elementObject) {
|
|
316
179
|
var element = this.toElementDescriptor(elementObject);
|
|
@@ -319,39 +182,25 @@ var _getDecoratorsApi = function () {
|
|
|
319
182
|
return element;
|
|
320
183
|
}, this);
|
|
321
184
|
},
|
|
322
|
-
|
|
323
185
|
// ToElementDescriptor
|
|
324
|
-
toElementDescriptor(elementObject
|
|
325
|
-
/* : ElementObject */
|
|
326
|
-
)
|
|
327
|
-
/* : ElementDescriptor */
|
|
328
|
-
{
|
|
186
|
+
toElementDescriptor(elementObject /* : ElementObject */) /* : ElementDescriptor */{
|
|
329
187
|
var kind = String(elementObject.kind);
|
|
330
|
-
|
|
331
188
|
if (kind !== "method" && kind !== "field") {
|
|
332
189
|
throw new TypeError(`${'An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "'}${kind}"`);
|
|
333
190
|
}
|
|
334
|
-
|
|
335
191
|
var key = toPropertyKey(elementObject.key);
|
|
336
192
|
var placement = String(elementObject.placement);
|
|
337
|
-
|
|
338
193
|
if (placement !== "static" && placement !== "prototype" && placement !== "own") {
|
|
339
194
|
throw new TypeError(`${'An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "'}${placement}"`);
|
|
340
195
|
}
|
|
341
|
-
|
|
342
|
-
var descriptor
|
|
343
|
-
/* : PropertyDescriptor */
|
|
344
|
-
= elementObject.descriptor;
|
|
196
|
+
var descriptor /* : PropertyDescriptor */ = elementObject.descriptor;
|
|
345
197
|
this.disallowProperty(elementObject, "elements", "An element descriptor");
|
|
346
|
-
var element
|
|
347
|
-
/* : ElementDescriptor */
|
|
348
|
-
= {
|
|
198
|
+
var element /* : ElementDescriptor */ = {
|
|
349
199
|
kind,
|
|
350
200
|
key,
|
|
351
201
|
placement,
|
|
352
202
|
descriptor: Object.assign({}, descriptor)
|
|
353
203
|
};
|
|
354
|
-
|
|
355
204
|
if (kind !== "field") {
|
|
356
205
|
this.disallowProperty(elementObject, "initializer", "A method descriptor");
|
|
357
206
|
} else {
|
|
@@ -360,39 +209,20 @@ var _getDecoratorsApi = function () {
|
|
|
360
209
|
this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
|
|
361
210
|
element.initializer = elementObject.initializer;
|
|
362
211
|
}
|
|
363
|
-
|
|
364
212
|
return element;
|
|
365
213
|
},
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
/* : ElementFinisherExtras */
|
|
371
|
-
{
|
|
372
|
-
var element
|
|
373
|
-
/* : ElementDescriptor */
|
|
374
|
-
= this.toElementDescriptor(elementObject);
|
|
375
|
-
|
|
376
|
-
var finisher
|
|
377
|
-
/* : ClassFinisher */
|
|
378
|
-
= _optionalCallableProperty(elementObject, "finisher");
|
|
379
|
-
|
|
380
|
-
var extras
|
|
381
|
-
/* : ElementDescriptors[] */
|
|
382
|
-
= this.toElementDescriptors(elementObject.extras);
|
|
214
|
+
toElementFinisherExtras(elementObject /* : ElementObject */) /* : ElementFinisherExtras */{
|
|
215
|
+
var element /* : ElementDescriptor */ = this.toElementDescriptor(elementObject);
|
|
216
|
+
var finisher /* : ClassFinisher */ = _optionalCallableProperty(elementObject, "finisher");
|
|
217
|
+
var extras /* : ElementDescriptors[] */ = this.toElementDescriptors(elementObject.extras);
|
|
383
218
|
return {
|
|
384
219
|
element,
|
|
385
220
|
finisher,
|
|
386
221
|
extras
|
|
387
222
|
};
|
|
388
223
|
},
|
|
389
|
-
|
|
390
224
|
// FromClassDescriptor
|
|
391
|
-
fromClassDescriptor(elements
|
|
392
|
-
/* : ElementDescriptor[] */
|
|
393
|
-
)
|
|
394
|
-
/* : ClassObject */
|
|
395
|
-
{
|
|
225
|
+
fromClassDescriptor(elements /* : ElementDescriptor[] */) /* : ClassObject */{
|
|
396
226
|
var obj = {
|
|
397
227
|
kind: "class",
|
|
398
228
|
elements: elements.map(this.fromElementDescriptor, this)
|
|
@@ -404,85 +234,54 @@ var _getDecoratorsApi = function () {
|
|
|
404
234
|
Object.defineProperty(obj, Symbol.toStringTag, desc);
|
|
405
235
|
return obj;
|
|
406
236
|
},
|
|
407
|
-
|
|
408
237
|
// ToClassDescriptor
|
|
409
|
-
toClassDescriptor(obj
|
|
410
|
-
/* : ClassObject */
|
|
411
|
-
)
|
|
412
|
-
/* : ElementsFinisher */
|
|
413
|
-
{
|
|
238
|
+
toClassDescriptor(obj /* : ClassObject */) /* : ElementsFinisher */{
|
|
414
239
|
var kind = String(obj.kind);
|
|
415
|
-
|
|
416
240
|
if (kind !== "class") {
|
|
417
241
|
throw new TypeError(`${'A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "'}${kind}"`);
|
|
418
242
|
}
|
|
419
|
-
|
|
420
243
|
this.disallowProperty(obj, "key", "A class descriptor");
|
|
421
244
|
this.disallowProperty(obj, "placement", "A class descriptor");
|
|
422
245
|
this.disallowProperty(obj, "descriptor", "A class descriptor");
|
|
423
246
|
this.disallowProperty(obj, "initializer", "A class descriptor");
|
|
424
247
|
this.disallowProperty(obj, "extras", "A class descriptor");
|
|
425
|
-
|
|
426
248
|
var finisher = _optionalCallableProperty(obj, "finisher");
|
|
427
|
-
|
|
428
249
|
var elements = this.toElementDescriptors(obj.elements);
|
|
429
250
|
return {
|
|
430
251
|
elements,
|
|
431
252
|
finisher
|
|
432
253
|
};
|
|
433
254
|
},
|
|
434
|
-
|
|
435
255
|
// RunClassFinishers
|
|
436
|
-
runClassFinishers(constructor
|
|
437
|
-
/* : Class<*> */
|
|
438
|
-
, finishers
|
|
439
|
-
/* : ClassFinisher[] */
|
|
440
|
-
)
|
|
441
|
-
/* : Class<*> */
|
|
442
|
-
{
|
|
256
|
+
runClassFinishers(constructor /* : Class<*> */, finishers /* : ClassFinisher[] */) /* : Class<*> */{
|
|
443
257
|
for (var i = 0; i < finishers.length; i++) {
|
|
444
|
-
var newConstructor
|
|
445
|
-
/* : ?Class<*> */
|
|
446
|
-
= (0, finishers[i])(constructor);
|
|
447
|
-
|
|
258
|
+
var newConstructor /* : ?Class<*> */ = (0, finishers[i])(constructor);
|
|
448
259
|
if (newConstructor !== undefined) {
|
|
449
260
|
// NOTE: This should check if IsConstructor(newConstructor) is false.
|
|
450
261
|
if (typeof newConstructor !== "function") {
|
|
451
262
|
throw new TypeError("Finishers must return a constructor.");
|
|
452
263
|
}
|
|
453
|
-
|
|
454
264
|
constructor = newConstructor;
|
|
455
265
|
}
|
|
456
266
|
}
|
|
457
|
-
|
|
458
267
|
return constructor;
|
|
459
268
|
},
|
|
460
|
-
|
|
461
269
|
disallowProperty(obj, name, objectType) {
|
|
462
270
|
if (obj[name] !== undefined) {
|
|
463
271
|
throw new TypeError(`${objectType} can't have a .${name} property.`);
|
|
464
272
|
}
|
|
465
273
|
}
|
|
466
|
-
|
|
467
274
|
};
|
|
468
|
-
|
|
469
275
|
_getDecoratorsApi = function () {
|
|
470
276
|
return api;
|
|
471
277
|
};
|
|
472
|
-
|
|
473
278
|
return api;
|
|
474
|
-
};
|
|
475
|
-
|
|
279
|
+
};
|
|
476
280
|
|
|
477
|
-
|
|
478
|
-
/* : ElementDefinition */
|
|
479
|
-
)
|
|
480
|
-
/* : ElementDescriptor */
|
|
481
|
-
{
|
|
281
|
+
// ClassElementEvaluation
|
|
282
|
+
function _createElementDescriptor(def /* : ElementDefinition */) /* : ElementDescriptor */{
|
|
482
283
|
var key = toPropertyKey(def.key);
|
|
483
|
-
var descriptor;
|
|
484
|
-
/* : PropertyDescriptor */
|
|
485
|
-
|
|
284
|
+
var descriptor; /* : PropertyDescriptor */
|
|
486
285
|
if (def.kind === "method") {
|
|
487
286
|
descriptor = {
|
|
488
287
|
value: def.value,
|
|
@@ -509,10 +308,7 @@ function _createElementDescriptor(def
|
|
|
509
308
|
enumerable: true
|
|
510
309
|
};
|
|
511
310
|
}
|
|
512
|
-
|
|
513
|
-
var element
|
|
514
|
-
/* : ElementDescriptor */
|
|
515
|
-
= {
|
|
311
|
+
var element /* : ElementDescriptor */ = {
|
|
516
312
|
kind: def.kind === "field" ? "field" : "method",
|
|
517
313
|
key,
|
|
518
314
|
placement: def.static ? "static" : def.kind === "field" ? "own" : "prototype",
|
|
@@ -521,102 +317,55 @@ function _createElementDescriptor(def
|
|
|
521
317
|
if (def.decorators) element.decorators = def.decorators;
|
|
522
318
|
if (def.kind === "field") element.initializer = def.value;
|
|
523
319
|
return element;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
function _coalesceGetterSetter(element
|
|
528
|
-
/* : ElementDescriptor */
|
|
529
|
-
, other
|
|
530
|
-
/* : ElementDescriptor */
|
|
531
|
-
) {
|
|
320
|
+
}
|
|
321
|
+
// CoalesceGetterSetter
|
|
322
|
+
function _coalesceGetterSetter(element /* : ElementDescriptor */, other /* : ElementDescriptor */) {
|
|
532
323
|
if (element.descriptor.get !== undefined) {
|
|
533
324
|
other.descriptor.get = element.descriptor.get;
|
|
534
325
|
} else {
|
|
535
326
|
other.descriptor.set = element.descriptor.set;
|
|
536
327
|
}
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
/* : ElementDescriptor
|
|
542
|
-
)
|
|
543
|
-
/* : ElementDescriptor[] */
|
|
544
|
-
{
|
|
545
|
-
var newElements
|
|
546
|
-
/* : ElementDescriptor[] */
|
|
547
|
-
= [];
|
|
548
|
-
|
|
549
|
-
var isSameElement = function (other
|
|
550
|
-
/* : ElementDescriptor */
|
|
551
|
-
)
|
|
552
|
-
/* : boolean */
|
|
553
|
-
{
|
|
328
|
+
}
|
|
329
|
+
// CoalesceClassElements
|
|
330
|
+
function _coalesceClassElements(elements /* : ElementDescriptor[] */) /* : ElementDescriptor[] */{
|
|
331
|
+
var newElements /* : ElementDescriptor[] */ = [];
|
|
332
|
+
var isSameElement = function (other /* : ElementDescriptor */) /* : boolean */{
|
|
554
333
|
return other.kind === "method" && other.key === element.key && other.placement === element.placement;
|
|
555
334
|
};
|
|
556
|
-
|
|
557
335
|
for (var i = 0; i < elements.length; i++) {
|
|
558
|
-
var element
|
|
559
|
-
/* : ElementDescriptor */
|
|
560
|
-
= elements[i];
|
|
561
|
-
var other;
|
|
562
|
-
/* : ElementDescriptor */
|
|
563
|
-
|
|
336
|
+
var element /* : ElementDescriptor */ = elements[i];
|
|
337
|
+
var other; /* : ElementDescriptor */
|
|
564
338
|
if (element.kind === "method" && (other = newElements.find(isSameElement))) {
|
|
565
339
|
if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
|
|
566
340
|
if (_hasDecorators(element) || _hasDecorators(other)) {
|
|
567
341
|
throw new ReferenceError(`Duplicated methods (${element.key}) can't be decorated.`);
|
|
568
342
|
}
|
|
569
|
-
|
|
570
343
|
other.descriptor = element.descriptor;
|
|
571
344
|
} else {
|
|
572
345
|
if (_hasDecorators(element)) {
|
|
573
346
|
if (_hasDecorators(other)) {
|
|
574
347
|
throw new ReferenceError(`${"Decorators can't be placed on different accessors with for " + "the same property ("}${element.key}).`);
|
|
575
348
|
}
|
|
576
|
-
|
|
577
349
|
other.decorators = element.decorators;
|
|
578
350
|
}
|
|
579
|
-
|
|
580
351
|
_coalesceGetterSetter(element, other);
|
|
581
352
|
}
|
|
582
353
|
} else {
|
|
583
354
|
newElements.push(element);
|
|
584
355
|
}
|
|
585
356
|
}
|
|
586
|
-
|
|
587
357
|
return newElements;
|
|
588
358
|
}
|
|
589
|
-
|
|
590
|
-
function _hasDecorators(element
|
|
591
|
-
/* : ElementDescriptor */
|
|
592
|
-
)
|
|
593
|
-
/* : boolean */
|
|
594
|
-
{
|
|
359
|
+
function _hasDecorators(element /* : ElementDescriptor */) /* : boolean */{
|
|
595
360
|
return element.decorators && element.decorators.length;
|
|
596
361
|
}
|
|
597
|
-
|
|
598
|
-
function _isDataDescriptor(desc
|
|
599
|
-
/* : PropertyDescriptor */
|
|
600
|
-
)
|
|
601
|
-
/* : boolean */
|
|
602
|
-
{
|
|
362
|
+
function _isDataDescriptor(desc /* : PropertyDescriptor */) /* : boolean */{
|
|
603
363
|
return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
|
|
604
364
|
}
|
|
605
|
-
|
|
606
|
-
function _optionalCallableProperty
|
|
607
|
-
/* ::<T>*/
|
|
608
|
-
(obj
|
|
609
|
-
/* : T */
|
|
610
|
-
, name
|
|
611
|
-
/* : $Keys<T> */
|
|
612
|
-
)
|
|
613
|
-
/* : ?Function */
|
|
614
|
-
{
|
|
365
|
+
function _optionalCallableProperty /* ::<T>*/(obj /* : T */, name /* : $Keys<T> */) /* : ?Function */{
|
|
615
366
|
var value = obj[name];
|
|
616
|
-
|
|
617
367
|
if (value !== undefined && typeof value !== "function") {
|
|
618
368
|
throw new TypeError(`Expected '${name}' to be a function`);
|
|
619
369
|
}
|
|
620
|
-
|
|
621
370
|
return value;
|
|
622
371
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
export default function (obj, defaults) {
|
|
2
2
|
var keys = Object.getOwnPropertyNames(defaults);
|
|
3
|
-
|
|
4
3
|
for (var i = 0; i < keys.length; i++) {
|
|
5
4
|
var key = keys[i];
|
|
6
5
|
var value = Object.getOwnPropertyDescriptor(defaults, key);
|
|
7
|
-
|
|
8
6
|
if (value && value.configurable && obj[key] === undefined) {
|
|
9
7
|
Object.defineProperty(obj, key, value);
|
|
10
8
|
}
|
|
11
9
|
}
|
|
12
|
-
|
|
13
10
|
return obj;
|
|
14
11
|
}
|
|
@@ -5,14 +5,12 @@ export default function (obj, descs) {
|
|
|
5
5
|
desc.configurable = desc.enumerable = true;
|
|
6
6
|
if ("value" in desc) desc.writable = true;
|
|
7
7
|
Object.defineProperty(obj, key, desc);
|
|
8
|
-
}
|
|
8
|
+
}
|
|
9
|
+
// Symbols are not enumerated over by for-in loops. If native
|
|
9
10
|
// Symbols are available, fetch all of the descs object's own
|
|
10
11
|
// symbol properties and define them on our target object too.
|
|
11
|
-
|
|
12
|
-
|
|
13
12
|
if (Object.getOwnPropertySymbols) {
|
|
14
13
|
var objectSymbols = Object.getOwnPropertySymbols(descs);
|
|
15
|
-
|
|
16
14
|
for (var i = 0; i < objectSymbols.length; i++) {
|
|
17
15
|
var sym = objectSymbols[i];
|
|
18
16
|
var symbDesc = descs[sym];
|
|
@@ -21,6 +19,5 @@ export default function (obj, descs) {
|
|
|
21
19
|
Object.defineProperty(obj, sym, symbDesc);
|
|
22
20
|
}
|
|
23
21
|
}
|
|
24
|
-
|
|
25
22
|
return obj;
|
|
26
23
|
}
|