@jsenv/core 38.3.11 → 38.4.0

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.
Files changed (118) hide show
  1. package/README.md +17 -18
  2. package/dist/babel_helpers/AsyncGenerator/AsyncGenerator.js +3 -3
  3. package/dist/babel_helpers/AwaitValue/AwaitValue.js +2 -2
  4. package/dist/babel_helpers/{overloadYield/overloadYield.js → OverloadYield/OverloadYield.js} +1 -1
  5. package/dist/babel_helpers/applyDecoratedDescriptor/applyDecoratedDescriptor.js +23 -14
  6. package/dist/babel_helpers/applyDecs/applyDecs.js +32 -21
  7. package/dist/babel_helpers/applyDecs2203/applyDecs2203.js +549 -549
  8. package/dist/babel_helpers/applyDecs2203R/applyDecs2203R.js +27 -15
  9. package/dist/babel_helpers/applyDecs2301/applyDecs2301.js +29 -18
  10. package/dist/babel_helpers/applyDecs2305/applyDecs2305.js +362 -541
  11. package/dist/babel_helpers/arrayLikeToArray/arrayLikeToArray.js +4 -4
  12. package/dist/babel_helpers/arrayWithHoles/arrayWithHoles.js +2 -2
  13. package/dist/babel_helpers/arrayWithoutHoles/arrayWithoutHoles.js +3 -3
  14. package/dist/babel_helpers/assertThisInitialized/assertThisInitialized.js +5 -3
  15. package/dist/babel_helpers/asyncGeneratorDelegate/asyncGeneratorDelegate.js +2 -2
  16. package/dist/babel_helpers/asyncIterator/asyncIterator.js +1 -1
  17. package/dist/babel_helpers/asyncToGenerator/asyncToGenerator.js +17 -17
  18. package/dist/babel_helpers/awaitAsyncGenerator/awaitAsyncGenerator.js +2 -2
  19. package/dist/babel_helpers/callSuper/callSuper.js +25 -0
  20. package/dist/babel_helpers/checkInRHS/checkInRHS.js +10 -8
  21. package/dist/babel_helpers/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +9 -6
  22. package/dist/babel_helpers/classApplyDescriptorGet/classApplyDescriptorGet.js +2 -2
  23. package/dist/babel_helpers/classApplyDescriptorSet/classApplyDescriptorSet.js +3 -3
  24. package/dist/babel_helpers/classCallCheck/classCallCheck.js +1 -1
  25. package/dist/babel_helpers/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +5 -2
  26. package/dist/babel_helpers/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +7 -2
  27. package/dist/babel_helpers/classExtractFieldDescriptor/classExtractFieldDescriptor.js +9 -3
  28. package/dist/babel_helpers/classNameTDZError/classNameTDZError.js +3 -1
  29. package/dist/babel_helpers/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +4 -4
  30. package/dist/babel_helpers/classPrivateFieldGet/classPrivateFieldGet.js +4 -4
  31. package/dist/babel_helpers/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +2 -2
  32. package/dist/babel_helpers/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +2 -2
  33. package/dist/babel_helpers/classPrivateFieldSet/classPrivateFieldSet.js +5 -5
  34. package/dist/babel_helpers/classPrivateMethodGet/classPrivateMethodGet.js +2 -2
  35. package/dist/babel_helpers/classPrivateMethodSet/classPrivateMethodSet.js +1 -1
  36. package/dist/babel_helpers/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +11 -7
  37. package/dist/babel_helpers/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +7 -7
  38. package/dist/babel_helpers/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +8 -4
  39. package/dist/babel_helpers/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +1 -1
  40. package/dist/babel_helpers/construct/construct.js +18 -14
  41. package/dist/babel_helpers/createClass/createClass.js +1 -1
  42. package/dist/babel_helpers/createForOfIteratorHelper/createForOfIteratorHelper.js +21 -20
  43. package/dist/babel_helpers/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +10 -9
  44. package/dist/babel_helpers/createRawReactElement/createRawReactElement.js +11 -11
  45. package/dist/babel_helpers/createSuper/createSuper.js +11 -11
  46. package/dist/babel_helpers/decorate/decorate.js +255 -170
  47. package/dist/babel_helpers/defaults/defaults.js +5 -5
  48. package/dist/babel_helpers/defineAccessor/defineAccessor.js +1 -1
  49. package/dist/babel_helpers/defineEnumerableProperties/defineEnumerableProperties.js +11 -11
  50. package/dist/babel_helpers/defineProperty/defineProperty.js +4 -4
  51. package/dist/babel_helpers/dispose/dispose.js +39 -39
  52. package/dist/babel_helpers/extends/extends.js +4 -4
  53. package/dist/babel_helpers/get/get.js +2 -2
  54. package/dist/babel_helpers/getPrototypeOf/getPrototypeOf.js +1 -1
  55. package/dist/babel_helpers/identity/identity.js +1 -1
  56. package/dist/babel_helpers/importDeferProxy/importDeferProxy.js +27 -27
  57. package/dist/babel_helpers/inherits/inherits.js +4 -4
  58. package/dist/babel_helpers/inheritsLoose/inheritsLoose.js +4 -4
  59. package/dist/babel_helpers/initializerDefineProperty/initializerDefineProperty.js +5 -3
  60. package/dist/babel_helpers/initializerWarningHelper/initializerWarningHelper.js +1 -1
  61. package/dist/babel_helpers/instanceof/instanceof.js +7 -3
  62. package/dist/babel_helpers/interopRequireDefault/interopRequireDefault.js +1 -1
  63. package/dist/babel_helpers/interopRequireWildcard/interopRequireWildcard.js +3 -1
  64. package/dist/babel_helpers/isNativeFunction/isNativeFunction.js +1 -1
  65. package/dist/babel_helpers/isNativeReflectConstruct/isNativeReflectConstruct.js +12 -14
  66. package/dist/babel_helpers/iterableToArray/iterableToArray.js +1 -1
  67. package/dist/babel_helpers/iterableToArrayLimit/iterableToArrayLimit.js +1 -1
  68. package/dist/babel_helpers/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +1 -1
  69. package/dist/babel_helpers/jsx/jsx.js +1 -1
  70. package/dist/babel_helpers/maybeArrayLike/maybeArrayLike.js +4 -4
  71. package/dist/babel_helpers/newArrowCheck/newArrowCheck.js +1 -1
  72. package/dist/babel_helpers/nonIterableRest/nonIterableRest.js +2 -2
  73. package/dist/babel_helpers/nonIterableSpread/nonIterableSpread.js +2 -2
  74. package/dist/babel_helpers/nullishReceiverError/nullishReceiverError.js +1 -1
  75. package/dist/babel_helpers/objectDestructuringEmpty/objectDestructuringEmpty.js +1 -1
  76. package/dist/babel_helpers/objectSpread/objectSpread.js +8 -8
  77. package/dist/babel_helpers/objectSpread2/objectSpread2.js +5 -3
  78. package/dist/babel_helpers/objectWithoutProperties/objectWithoutProperties.js +12 -12
  79. package/dist/babel_helpers/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +10 -10
  80. package/dist/babel_helpers/possibleConstructorReturn/possibleConstructorReturn.js +7 -5
  81. package/dist/babel_helpers/readOnlyError/readOnlyError.js +1 -1
  82. package/dist/babel_helpers/regeneratorRuntime/regeneratorRuntime.js +1 -1
  83. package/dist/babel_helpers/set/set.js +22 -19
  84. package/dist/babel_helpers/setFunctionName/setFunctionName.js +18 -0
  85. package/dist/babel_helpers/setPrototypeOf/setPrototypeOf.js +7 -6
  86. package/dist/babel_helpers/skipFirstGeneratorNext/skipFirstGeneratorNext.js +4 -4
  87. package/dist/babel_helpers/slicedToArray/slicedToArray.js +5 -5
  88. package/dist/babel_helpers/slicedToArrayLoose/slicedToArrayLoose.js +5 -5
  89. package/dist/babel_helpers/superPropBase/superPropBase.js +4 -4
  90. package/dist/babel_helpers/taggedTemplateLiteral/taggedTemplateLiteral.js +2 -2
  91. package/dist/babel_helpers/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +3 -3
  92. package/dist/babel_helpers/tdz/tdz.js +1 -1
  93. package/dist/babel_helpers/temporalRef/temporalRef.js +3 -3
  94. package/dist/babel_helpers/toArray/toArray.js +5 -5
  95. package/dist/babel_helpers/toConsumableArray/toConsumableArray.js +5 -5
  96. package/dist/babel_helpers/toPrimitive/toPrimitive.js +11 -7
  97. package/dist/babel_helpers/toPropertyKey/toPropertyKey.js +8 -4
  98. package/dist/babel_helpers/typeof/typeof.js +6 -5
  99. package/dist/babel_helpers/unsupportedIterableToArray/unsupportedIterableToArray.js +7 -7
  100. package/dist/babel_helpers/using/using.js +20 -20
  101. package/dist/babel_helpers/wrapAsyncGenerator/wrapAsyncGenerator.js +3 -3
  102. package/dist/babel_helpers/wrapNativeSuper/wrapNativeSuper.js +12 -12
  103. package/dist/babel_helpers/wrapRegExp/wrapRegExp.js +5 -3
  104. package/dist/babel_helpers/writeOnlyError/writeOnlyError.js +1 -1
  105. package/dist/js/ribbon.js +1 -1
  106. package/dist/js/ws.js +234 -146
  107. package/dist/jsenv_core.js +1365 -1211
  108. package/package.json +26 -22
  109. package/src/build/build.js +22 -14
  110. package/src/dev/start_dev_server.js +8 -21
  111. package/src/kitchen/errors.js +29 -24
  112. package/src/kitchen/kitchen.js +1 -1
  113. package/src/kitchen/url_graph/references.js +8 -0
  114. package/src/kitchen/url_graph/url_graph_report.js +5 -3
  115. package/src/plugins/plugins.js +2 -2
  116. package/src/plugins/protocol_file/jsenv_plugin_protocol_file.js +17 -7
  117. package/src/plugins/reference_analysis/js/jsenv_plugin_js_reference_analysis.js +10 -12
  118. package/src/plugins/ribbon/client/ribbon.js +1 -1
