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