@babel/runtime
Advanced tools
Comparing version 7.2.0 to 7.3.0
@@ -6,5 +6,11 @@ function _classPrivateFieldGet(receiver, privateMap) { | ||
return privateMap.get(receiver).value; | ||
var descriptor = privateMap.get(receiver); | ||
if (descriptor.get) { | ||
return descriptor.get.call(receiver); | ||
} | ||
return descriptor.value; | ||
} | ||
module.exports = _classPrivateFieldGet; |
@@ -8,7 +8,12 @@ function _classPrivateFieldSet(receiver, privateMap, value) { | ||
if (!descriptor.writable) { | ||
throw new TypeError("attempted to set read only private field"); | ||
if (descriptor.set) { | ||
descriptor.set.call(receiver, value); | ||
} else { | ||
if (!descriptor.writable) { | ||
throw new TypeError("attempted to set read only private field"); | ||
} | ||
descriptor.value = value; | ||
} | ||
descriptor.value = value; | ||
return value; | ||
@@ -15,0 +20,0 @@ } |
@@ -1,3 +0,1 @@ | ||
var _typeof = require("../helpers/typeof"); | ||
var toArray = require("./toArray"); | ||
@@ -7,12 +5,290 @@ | ||
function _decorate(decorators, factory, superClass) { | ||
function _decorate(decorators, factory, superClass, mixins) { | ||
var api = _getDecoratorsApi(); | ||
if (mixins) { | ||
for (var i = 0; i < mixins.length; i++) { | ||
api = mixins[i](api); | ||
} | ||
} | ||
var r = factory(function initialize(O) { | ||
_initializeInstanceElements(O, decorated.elements); | ||
api.initializeInstanceElements(O, decorated.elements); | ||
}, superClass); | ||
var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); | ||
api.initializeClassElements(r.F, decorated.elements); | ||
return api.runClassFinishers(r.F, decorated.finishers); | ||
} | ||
var decorated = _decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); | ||
function _getDecoratorsApi() { | ||
_getDecoratorsApi = function _getDecoratorsApi() { | ||
return api; | ||
}; | ||
_initializeClassElements(r.F, decorated.elements); | ||
var api = { | ||
elementsDefinitionOrder: [["method"], ["field"]], | ||
initializeInstanceElements: function initializeInstanceElements(O, elements) { | ||
["method", "field"].forEach(function (kind) { | ||
elements.forEach(function (element) { | ||
if (element.kind === kind && element.placement === "own") { | ||
this.defineClassElement(O, element); | ||
} | ||
}, this); | ||
}, this); | ||
}, | ||
initializeClassElements: function initializeClassElements(F, elements) { | ||
var proto = F.prototype; | ||
["method", "field"].forEach(function (kind) { | ||
elements.forEach(function (element) { | ||
var placement = element.placement; | ||
return _runClassFinishers(r.F, decorated.finishers); | ||
if (element.kind === kind && (placement === "static" || placement === "prototype")) { | ||
var receiver = placement === "static" ? F : proto; | ||
this.defineClassElement(receiver, element); | ||
} | ||
}, this); | ||
}, this); | ||
}, | ||
defineClassElement: function defineClassElement(receiver, element) { | ||
var descriptor = element.descriptor; | ||
if (element.kind === "field") { | ||
var initializer = element.initializer; | ||
descriptor = { | ||
enumerable: descriptor.enumerable, | ||
writable: descriptor.writable, | ||
configurable: descriptor.configurable, | ||
value: initializer === void 0 ? void 0 : initializer.call(receiver) | ||
}; | ||
} | ||
Object.defineProperty(receiver, element.key, descriptor); | ||
}, | ||
decorateClass: function decorateClass(elements, decorators) { | ||
var newElements = []; | ||
var finishers = []; | ||
var placements = { | ||
static: [], | ||
prototype: [], | ||
own: [] | ||
}; | ||
elements.forEach(function (element) { | ||
this.addElementPlacement(element, placements); | ||
}, this); | ||
elements.forEach(function (element) { | ||
if (!_hasDecorators(element)) return newElements.push(element); | ||
var elementFinishersExtras = this.decorateElement(element, placements); | ||
newElements.push(elementFinishersExtras.element); | ||
newElements.push.apply(newElements, elementFinishersExtras.extras); | ||
finishers.push.apply(finishers, elementFinishersExtras.finishers); | ||
}, this); | ||
if (!decorators) { | ||
return { | ||
elements: newElements, | ||
finishers: finishers | ||
}; | ||
} | ||
var result = this.decorateConstructor(newElements, decorators); | ||
finishers.push.apply(finishers, result.finishers); | ||
result.finishers = finishers; | ||
return result; | ||
}, | ||
addElementPlacement: function addElementPlacement(element, placements, silent) { | ||
var keys = placements[element.placement]; | ||
if (!silent && keys.indexOf(element.key) !== -1) { | ||
throw new TypeError("Duplicated element (" + element.key + ")"); | ||
} | ||
keys.push(element.key); | ||
}, | ||
decorateElement: function decorateElement(element, placements) { | ||
var extras = []; | ||
var finishers = []; | ||
for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { | ||
var keys = placements[element.placement]; | ||
keys.splice(keys.indexOf(element.key), 1); | ||
var elementObject = this.fromElementDescriptor(element); | ||
var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); | ||
element = elementFinisherExtras.element; | ||
this.addElementPlacement(element, placements); | ||
if (elementFinisherExtras.finisher) { | ||
finishers.push(elementFinisherExtras.finisher); | ||
} | ||
var newExtras = elementFinisherExtras.extras; | ||
if (newExtras) { | ||
for (var j = 0; j < newExtras.length; j++) { | ||
this.addElementPlacement(newExtras[j], placements); | ||
} | ||
extras.push.apply(extras, newExtras); | ||
} | ||
} | ||
return { | ||
element: element, | ||
finishers: finishers, | ||
extras: extras | ||
}; | ||
}, | ||
decorateConstructor: function decorateConstructor(elements, decorators) { | ||
var finishers = []; | ||
for (var i = decorators.length - 1; i >= 0; i--) { | ||
var obj = this.fromClassDescriptor(elements); | ||
var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); | ||
if (elementsAndFinisher.finisher !== undefined) { | ||
finishers.push(elementsAndFinisher.finisher); | ||
} | ||
if (elementsAndFinisher.elements !== undefined) { | ||
elements = elementsAndFinisher.elements; | ||
for (var j = 0; j < elements.length - 1; j++) { | ||
for (var k = j + 1; k < elements.length; k++) { | ||
if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { | ||
throw new TypeError("Duplicated element (" + elements[j].key + ")"); | ||
} | ||
} | ||
} | ||
} | ||
} | ||
return { | ||
elements: elements, | ||
finishers: finishers | ||
}; | ||
}, | ||
fromElementDescriptor: function fromElementDescriptor(element) { | ||
var obj = { | ||
kind: element.kind, | ||
key: element.key, | ||
placement: element.placement, | ||
descriptor: element.descriptor | ||
}; | ||
var desc = { | ||
value: "Descriptor", | ||
configurable: true | ||
}; | ||
Object.defineProperty(obj, Symbol.toStringTag, desc); | ||
if (element.kind === "field") obj.initializer = element.initializer; | ||
return obj; | ||
}, | ||
toElementDescriptors: function toElementDescriptors(elementObjects) { | ||
if (elementObjects === undefined) return; | ||
return toArray(elementObjects).map(function (elementObject) { | ||
var element = this.toElementDescriptor(elementObject); | ||
this.disallowProperty(elementObject, "finisher", "An element descriptor"); | ||
this.disallowProperty(elementObject, "extras", "An element descriptor"); | ||
return element; | ||
}, this); | ||
}, | ||
toElementDescriptor: function toElementDescriptor(elementObject) { | ||
var kind = String(elementObject.kind); | ||
if (kind !== "method" && kind !== "field") { | ||
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 + '"'); | ||
} | ||
var key = toPropertyKey(elementObject.key); | ||
var placement = String(elementObject.placement); | ||
if (placement !== "static" && placement !== "prototype" && placement !== "own") { | ||
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 + '"'); | ||
} | ||
var descriptor = elementObject.descriptor; | ||
this.disallowProperty(elementObject, "elements", "An element descriptor"); | ||
var element = { | ||
kind: kind, | ||
key: key, | ||
placement: placement, | ||
descriptor: Object.assign({}, descriptor) | ||
}; | ||
if (kind !== "field") { | ||
this.disallowProperty(elementObject, "initializer", "A method descriptor"); | ||
} else { | ||
this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); | ||
this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); | ||
this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); | ||
element.initializer = elementObject.initializer; | ||
} | ||
return element; | ||
}, | ||
toElementFinisherExtras: function toElementFinisherExtras(elementObject) { | ||
var element = this.toElementDescriptor(elementObject); | ||
var finisher = _optionalCallableProperty(elementObject, "finisher"); | ||
var extras = this.toElementDescriptors(elementObject.extras); | ||
return { | ||
element: element, | ||
finisher: finisher, | ||
extras: extras | ||
}; | ||
}, | ||
fromClassDescriptor: function fromClassDescriptor(elements) { | ||
var obj = { | ||
kind: "class", | ||
elements: elements.map(this.fromElementDescriptor, this) | ||
}; | ||
var desc = { | ||
value: "Descriptor", | ||
configurable: true | ||
}; | ||
Object.defineProperty(obj, Symbol.toStringTag, desc); | ||
return obj; | ||
}, | ||
toClassDescriptor: function toClassDescriptor(obj) { | ||
var kind = String(obj.kind); | ||
if (kind !== "class") { | ||
throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); | ||
} | ||
this.disallowProperty(obj, "key", "A class descriptor"); | ||
this.disallowProperty(obj, "placement", "A class descriptor"); | ||
this.disallowProperty(obj, "descriptor", "A class descriptor"); | ||
this.disallowProperty(obj, "initializer", "A class descriptor"); | ||
this.disallowProperty(obj, "extras", "A class descriptor"); | ||
var finisher = _optionalCallableProperty(obj, "finisher"); | ||
var elements = this.toElementDescriptors(obj.elements); | ||
return { | ||
elements: elements, | ||
finisher: finisher | ||
}; | ||
}, | ||
runClassFinishers: function runClassFinishers(constructor, finishers) { | ||
for (var i = 0; i < finishers.length; i++) { | ||
var newConstructor = (0, finishers[i])(constructor); | ||
if (newConstructor !== undefined) { | ||
if (typeof newConstructor !== "function") { | ||
throw new TypeError("Finishers must return a constructor."); | ||
} | ||
constructor = newConstructor; | ||
} | ||
} | ||
return constructor; | ||
}, | ||
disallowProperty: function disallowProperty(obj, name, objectType) { | ||
if (obj[name] !== undefined) { | ||
throw new TypeError(objectType + " can't have a ." + name + " property."); | ||
} | ||
} | ||
}; | ||
return api; | ||
} | ||
@@ -31,6 +307,2 @@ | ||
}; | ||
Object.defineProperty(def.value, "name", { | ||
value: _typeof(key) === "symbol" ? "" : key, | ||
configurable: true | ||
}); | ||
} else if (def.kind === "get") { | ||
@@ -120,286 +392,2 @@ descriptor = { | ||
function _initializeClassElements(F, elements) { | ||
var proto = F.prototype; | ||
["method", "field"].forEach(function (kind) { | ||
elements.forEach(function (element) { | ||
var placement = element.placement; | ||
if (element.kind === kind && (placement === "static" || placement === "prototype")) { | ||
var receiver = placement === "static" ? F : proto; | ||
_defineClassElement(receiver, element); | ||
} | ||
}); | ||
}); | ||
} | ||
function _initializeInstanceElements(O, elements) { | ||
["method", "field"].forEach(function (kind) { | ||
elements.forEach(function (element) { | ||
if (element.kind === kind && element.placement === "own") { | ||
_defineClassElement(O, element); | ||
} | ||
}); | ||
}); | ||
} | ||
function _defineClassElement(receiver, element) { | ||
var descriptor = element.descriptor; | ||
if (element.kind === "field") { | ||
var initializer = element.initializer; | ||
descriptor = { | ||
enumerable: descriptor.enumerable, | ||
writable: descriptor.writable, | ||
configurable: descriptor.configurable, | ||
value: initializer === void 0 ? void 0 : initializer.call(receiver) | ||
}; | ||
} | ||
Object.defineProperty(receiver, element.key, descriptor); | ||
} | ||
function _decorateClass(elements, decorators) { | ||
var newElements = []; | ||
var finishers = []; | ||
var placements = { | ||
static: [], | ||
prototype: [], | ||
own: [] | ||
}; | ||
elements.forEach(function (element) { | ||
_addElementPlacement(element, placements); | ||
}); | ||
elements.forEach(function (element) { | ||
if (!_hasDecorators(element)) return newElements.push(element); | ||
var elementFinishersExtras = _decorateElement(element, placements); | ||
newElements.push(elementFinishersExtras.element); | ||
newElements.push.apply(newElements, elementFinishersExtras.extras); | ||
finishers.push.apply(finishers, elementFinishersExtras.finishers); | ||
}); | ||
if (!decorators) { | ||
return { | ||
elements: newElements, | ||
finishers: finishers | ||
}; | ||
} | ||
var result = _decorateConstructor(newElements, decorators); | ||
finishers.push.apply(finishers, result.finishers); | ||
result.finishers = finishers; | ||
return result; | ||
} | ||
function _addElementPlacement(element, placements, silent) { | ||
var keys = placements[element.placement]; | ||
if (!silent && keys.indexOf(element.key) !== -1) { | ||
throw new TypeError("Duplicated element (" + element.key + ")"); | ||
} | ||
keys.push(element.key); | ||
} | ||
function _decorateElement(element, placements) { | ||
var extras = []; | ||
var finishers = []; | ||
for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { | ||
var keys = placements[element.placement]; | ||
keys.splice(keys.indexOf(element.key), 1); | ||
var elementObject = _fromElementDescriptor(element); | ||
var elementFinisherExtras = _toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); | ||
element = elementFinisherExtras.element; | ||
_addElementPlacement(element, placements); | ||
if (elementFinisherExtras.finisher) { | ||
finishers.push(elementFinisherExtras.finisher); | ||
} | ||
var newExtras = elementFinisherExtras.extras; | ||
if (newExtras) { | ||
for (var j = 0; j < newExtras.length; j++) { | ||
_addElementPlacement(newExtras[j], placements); | ||
} | ||
extras.push.apply(extras, newExtras); | ||
} | ||
} | ||
return { | ||
element: element, | ||
finishers: finishers, | ||
extras: extras | ||
}; | ||
} | ||
function _decorateConstructor(elements, decorators) { | ||
var finishers = []; | ||
for (var i = decorators.length - 1; i >= 0; i--) { | ||
var obj = _fromClassDescriptor(elements); | ||
var elementsAndFinisher = _toClassDescriptor((0, decorators[i])(obj) || obj); | ||
if (elementsAndFinisher.finisher !== undefined) { | ||
finishers.push(elementsAndFinisher.finisher); | ||
} | ||
if (elementsAndFinisher.elements !== undefined) { | ||
elements = elementsAndFinisher.elements; | ||
for (var j = 0; j < elements.length - 1; j++) { | ||
for (var k = j + 1; k < elements.length; k++) { | ||
if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { | ||
throw new TypeError("Duplicated element (" + elements[j].key + ")"); | ||
} | ||
} | ||
} | ||
} | ||
} | ||
return { | ||
elements: elements, | ||
finishers: finishers | ||
}; | ||
} | ||
function _fromElementDescriptor(element) { | ||
var obj = { | ||
kind: element.kind, | ||
key: element.key, | ||
placement: element.placement, | ||
descriptor: element.descriptor | ||
}; | ||
var desc = { | ||
value: "Descriptor", | ||
configurable: true | ||
}; | ||
Object.defineProperty(obj, Symbol.toStringTag, desc); | ||
if (element.kind === "field") obj.initializer = element.initializer; | ||
return obj; | ||
} | ||
function _toElementDescriptors(elementObjects) { | ||
if (elementObjects === undefined) return; | ||
return toArray(elementObjects).map(function (elementObject) { | ||
var element = _toElementDescriptor(elementObject); | ||
_disallowProperty(elementObject, "finisher", "An element descriptor"); | ||
_disallowProperty(elementObject, "extras", "An element descriptor"); | ||
return element; | ||
}); | ||
} | ||
function _toElementDescriptor(elementObject) { | ||
var kind = String(elementObject.kind); | ||
if (kind !== "method" && kind !== "field") { | ||
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 + '"'); | ||
} | ||
var key = toPropertyKey(elementObject.key); | ||
var placement = String(elementObject.placement); | ||
if (placement !== "static" && placement !== "prototype" && placement !== "own") { | ||
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 + '"'); | ||
} | ||
var descriptor = elementObject.descriptor; | ||
_disallowProperty(elementObject, "elements", "An element descriptor"); | ||
var element = { | ||
kind: kind, | ||
key: key, | ||
placement: placement, | ||
descriptor: Object.assign({}, descriptor) | ||
}; | ||
if (kind !== "field") { | ||
_disallowProperty(elementObject, "initializer", "A method descriptor"); | ||
} else { | ||
_disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); | ||
_disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); | ||
_disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); | ||
element.initializer = elementObject.initializer; | ||
} | ||
return element; | ||
} | ||
function _toElementFinisherExtras(elementObject) { | ||
var element = _toElementDescriptor(elementObject); | ||
var finisher = _optionalCallableProperty(elementObject, "finisher"); | ||
var extras = _toElementDescriptors(elementObject.extras); | ||
return { | ||
element: element, | ||
finisher: finisher, | ||
extras: extras | ||
}; | ||
} | ||
function _fromClassDescriptor(elements) { | ||
var obj = { | ||
kind: "class", | ||
elements: elements.map(_fromElementDescriptor) | ||
}; | ||
var desc = { | ||
value: "Descriptor", | ||
configurable: true | ||
}; | ||
Object.defineProperty(obj, Symbol.toStringTag, desc); | ||
return obj; | ||
} | ||
function _toClassDescriptor(obj) { | ||
var kind = String(obj.kind); | ||
if (kind !== "class") { | ||
throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); | ||
} | ||
_disallowProperty(obj, "key", "A class descriptor"); | ||
_disallowProperty(obj, "placement", "A class descriptor"); | ||
_disallowProperty(obj, "descriptor", "A class descriptor"); | ||
_disallowProperty(obj, "initializer", "A class descriptor"); | ||
_disallowProperty(obj, "extras", "A class descriptor"); | ||
var finisher = _optionalCallableProperty(obj, "finisher"); | ||
var elements = _toElementDescriptors(obj.elements); | ||
return { | ||
elements: elements, | ||
finisher: finisher | ||
}; | ||
} | ||
function _disallowProperty(obj, name, objectType) { | ||
if (obj[name] !== undefined) { | ||
throw new TypeError(objectType + " can't have a ." + name + " property."); | ||
} | ||
} | ||
function _optionalCallableProperty(obj, name) { | ||
@@ -415,18 +403,2 @@ var value = obj[name]; | ||
function _runClassFinishers(constructor, finishers) { | ||
for (var i = 0; i < finishers.length; i++) { | ||
var newConstructor = (0, finishers[i])(constructor); | ||
if (newConstructor !== undefined) { | ||
if (typeof newConstructor !== "function") { | ||
throw new TypeError("Finishers must return a constructor."); | ||
} | ||
constructor = newConstructor; | ||
} | ||
} | ||
return constructor; | ||
} | ||
module.exports = _decorate; |
@@ -6,3 +6,9 @@ export default function _classPrivateFieldGet(receiver, privateMap) { | ||
return privateMap.get(receiver).value; | ||
var descriptor = privateMap.get(receiver); | ||
if (descriptor.get) { | ||
return descriptor.get.call(receiver); | ||
} | ||
return descriptor.value; | ||
} |
@@ -8,8 +8,13 @@ export default function _classPrivateFieldSet(receiver, privateMap, value) { | ||
if (!descriptor.writable) { | ||
throw new TypeError("attempted to set read only private field"); | ||
if (descriptor.set) { | ||
descriptor.set.call(receiver, value); | ||
} else { | ||
if (!descriptor.writable) { | ||
throw new TypeError("attempted to set read only private field"); | ||
} | ||
descriptor.value = value; | ||
} | ||
descriptor.value = value; | ||
return value; | ||
} |
@@ -1,14 +0,291 @@ | ||
import _typeof from "../../helpers/esm/typeof"; | ||
import toArray from "./toArray"; | ||
import toPropertyKey from "./toPropertyKey"; | ||
export default function _decorate(decorators, factory, superClass) { | ||
export default function _decorate(decorators, factory, superClass, mixins) { | ||
var api = _getDecoratorsApi(); | ||
if (mixins) { | ||
for (var i = 0; i < mixins.length; i++) { | ||
api = mixins[i](api); | ||
} | ||
} | ||
var r = factory(function initialize(O) { | ||
_initializeInstanceElements(O, decorated.elements); | ||
api.initializeInstanceElements(O, decorated.elements); | ||
}, superClass); | ||
var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); | ||
api.initializeClassElements(r.F, decorated.elements); | ||
return api.runClassFinishers(r.F, decorated.finishers); | ||
} | ||
var decorated = _decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); | ||
function _getDecoratorsApi() { | ||
_getDecoratorsApi = function _getDecoratorsApi() { | ||
return api; | ||
}; | ||
_initializeClassElements(r.F, decorated.elements); | ||
var api = { | ||
elementsDefinitionOrder: [["method"], ["field"]], | ||
initializeInstanceElements: function initializeInstanceElements(O, elements) { | ||
["method", "field"].forEach(function (kind) { | ||
elements.forEach(function (element) { | ||
if (element.kind === kind && element.placement === "own") { | ||
this.defineClassElement(O, element); | ||
} | ||
}, this); | ||
}, this); | ||
}, | ||
initializeClassElements: function initializeClassElements(F, elements) { | ||
var proto = F.prototype; | ||
["method", "field"].forEach(function (kind) { | ||
elements.forEach(function (element) { | ||
var placement = element.placement; | ||
return _runClassFinishers(r.F, decorated.finishers); | ||
if (element.kind === kind && (placement === "static" || placement === "prototype")) { | ||
var receiver = placement === "static" ? F : proto; | ||
this.defineClassElement(receiver, element); | ||
} | ||
}, this); | ||
}, this); | ||
}, | ||
defineClassElement: function defineClassElement(receiver, element) { | ||
var descriptor = element.descriptor; | ||
if (element.kind === "field") { | ||
var initializer = element.initializer; | ||
descriptor = { | ||
enumerable: descriptor.enumerable, | ||
writable: descriptor.writable, | ||
configurable: descriptor.configurable, | ||
value: initializer === void 0 ? void 0 : initializer.call(receiver) | ||
}; | ||
} | ||
Object.defineProperty(receiver, element.key, descriptor); | ||
}, | ||
decorateClass: function decorateClass(elements, decorators) { | ||
var newElements = []; | ||
var finishers = []; | ||
var placements = { | ||
static: [], | ||
prototype: [], | ||
own: [] | ||
}; | ||
elements.forEach(function (element) { | ||
this.addElementPlacement(element, placements); | ||
}, this); | ||
elements.forEach(function (element) { | ||
if (!_hasDecorators(element)) return newElements.push(element); | ||
var elementFinishersExtras = this.decorateElement(element, placements); | ||
newElements.push(elementFinishersExtras.element); | ||
newElements.push.apply(newElements, elementFinishersExtras.extras); | ||
finishers.push.apply(finishers, elementFinishersExtras.finishers); | ||
}, this); | ||
if (!decorators) { | ||
return { | ||
elements: newElements, | ||
finishers: finishers | ||
}; | ||
} | ||
var result = this.decorateConstructor(newElements, decorators); | ||
finishers.push.apply(finishers, result.finishers); | ||
result.finishers = finishers; | ||
return result; | ||
}, | ||
addElementPlacement: function addElementPlacement(element, placements, silent) { | ||
var keys = placements[element.placement]; | ||
if (!silent && keys.indexOf(element.key) !== -1) { | ||
throw new TypeError("Duplicated element (" + element.key + ")"); | ||
} | ||
keys.push(element.key); | ||
}, | ||
decorateElement: function decorateElement(element, placements) { | ||
var extras = []; | ||
var finishers = []; | ||
for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { | ||
var keys = placements[element.placement]; | ||
keys.splice(keys.indexOf(element.key), 1); | ||
var elementObject = this.fromElementDescriptor(element); | ||
var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); | ||
element = elementFinisherExtras.element; | ||
this.addElementPlacement(element, placements); | ||
if (elementFinisherExtras.finisher) { | ||
finishers.push(elementFinisherExtras.finisher); | ||
} | ||
var newExtras = elementFinisherExtras.extras; | ||
if (newExtras) { | ||
for (var j = 0; j < newExtras.length; j++) { | ||
this.addElementPlacement(newExtras[j], placements); | ||
} | ||
extras.push.apply(extras, newExtras); | ||
} | ||
} | ||
return { | ||
element: element, | ||
finishers: finishers, | ||
extras: extras | ||
}; | ||
}, | ||
decorateConstructor: function decorateConstructor(elements, decorators) { | ||
var finishers = []; | ||
for (var i = decorators.length - 1; i >= 0; i--) { | ||
var obj = this.fromClassDescriptor(elements); | ||
var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); | ||
if (elementsAndFinisher.finisher !== undefined) { | ||
finishers.push(elementsAndFinisher.finisher); | ||
} | ||
if (elementsAndFinisher.elements !== undefined) { | ||
elements = elementsAndFinisher.elements; | ||
for (var j = 0; j < elements.length - 1; j++) { | ||
for (var k = j + 1; k < elements.length; k++) { | ||
if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { | ||
throw new TypeError("Duplicated element (" + elements[j].key + ")"); | ||
} | ||
} | ||
} | ||
} | ||
} | ||
return { | ||
elements: elements, | ||
finishers: finishers | ||
}; | ||
}, | ||
fromElementDescriptor: function fromElementDescriptor(element) { | ||
var obj = { | ||
kind: element.kind, | ||
key: element.key, | ||
placement: element.placement, | ||
descriptor: element.descriptor | ||
}; | ||
var desc = { | ||
value: "Descriptor", | ||
configurable: true | ||
}; | ||
Object.defineProperty(obj, Symbol.toStringTag, desc); | ||
if (element.kind === "field") obj.initializer = element.initializer; | ||
return obj; | ||
}, | ||
toElementDescriptors: function toElementDescriptors(elementObjects) { | ||
if (elementObjects === undefined) return; | ||
return toArray(elementObjects).map(function (elementObject) { | ||
var element = this.toElementDescriptor(elementObject); | ||
this.disallowProperty(elementObject, "finisher", "An element descriptor"); | ||
this.disallowProperty(elementObject, "extras", "An element descriptor"); | ||
return element; | ||
}, this); | ||
}, | ||
toElementDescriptor: function toElementDescriptor(elementObject) { | ||
var kind = String(elementObject.kind); | ||
if (kind !== "method" && kind !== "field") { | ||
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 + '"'); | ||
} | ||
var key = toPropertyKey(elementObject.key); | ||
var placement = String(elementObject.placement); | ||
if (placement !== "static" && placement !== "prototype" && placement !== "own") { | ||
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 + '"'); | ||
} | ||
var descriptor = elementObject.descriptor; | ||
this.disallowProperty(elementObject, "elements", "An element descriptor"); | ||
var element = { | ||
kind: kind, | ||
key: key, | ||
placement: placement, | ||
descriptor: Object.assign({}, descriptor) | ||
}; | ||
if (kind !== "field") { | ||
this.disallowProperty(elementObject, "initializer", "A method descriptor"); | ||
} else { | ||
this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); | ||
this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); | ||
this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); | ||
element.initializer = elementObject.initializer; | ||
} | ||
return element; | ||
}, | ||
toElementFinisherExtras: function toElementFinisherExtras(elementObject) { | ||
var element = this.toElementDescriptor(elementObject); | ||
var finisher = _optionalCallableProperty(elementObject, "finisher"); | ||
var extras = this.toElementDescriptors(elementObject.extras); | ||
return { | ||
element: element, | ||
finisher: finisher, | ||
extras: extras | ||
}; | ||
}, | ||
fromClassDescriptor: function fromClassDescriptor(elements) { | ||
var obj = { | ||
kind: "class", | ||
elements: elements.map(this.fromElementDescriptor, this) | ||
}; | ||
var desc = { | ||
value: "Descriptor", | ||
configurable: true | ||
}; | ||
Object.defineProperty(obj, Symbol.toStringTag, desc); | ||
return obj; | ||
}, | ||
toClassDescriptor: function toClassDescriptor(obj) { | ||
var kind = String(obj.kind); | ||
if (kind !== "class") { | ||
throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); | ||
} | ||
this.disallowProperty(obj, "key", "A class descriptor"); | ||
this.disallowProperty(obj, "placement", "A class descriptor"); | ||
this.disallowProperty(obj, "descriptor", "A class descriptor"); | ||
this.disallowProperty(obj, "initializer", "A class descriptor"); | ||
this.disallowProperty(obj, "extras", "A class descriptor"); | ||
var finisher = _optionalCallableProperty(obj, "finisher"); | ||
var elements = this.toElementDescriptors(obj.elements); | ||
return { | ||
elements: elements, | ||
finisher: finisher | ||
}; | ||
}, | ||
runClassFinishers: function runClassFinishers(constructor, finishers) { | ||
for (var i = 0; i < finishers.length; i++) { | ||
var newConstructor = (0, finishers[i])(constructor); | ||
if (newConstructor !== undefined) { | ||
if (typeof newConstructor !== "function") { | ||
throw new TypeError("Finishers must return a constructor."); | ||
} | ||
constructor = newConstructor; | ||
} | ||
} | ||
return constructor; | ||
}, | ||
disallowProperty: function disallowProperty(obj, name, objectType) { | ||
if (obj[name] !== undefined) { | ||
throw new TypeError(objectType + " can't have a ." + name + " property."); | ||
} | ||
} | ||
}; | ||
return api; | ||
} | ||
@@ -27,6 +304,2 @@ | ||
}; | ||
Object.defineProperty(def.value, "name", { | ||
value: _typeof(key) === "symbol" ? "" : key, | ||
configurable: true | ||
}); | ||
} else if (def.kind === "get") { | ||
@@ -116,286 +389,2 @@ descriptor = { | ||
function _initializeClassElements(F, elements) { | ||
var proto = F.prototype; | ||
["method", "field"].forEach(function (kind) { | ||
elements.forEach(function (element) { | ||
var placement = element.placement; | ||
if (element.kind === kind && (placement === "static" || placement === "prototype")) { | ||
var receiver = placement === "static" ? F : proto; | ||
_defineClassElement(receiver, element); | ||
} | ||
}); | ||
}); | ||
} | ||
function _initializeInstanceElements(O, elements) { | ||
["method", "field"].forEach(function (kind) { | ||
elements.forEach(function (element) { | ||
if (element.kind === kind && element.placement === "own") { | ||
_defineClassElement(O, element); | ||
} | ||
}); | ||
}); | ||
} | ||
function _defineClassElement(receiver, element) { | ||
var descriptor = element.descriptor; | ||
if (element.kind === "field") { | ||
var initializer = element.initializer; | ||
descriptor = { | ||
enumerable: descriptor.enumerable, | ||
writable: descriptor.writable, | ||
configurable: descriptor.configurable, | ||
value: initializer === void 0 ? void 0 : initializer.call(receiver) | ||
}; | ||
} | ||
Object.defineProperty(receiver, element.key, descriptor); | ||
} | ||
function _decorateClass(elements, decorators) { | ||
var newElements = []; | ||
var finishers = []; | ||
var placements = { | ||
static: [], | ||
prototype: [], | ||
own: [] | ||
}; | ||
elements.forEach(function (element) { | ||
_addElementPlacement(element, placements); | ||
}); | ||
elements.forEach(function (element) { | ||
if (!_hasDecorators(element)) return newElements.push(element); | ||
var elementFinishersExtras = _decorateElement(element, placements); | ||
newElements.push(elementFinishersExtras.element); | ||
newElements.push.apply(newElements, elementFinishersExtras.extras); | ||
finishers.push.apply(finishers, elementFinishersExtras.finishers); | ||
}); | ||
if (!decorators) { | ||
return { | ||
elements: newElements, | ||
finishers: finishers | ||
}; | ||
} | ||
var result = _decorateConstructor(newElements, decorators); | ||
finishers.push.apply(finishers, result.finishers); | ||
result.finishers = finishers; | ||
return result; | ||
} | ||
function _addElementPlacement(element, placements, silent) { | ||
var keys = placements[element.placement]; | ||
if (!silent && keys.indexOf(element.key) !== -1) { | ||
throw new TypeError("Duplicated element (" + element.key + ")"); | ||
} | ||
keys.push(element.key); | ||
} | ||
function _decorateElement(element, placements) { | ||
var extras = []; | ||
var finishers = []; | ||
for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { | ||
var keys = placements[element.placement]; | ||
keys.splice(keys.indexOf(element.key), 1); | ||
var elementObject = _fromElementDescriptor(element); | ||
var elementFinisherExtras = _toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); | ||
element = elementFinisherExtras.element; | ||
_addElementPlacement(element, placements); | ||
if (elementFinisherExtras.finisher) { | ||
finishers.push(elementFinisherExtras.finisher); | ||
} | ||
var newExtras = elementFinisherExtras.extras; | ||
if (newExtras) { | ||
for (var j = 0; j < newExtras.length; j++) { | ||
_addElementPlacement(newExtras[j], placements); | ||
} | ||
extras.push.apply(extras, newExtras); | ||
} | ||
} | ||
return { | ||
element: element, | ||
finishers: finishers, | ||
extras: extras | ||
}; | ||
} | ||
function _decorateConstructor(elements, decorators) { | ||
var finishers = []; | ||
for (var i = decorators.length - 1; i >= 0; i--) { | ||
var obj = _fromClassDescriptor(elements); | ||
var elementsAndFinisher = _toClassDescriptor((0, decorators[i])(obj) || obj); | ||
if (elementsAndFinisher.finisher !== undefined) { | ||
finishers.push(elementsAndFinisher.finisher); | ||
} | ||
if (elementsAndFinisher.elements !== undefined) { | ||
elements = elementsAndFinisher.elements; | ||
for (var j = 0; j < elements.length - 1; j++) { | ||
for (var k = j + 1; k < elements.length; k++) { | ||
if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { | ||
throw new TypeError("Duplicated element (" + elements[j].key + ")"); | ||
} | ||
} | ||
} | ||
} | ||
} | ||
return { | ||
elements: elements, | ||
finishers: finishers | ||
}; | ||
} | ||
function _fromElementDescriptor(element) { | ||
var obj = { | ||
kind: element.kind, | ||
key: element.key, | ||
placement: element.placement, | ||
descriptor: element.descriptor | ||
}; | ||
var desc = { | ||
value: "Descriptor", | ||
configurable: true | ||
}; | ||
Object.defineProperty(obj, Symbol.toStringTag, desc); | ||
if (element.kind === "field") obj.initializer = element.initializer; | ||
return obj; | ||
} | ||
function _toElementDescriptors(elementObjects) { | ||
if (elementObjects === undefined) return; | ||
return toArray(elementObjects).map(function (elementObject) { | ||
var element = _toElementDescriptor(elementObject); | ||
_disallowProperty(elementObject, "finisher", "An element descriptor"); | ||
_disallowProperty(elementObject, "extras", "An element descriptor"); | ||
return element; | ||
}); | ||
} | ||
function _toElementDescriptor(elementObject) { | ||
var kind = String(elementObject.kind); | ||
if (kind !== "method" && kind !== "field") { | ||
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 + '"'); | ||
} | ||
var key = toPropertyKey(elementObject.key); | ||
var placement = String(elementObject.placement); | ||
if (placement !== "static" && placement !== "prototype" && placement !== "own") { | ||
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 + '"'); | ||
} | ||
var descriptor = elementObject.descriptor; | ||
_disallowProperty(elementObject, "elements", "An element descriptor"); | ||
var element = { | ||
kind: kind, | ||
key: key, | ||
placement: placement, | ||
descriptor: Object.assign({}, descriptor) | ||
}; | ||
if (kind !== "field") { | ||
_disallowProperty(elementObject, "initializer", "A method descriptor"); | ||
} else { | ||
_disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); | ||
_disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); | ||
_disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); | ||
element.initializer = elementObject.initializer; | ||
} | ||
return element; | ||
} | ||
function _toElementFinisherExtras(elementObject) { | ||
var element = _toElementDescriptor(elementObject); | ||
var finisher = _optionalCallableProperty(elementObject, "finisher"); | ||
var extras = _toElementDescriptors(elementObject.extras); | ||
return { | ||
element: element, | ||
finisher: finisher, | ||
extras: extras | ||
}; | ||
} | ||
function _fromClassDescriptor(elements) { | ||
var obj = { | ||
kind: "class", | ||
elements: elements.map(_fromElementDescriptor) | ||
}; | ||
var desc = { | ||
value: "Descriptor", | ||
configurable: true | ||
}; | ||
Object.defineProperty(obj, Symbol.toStringTag, desc); | ||
return obj; | ||
} | ||
function _toClassDescriptor(obj) { | ||
var kind = String(obj.kind); | ||
if (kind !== "class") { | ||
throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); | ||
} | ||
_disallowProperty(obj, "key", "A class descriptor"); | ||
_disallowProperty(obj, "placement", "A class descriptor"); | ||
_disallowProperty(obj, "descriptor", "A class descriptor"); | ||
_disallowProperty(obj, "initializer", "A class descriptor"); | ||
_disallowProperty(obj, "extras", "A class descriptor"); | ||
var finisher = _optionalCallableProperty(obj, "finisher"); | ||
var elements = _toElementDescriptors(obj.elements); | ||
return { | ||
elements: elements, | ||
finisher: finisher | ||
}; | ||
} | ||
function _disallowProperty(obj, name, objectType) { | ||
if (obj[name] !== undefined) { | ||
throw new TypeError(objectType + " can't have a ." + name + " property."); | ||
} | ||
} | ||
function _optionalCallableProperty(obj, name) { | ||
@@ -409,18 +398,2 @@ var value = obj[name]; | ||
return value; | ||
} | ||
function _runClassFinishers(constructor, finishers) { | ||
for (var i = 0; i < finishers.length; i++) { | ||
var newConstructor = (0, finishers[i])(constructor); | ||
if (newConstructor !== undefined) { | ||
if (typeof newConstructor !== "function") { | ||
throw new TypeError("Finishers must return a constructor."); | ||
} | ||
constructor = newConstructor; | ||
} | ||
} | ||
return constructor; | ||
} |
import defineProperty from "./defineProperty"; | ||
export default function _objectSpread(target) { | ||
for (var i = 1; i < arguments.length; i++) { | ||
var source = arguments[i] != null ? arguments[i] : {}; | ||
var ownKeys = Object.keys(source); | ||
if (i % 2) { | ||
var source = arguments[i] != null ? arguments[i] : {}; | ||
var ownKeys = Object.keys(source); | ||
if (typeof Object.getOwnPropertySymbols === 'function') { | ||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { | ||
return Object.getOwnPropertyDescriptor(source, sym).enumerable; | ||
})); | ||
if (typeof Object.getOwnPropertySymbols === 'function') { | ||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { | ||
return Object.getOwnPropertyDescriptor(source, sym).enumerable; | ||
})); | ||
} | ||
ownKeys.forEach(function (key) { | ||
defineProperty(target, key, source[key]); | ||
}); | ||
} else { | ||
Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); | ||
} | ||
ownKeys.forEach(function (key) { | ||
defineProperty(target, key, source[key]); | ||
}); | ||
} | ||
@@ -17,0 +21,0 @@ |
@@ -5,14 +5,18 @@ var defineProperty = require("./defineProperty"); | ||
for (var i = 1; i < arguments.length; i++) { | ||
var source = arguments[i] != null ? arguments[i] : {}; | ||
var ownKeys = Object.keys(source); | ||
if (i % 2) { | ||
var source = arguments[i] != null ? arguments[i] : {}; | ||
var ownKeys = Object.keys(source); | ||
if (typeof Object.getOwnPropertySymbols === 'function') { | ||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { | ||
return Object.getOwnPropertyDescriptor(source, sym).enumerable; | ||
})); | ||
if (typeof Object.getOwnPropertySymbols === 'function') { | ||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { | ||
return Object.getOwnPropertyDescriptor(source, sym).enumerable; | ||
})); | ||
} | ||
ownKeys.forEach(function (key) { | ||
defineProperty(target, key, source[key]); | ||
}); | ||
} else { | ||
Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); | ||
} | ||
ownKeys.forEach(function (key) { | ||
defineProperty(target, key, source[key]); | ||
}); | ||
} | ||
@@ -19,0 +23,0 @@ |
{ | ||
"name": "@babel/runtime", | ||
"version": "7.2.0", | ||
"version": "7.3.0", | ||
"description": "babel's modular runtime helpers", | ||
@@ -13,3 +13,6 @@ "license": "MIT", | ||
"regenerator-runtime": "^0.12.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/helpers": "^7.3.0" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
85474
140
2314
0
1