@@ -5,8 +5,8 @@
5
5
  /* eslint-disable prefer-spread */
6
6
  /* eslint-disable no-void */
7
7
  /* eslint-disable no-sequences */
8
- import toArray from "../toArray/toArray.js"
9
- import toPropertyKey from "../toPropertyKey/toPropertyKey.js"
8
+ import toArray from "../toArray/toArray.js";
9
+ import toPropertyKey from "../toPropertyKey/toPropertyKey.js";
10
10
 
11
11
  // ClassDefinitionEvaluation (Steps 26-*)
12
12
  export default function _decorate(
@@ -15,98 +15,108 @@ export default function _decorate(
15
15
  superClass /* : ?Class<*> */,
16
16
  mixins /* : ?Array<Function> */,
17
17
  ) /* : Class<*> */ {
18
- var api = _getDecoratorsApi()
18
+ var api = _getDecoratorsApi();
19
19
  if (mixins) {
20
20
  for (var i = 0; i < mixins.length; i++) {
21
- api = mixins[i](api)
21
+ api = mixins[i](api);
22
22
  }
23
23
  }
24
24
  var r = factory(function initialize(O) {
25
- api.initializeInstanceElements(O, decorated.elements)
26
- }, superClass)
25
+ api.initializeInstanceElements(O, decorated.elements);
26
+ }, superClass);
27
27
  var decorated = api.decorateClass(
28
28
  _coalesceClassElements(r.d.map(_createElementDescriptor)),
29
29
  decorators,
30
- )
31
- api.initializeClassElements(r.F, decorated.elements)
32
- return api.runClassFinishers(r.F, decorated.finishers)
30
+ );
31
+ api.initializeClassElements(r.F, decorated.elements);
32
+ return api.runClassFinishers(r.F, decorated.finishers);
33
33
  }
34
34
 
35
35
  var _getDecoratorsApi = function () {
36
36
  var api = {
37
37
  elementsDefinitionOrder: [["method"], ["field"]],
38
38
  // InitializeInstanceElements
39
- initializeInstanceElements(/* ::<C>*/ O /* : C */, elements /* : ElementDescriptor[] */) {
40
- ;["method", "field"].forEach(function (kind) {
39
+ initializeInstanceElements(
40
+ /* ::<C>*/ O /* : C */,
41
+ elements /* : ElementDescriptor[] */,
42
+ ) {
43
+ ["method", "field"].forEach(function (kind) {
41
44
  elements.forEach(function (element /* : ElementDescriptor */) {
42
45
  if (element.kind === kind && element.placement === "own") {
43
- this.defineClassElement(O, element)
46
+ this.defineClassElement(O, element);
44
47
  }
45
- }, this)
46
- }, this)
48
+ }, this);
49
+ }, this);
47
50
  },
48
51
  // InitializeClassElements
49
- initializeClassElements(/* ::<C>*/ F /* : Class<C> */, elements /* : ElementDescriptor[] */) {
50
- var proto = F.prototype
51
- ;["method", "field"].forEach(function (kind) {
52
+ initializeClassElements(
53
+ /* ::<C>*/ F /* : Class<C> */,
54
+ elements /* : ElementDescriptor[] */,
55
+ ) {
56
+ var proto = F.prototype;
57
+ ["method", "field"].forEach(function (kind) {
52
58
  elements.forEach(function (element /* : ElementDescriptor */) {
53
- var placement = element.placement
54
- if (element.kind === kind && (placement === "static" || placement === "prototype")) {
55
- var receiver = placement === "static" ? F : proto
56
- this.defineClassElement(receiver, element)
59
+ var placement = element.placement;
60
+ if (
61
+ element.kind === kind &&
62
+ (placement === "static" || placement === "prototype")
63
+ ) {
64
+ var receiver = placement === "static" ? F : proto;
65
+ this.defineClassElement(receiver, element);
57
66
  }
58
- }, this)
59
- }, this)
67
+ }, this);
68
+ }, this);
60
69
  },
61
70
  // DefineClassElement
62
71
  defineClassElement(
63
72
  /* ::<C>*/ receiver /* : C | Class<C> */,
64
73
  element /* : ElementDescriptor */,
65
74
  ) {
66
- var descriptor /* : PropertyDescriptor */ = element.descriptor
75
+ var descriptor /* : PropertyDescriptor */ = element.descriptor;
67
76
  if (element.kind === "field") {
68
- var initializer = element.initializer
77
+ var initializer = element.initializer;
69
78
  descriptor = {
70
79
  enumerable: descriptor.enumerable,
71
80
  writable: descriptor.writable,
72
81
  configurable: descriptor.configurable,
73
82
  value: initializer === void 0 ? void 0 : initializer.call(receiver),
74
- }
83
+ };
75
84
  }
76
- Object.defineProperty(receiver, element.key, descriptor)
85
+ Object.defineProperty(receiver, element.key, descriptor);
77
86
  },
78
87
  // DecorateClass
79
88
  decorateClass(
80
89
  elements /* : ElementDescriptor[] */,
81
90
  decorators /* : ClassDecorator[] */,
82
91
  ) /* : ElementsFinishers */ {
83
- var newElements /* : ElementDescriptor[] */ = []
84
- var finishers /* : ClassFinisher[] */ = []
92
+ var newElements /* : ElementDescriptor[] */ = [];
93
+ var finishers /* : ClassFinisher[] */ = [];
85
94
  var placements /* : Placements */ = {
86
95
  static: [],
87
96
  prototype: [],
88
97
  own: [],
89
- }
98
+ };
90
99
  elements.forEach(function (element /* : ElementDescriptor */) {
91
- this.addElementPlacement(element, placements)
92
- }, this)
100
+ this.addElementPlacement(element, placements);
101
+ }, this);
93
102
  elements.forEach(function (element /* : ElementDescriptor */) {
94
- if (!_hasDecorators(element)) return newElements.push(element)
95
- var elementFinishersExtras /* : ElementFinishersExtras */ = this.decorateElement(
96
- element,
97
- placements,
98
- )
99
- newElements.push(elementFinishersExtras.element)
100
- newElements.push.apply(newElements, elementFinishersExtras.extras)
101
- finishers.push.apply(finishers, elementFinishersExtras.finishers)
102
- }, this)
103
+ if (!_hasDecorators(element)) return newElements.push(element);
104
+ var elementFinishersExtras /* : ElementFinishersExtras */ =
105
+ this.decorateElement(element, placements);
106
+ newElements.push(elementFinishersExtras.element);
107
+ newElements.push.apply(newElements, elementFinishersExtras.extras);
108
+ finishers.push.apply(finishers, elementFinishersExtras.finishers);
109
+ }, this);
103
110
  if (!decorators) {
104
- return { elements: newElements, finishers }
111
+ return { elements: newElements, finishers };
105
112
  }
106
- var result /* : ElementsFinishers */ = this.decorateConstructor(newElements, decorators)
107
- finishers.push.apply(finishers, result.finishers)
108
- result.finishers = finishers
109
- return result
113
+ var result /* : ElementsFinishers */ = this.decorateConstructor(
114
+ newElements,
115
+ decorators,
116
+ );
117
+ finishers.push.apply(finishers, result.finishers);
118
+ result.finishers = finishers;
119
+ return result;
110
120
  },
111
121
  // AddElementPlacement
112
122
  addElementPlacement(
@@ -114,101 +124,120 @@ var _getDecoratorsApi = function () {
114
124
  placements /* : Placements */,
115
125
  silent /* : boolean */,
116
126
  ) {
117
- var keys = placements[element.placement]
127
+ var keys = placements[element.placement];
118
128
  if (!silent && keys.indexOf(element.key) !== -1) {
119
- throw new TypeError(`Duplicated element (${element.key})`)
129
+ throw new TypeError(`Duplicated element (${element.key})`);
120
130
  }
121
- keys.push(element.key)
131
+ keys.push(element.key);
122
132
  },
123
133
  // DecorateElement
124
134
  decorateElement(
125
135
  element /* : ElementDescriptor */,
126
136
  placements /* : Placements */,
127
137
  ) /* : ElementFinishersExtras */ {
128
- var extras /* : ElementDescriptor[] */ = []
129
- var finishers /* : ClassFinisher[] */ = []
130
- for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
138
+ var extras /* : ElementDescriptor[] */ = [];
139
+ var finishers /* : ClassFinisher[] */ = [];
140
+ for (
141
+ var decorators = element.decorators, i = decorators.length - 1;
142
+ i >= 0;
143
+ i--
144
+ ) {
131
145
  // (inlined) RemoveElementPlacement
132
- var keys = placements[element.placement]
133
- keys.splice(keys.indexOf(element.key), 1)
134
- var elementObject /* : ElementObjectInput */ = this.fromElementDescriptor(element)
135
- var elementFinisherExtras /* : ElementFinisherExtras */ = this.toElementFinisherExtras(
136
- (0, decorators[i])(elementObject) /* : ElementObjectOutput */ || elementObject,
137
- )
138
- element = elementFinisherExtras.element
139
- this.addElementPlacement(element, placements)
146
+ var keys = placements[element.placement];
147
+ keys.splice(keys.indexOf(element.key), 1);
148
+ var elementObject /* : ElementObjectInput */ =
149
+ this.fromElementDescriptor(element);
150
+ var elementFinisherExtras /* : ElementFinisherExtras */ =
151
+ this.toElementFinisherExtras(
152
+ (0, decorators[i])(elementObject) /* : ElementObjectOutput */ ||
153
+ elementObject,
154
+ );
155
+ element = elementFinisherExtras.element;
156
+ this.addElementPlacement(element, placements);
140
157
  if (elementFinisherExtras.finisher) {
141
- finishers.push(elementFinisherExtras.finisher)
158
+ finishers.push(elementFinisherExtras.finisher);
142
159
  }
143
- var newExtras /* : ElementDescriptor[] | void */ = elementFinisherExtras.extras
160
+ var newExtras /* : ElementDescriptor[] | void */ =
161
+ elementFinisherExtras.extras;
144
162
  if (newExtras) {
145
163
  for (var j = 0; j < newExtras.length; j++) {
146
- this.addElementPlacement(newExtras[j], placements)
164
+ this.addElementPlacement(newExtras[j], placements);
147
165
  }
148
- extras.push.apply(extras, newExtras)
166
+ extras.push.apply(extras, newExtras);
149
167
  }
150
168
  }
151
- return { element, finishers, extras }
169
+ return { element, finishers, extras };
152
170
  },
153
171
  // DecorateConstructor
154
172
  decorateConstructor(
155
173
  elements /* : ElementDescriptor[] */,
156
174
  decorators /* : ClassDecorator[] */,
157
175
  ) /* : ElementsFinishers */ {
158
- var finishers /* : ClassFinisher[] */ = []
176
+ var finishers /* : ClassFinisher[] */ = [];
159
177
  for (var i = decorators.length - 1; i >= 0; i--) {
160
- var obj /* : ClassObject */ = this.fromClassDescriptor(elements)
161
- var elementsAndFinisher /* : ElementsFinisher */ = this.toClassDescriptor(
162
- (0, decorators[i])(obj) /* : ClassObject */ || obj,
163
- )
178
+ var obj /* : ClassObject */ = this.fromClassDescriptor(elements);
179
+ var elementsAndFinisher /* : ElementsFinisher */ =
180
+ this.toClassDescriptor(
181
+ (0, decorators[i])(obj) /* : ClassObject */ || obj,
182
+ );
164
183
  if (elementsAndFinisher.finisher !== undefined) {
165
- finishers.push(elementsAndFinisher.finisher)
184
+ finishers.push(elementsAndFinisher.finisher);
166
185
  }
167
186
  if (elementsAndFinisher.elements !== undefined) {
168
- elements = elementsAndFinisher.elements
187
+ elements = elementsAndFinisher.elements;
169
188
  for (var j = 0; j < elements.length - 1; j++) {
170
189
  for (var k = j + 1; k < elements.length; k++) {
171
190
  if (
172
191
  elements[j].key === elements[k].key &&
173
192
  elements[j].placement === elements[k].placement
174
193
  ) {
175
- throw new TypeError(`Duplicated element (${elements[j].key})`)
194
+ throw new TypeError(`Duplicated element (${elements[j].key})`);
176
195
  }
177
196
  }
178
197
  }
179
198
  }
180
199
  }
181
- return { elements, finishers }
200
+ return { elements, finishers };
182
201
  },
183
202
  // FromElementDescriptor
184
- fromElementDescriptor(element /* : ElementDescriptor */) /* : ElementObject */ {
203
+ fromElementDescriptor(
204
+ element /* : ElementDescriptor */,
205
+ ) /* : ElementObject */ {
185
206
  var obj /* : ElementObject */ = {
186
207
  kind: element.kind,
187
208
  key: element.key,
188
209
  placement: element.placement,
189
210
  descriptor: element.descriptor,
190
- }
211
+ };
191
212
  var desc = {
192
213
  value: "Descriptor",
193
214
  configurable: true,
194
- }
195
- Object.defineProperty(obj, Symbol.toStringTag, desc)
196
- if (element.kind === "field") obj.initializer = element.initializer
197
- return obj
215
+ };
216
+ Object.defineProperty(obj, Symbol.toStringTag, desc);
217
+ if (element.kind === "field") obj.initializer = element.initializer;
218
+ return obj;
198
219
  },
199
220
  // ToElementDescriptors
200
- toElementDescriptors(elementObjects /* : ElementObject[] */) /* : ElementDescriptor[] */ {
201
- if (elementObjects === undefined) return
221
+ toElementDescriptors(
222
+ elementObjects /* : ElementObject[] */,
223
+ ) /* : ElementDescriptor[] */ {
224
+ if (elementObjects === undefined) return;
202
225
  return toArray(elementObjects).map(function (elementObject) {
203
- var element = this.toElementDescriptor(elementObject)
204
- this.disallowProperty(elementObject, "finisher", "An element descriptor")
205
- this.disallowProperty(elementObject, "extras", "An element descriptor")
206
- return element
207
- }, this)
226
+ var element = this.toElementDescriptor(elementObject);
227
+ this.disallowProperty(
228
+ elementObject,
229
+ "finisher",
230
+ "An element descriptor",
231
+ );
232
+ this.disallowProperty(elementObject, "extras", "An element descriptor");
233
+ return element;
234
+ }, this);
208
235
  },
209
236
  // ToElementDescriptor
210
- toElementDescriptor(elementObject /* : ElementObject */) /* : ElementDescriptor */ {
211
- var kind = String(elementObject.kind)
237
+ toElementDescriptor(
238
+ elementObject /* : ElementObject */,
239
+ ) /* : ElementDescriptor */ {
240
+ var kind = String(elementObject.kind);
212
241
  if (kind !== "method" && kind !== "field") {
213
242
  throw new TypeError(
214
243
  `${
@@ -216,72 +245,102 @@ var _getDecoratorsApi = function () {
216
245
  ' "field", but a decorator created an element descriptor with' +
217
246
  ' .kind "'
218
247
  }${kind}"`,
219
- )
248
+ );
220
249
  }
221
- var key = toPropertyKey(elementObject.key)
222
- var placement = String(elementObject.placement)
223
- if (placement !== "static" && placement !== "prototype" && placement !== "own") {
250
+ var key = toPropertyKey(elementObject.key);
251
+ var placement = String(elementObject.placement);
252
+ if (
253
+ placement !== "static" &&
254
+ placement !== "prototype" &&
255
+ placement !== "own"
256
+ ) {
224
257
  throw new TypeError(
225
258
  `${
226
259
  'An element descriptor\'s .placement property must be one of "static",' +
227
260
  ' "prototype" or "own", but a decorator created an element descriptor' +
228
261
  ' with .placement "'
229
262
  }${placement}"`,
230
- )
263
+ );
231
264
  }
232
- var descriptor /* : PropertyDescriptor */ = elementObject.descriptor
233
- this.disallowProperty(elementObject, "elements", "An element descriptor")
265
+ var descriptor /* : PropertyDescriptor */ = elementObject.descriptor;
266
+ this.disallowProperty(elementObject, "elements", "An element descriptor");
234
267
  var element /* : ElementDescriptor */ = {
235
268
  kind,
236
269
  key,
237
270
  placement,
238
271
  descriptor: Object.assign({}, descriptor),
239
- }
272
+ };
240
273
  if (kind !== "field") {
241
- this.disallowProperty(elementObject, "initializer", "A method descriptor")
274
+ this.disallowProperty(
275
+ elementObject,
276
+ "initializer",
277
+ "A method descriptor",
278
+ );
242
279
  } else {
243
- this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor")
244
- this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor")
245
- this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor")
246
- element.initializer = elementObject.initializer
280
+ this.disallowProperty(
281
+ descriptor,
282
+ "get",
283
+ "The property descriptor of a field descriptor",
284
+ );
285
+ this.disallowProperty(
286
+ descriptor,
287
+ "set",
288
+ "The property descriptor of a field descriptor",
289
+ );
290
+ this.disallowProperty(
291
+ descriptor,
292
+ "value",
293
+ "The property descriptor of a field descriptor",
294
+ );
295
+ element.initializer = elementObject.initializer;
247
296
  }
248
- return element
297
+ return element;
249
298
  },
250
- toElementFinisherExtras(elementObject /* : ElementObject */) /* : ElementFinisherExtras */ {
251
- var element /* : ElementDescriptor */ = this.toElementDescriptor(elementObject)
252
- var finisher /* : ClassFinisher */ = _optionalCallableProperty(elementObject, "finisher")
253
- var extras /* : ElementDescriptors[] */ = this.toElementDescriptors(elementObject.extras)
254
- return { element, finisher, extras }
299
+ toElementFinisherExtras(
300
+ elementObject /* : ElementObject */,
301
+ ) /* : ElementFinisherExtras */ {
302
+ var element /* : ElementDescriptor */ =
303
+ this.toElementDescriptor(elementObject);
304
+ var finisher /* : ClassFinisher */ = _optionalCallableProperty(
305
+ elementObject,
306
+ "finisher",
307
+ );
308
+ var extras /* : ElementDescriptors[] */ = this.toElementDescriptors(
309
+ elementObject.extras,
310
+ );
311
+ return { element, finisher, extras };
255
312
  },
256
313
  // FromClassDescriptor
257
- fromClassDescriptor(elements /* : ElementDescriptor[] */) /* : ClassObject */ {
314
+ fromClassDescriptor(
315
+ elements /* : ElementDescriptor[] */,
316
+ ) /* : ClassObject */ {
258
317
  var obj = {
259
318
  kind: "class",
260
319
  elements: elements.map(this.fromElementDescriptor, this),
261
- }
262
- var desc = { value: "Descriptor", configurable: true }
263
- Object.defineProperty(obj, Symbol.toStringTag, desc)
264
- return obj
320
+ };
321
+ var desc = { value: "Descriptor", configurable: true };
322
+ Object.defineProperty(obj, Symbol.toStringTag, desc);
323
+ return obj;
265
324
  },
266
325
  // ToClassDescriptor
267
326
  toClassDescriptor(obj /* : ClassObject */) /* : ElementsFinisher */ {
268
- var kind = String(obj.kind)
327
+ var kind = String(obj.kind);
269
328
  if (kind !== "class") {
270
329
  throw new TypeError(
271
330
  `${
272
331
  'A class descriptor\'s .kind property must be "class", but a decorator' +
273
332
  ' created a class descriptor with .kind "'
274
333
  }${kind}"`,
275
- )
334
+ );
276
335
  }
277
- this.disallowProperty(obj, "key", "A class descriptor")
278
- this.disallowProperty(obj, "placement", "A class descriptor")
279
- this.disallowProperty(obj, "descriptor", "A class descriptor")
280
- this.disallowProperty(obj, "initializer", "A class descriptor")
281
- this.disallowProperty(obj, "extras", "A class descriptor")
282
- var finisher = _optionalCallableProperty(obj, "finisher")
283
- var elements = this.toElementDescriptors(obj.elements)
284
- return { elements, finisher }
336
+ this.disallowProperty(obj, "key", "A class descriptor");
337
+ this.disallowProperty(obj, "placement", "A class descriptor");
338
+ this.disallowProperty(obj, "descriptor", "A class descriptor");
339
+ this.disallowProperty(obj, "initializer", "A class descriptor");
340
+ this.disallowProperty(obj, "extras", "A class descriptor");
341
+ var finisher = _optionalCallableProperty(obj, "finisher");
342
+ var elements = this.toElementDescriptors(obj.elements);
343
+ return { elements, finisher };
285
344
  },
286
345
  // RunClassFinishers
287
346
  runClassFinishers(
@@ -289,82 +348,105 @@ var _getDecoratorsApi = function () {
289
348
  finishers /* : ClassFinisher[] */,
290
349
  ) /* : Class<*> */ {
291
350
  for (var i = 0; i < finishers.length; i++) {
292
- var newConstructor /* : ?Class<*> */ = (0, finishers[i])(constructor)
351
+ var newConstructor /* : ?Class<*> */ = (0, finishers[i])(constructor);
293
352
  if (newConstructor !== undefined) {
294
353
  // NOTE: This should check if IsConstructor(newConstructor) is false.
295
354
  if (typeof newConstructor !== "function") {
296
- throw new TypeError("Finishers must return a constructor.")
355
+ throw new TypeError("Finishers must return a constructor.");
297
356
  }
298
- constructor = newConstructor
357
+ constructor = newConstructor;
299
358
  }
300
359
  }
301
- return constructor
360
+ return constructor;
302
361
  },
303
362
  disallowProperty(obj, name, objectType) {
304
363
  if (obj[name] !== undefined) {
305
- throw new TypeError(`${objectType} can't have a .${name} property.`)
364
+ throw new TypeError(`${objectType} can't have a .${name} property.`);
306
365
  }
307
366
  },
308
- }
367
+ };
309
368
  _getDecoratorsApi = function () {
310
- return api
311
- }
312
- return api
313
- }
369
+ return api;
370
+ };
371
+ return api;
372
+ };
314
373
 
315
374
  // ClassElementEvaluation
316
- function _createElementDescriptor(def /* : ElementDefinition */) /* : ElementDescriptor */ {
317
- var key = toPropertyKey(def.key)
318
- var descriptor /* : PropertyDescriptor */
375
+ function _createElementDescriptor(
376
+ def /* : ElementDefinition */,
377
+ ) /* : ElementDescriptor */ {
378
+ var key = toPropertyKey(def.key);
379
+ var descriptor; /* : PropertyDescriptor */
319
380
  if (def.kind === "method") {
320
381
  descriptor = {
321
382
  value: def.value,
322
383
  writable: true,
323
384
  configurable: true,
324
385
  enumerable: false,
325
- }
386
+ };
326
387
  } else if (def.kind === "get") {
327
- descriptor = { get: def.value, configurable: true, enumerable: false }
388
+ descriptor = { get: def.value, configurable: true, enumerable: false };
328
389
  } else if (def.kind === "set") {
329
- descriptor = { set: def.value, configurable: true, enumerable: false }
390
+ descriptor = { set: def.value, configurable: true, enumerable: false };
330
391
  } else if (def.kind === "field") {
331
- descriptor = { configurable: true, writable: true, enumerable: true }
392
+ descriptor = { configurable: true, writable: true, enumerable: true };
332
393
  }
333
394
  var element /* : ElementDescriptor */ = {
334
395
  kind: def.kind === "field" ? "field" : "method",
335
396
  key,
336
- placement: def.static ? "static" : def.kind === "field" ? "own" : "prototype",
397
+ placement: def.static
398
+ ? "static"
399
+ : def.kind === "field"
400
+ ? "own"
401
+ : "prototype",
337
402
  descriptor,
338
- }
339
- if (def.decorators) element.decorators = def.decorators
340
- if (def.kind === "field") element.initializer = def.value
341
- return element
403
+ };
404
+ if (def.decorators) element.decorators = def.decorators;
405
+ if (def.kind === "field") element.initializer = def.value;
406
+ return element;
342
407
  }
343
408
  // CoalesceGetterSetter
344
- function _coalesceGetterSetter(element /* : ElementDescriptor */, other /* : ElementDescriptor */) {
409
+ function _coalesceGetterSetter(
410
+ element /* : ElementDescriptor */,
411
+ other /* : ElementDescriptor */,
412
+ ) {
345
413
  if (element.descriptor.get !== undefined) {
346
- other.descriptor.get = element.descriptor.get
414
+ other.descriptor.get = element.descriptor.get;
347
415
  } else {
348
- other.descriptor.set = element.descriptor.set
416
+ other.descriptor.set = element.descriptor.set;
349
417
  }
350
418
  }
351
419
  // CoalesceClassElements
352
- function _coalesceClassElements(elements /* : ElementDescriptor[] */) /* : ElementDescriptor[] */ {
353
- var newElements /* : ElementDescriptor[] */ = []
354
- var isSameElement = function (other /* : ElementDescriptor */) /* : boolean */ {
420
+ function _coalesceClassElements(
421
+ elements /* : ElementDescriptor[] */,
422
+ ) /* : ElementDescriptor[] */ {
423
+ var newElements /* : ElementDescriptor[] */ = [];
424
+ var isSameElement = function (
425
+ other /* : ElementDescriptor */,
426
+ ) /* : boolean */ {
355
427
  return (
356
- other.kind === "method" && other.key === element.key && other.placement === element.placement
357
- )
358
- }
428
+ other.kind === "method" &&
429
+ other.key === element.key &&
430
+ other.placement === element.placement
431
+ );
432
+ };
359
433
  for (var i = 0; i < elements.length; i++) {
360
- var element /* : ElementDescriptor */ = elements[i]
361
- var other /* : ElementDescriptor */
362
- if (element.kind === "method" && (other = newElements.find(isSameElement))) {
363
- if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
434
+ var element /* : ElementDescriptor */ = elements[i];
435
+ var other; /* : ElementDescriptor */
436
+ if (
437
+ element.kind === "method" &&
438
+ (other = newElements.find(isSameElement))
439
+ ) {
440
+ if (
441
+ _isDataDescriptor(element.descriptor) ||
442
+ _isDataDescriptor(other.descriptor)
443
+ ) {
364
444
  if (_hasDecorators(element) || _hasDecorators(other)) {
365
- throw new ReferenceError(`Duplicated methods (${element.key}) can't be decorated.`)
445
+ throw new ReferenceError(
446
+ `Duplicated methods (${element.key}) can't be decorated.`,
447
+ );
366
448
  }
367
- other.descriptor = element.descriptor
449
+ other.descriptor = element.descriptor;
368
450
  } else {
369
451
  if (_hasDecorators(element)) {
370
452
  if (_hasDecorators(other)) {
@@ -373,31 +455,34 @@ function _coalesceClassElements(elements /* : ElementDescriptor[] */) /* : Eleme
373
455
  "Decorators can't be placed on different accessors with for " +
374
456
  "the same property ("
375
457
  }${element.key}).`,
376
- )
458
+ );
377
459
  }
378
- other.decorators = element.decorators
460
+ other.decorators = element.decorators;
379
461
  }
380
- _coalesceGetterSetter(element, other)
462
+ _coalesceGetterSetter(element, other);
381
463
  }
382
464
  } else {
383
- newElements.push(element)
465
+ newElements.push(element);
384
466
  }
385
467
  }
386
- return newElements
468
+ return newElements;
387
469
  }
388
470
  function _hasDecorators(element /* : ElementDescriptor */) /* : boolean */ {
389
- return element.decorators && element.decorators.length
471
+ return element.decorators && element.decorators.length;
390
472
  }
391
473
  function _isDataDescriptor(desc /* : PropertyDescriptor */) /* : boolean */ {
392
- return desc !== undefined && !(desc.value === undefined && desc.writable === undefined)
474
+ return (
475
+ desc !== undefined &&
476
+ !(desc.value === undefined && desc.writable === undefined)
477
+ );
393
478
  }
394
479
  function _optionalCallableProperty /* ::<T>*/(
395
480
  obj /* : T */,
396
481
  name /* : $Keys<T> */,
397
482
  ) /* : ?Function */ {
398
- var value = obj[name]
483
+ var value = obj[name];
399
484
  if (value !== undefined && typeof value !== "function") {
400
- throw new TypeError(`Expected '${name}' to be a function`)
485
+ throw new TypeError(`Expected '${name}' to be a function`);
401
486
  }
402
- return value
487
+ return value;
403
488
  }