objectSpread2.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. var _Object$defineProperty = require("../core-js/object/define-property");
  2. var _Object$defineProperties = require("../core-js/object/define-properties");
  3. var _Object$getOwnPropertyDescriptors = require("../core-js/object/get-own-property-descriptors");
  4. var _forEachInstanceProperty = require("../core-js/instance/for-each");
  5. var _Object$getOwnPropertyDescriptor = require("../core-js/object/get-own-property-descriptor");
  6. var _filterInstanceProperty = require("../core-js/instance/filter");
  7. var _Object$getOwnPropertySymbols = require("../core-js/object/get-own-property-symbols");
  8. var _Object$keys = require("../core-js/object/keys");
  9. var defineProperty = require("./defineProperty");
  10. function ownKeys(object, enumerableOnly) {
  11. var keys = _Object$keys(object);
  12. if (_Object$getOwnPropertySymbols) {
  13. var symbols = _Object$getOwnPropertySymbols(object);
  14. if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) {
  15. return _Object$getOwnPropertyDescriptor(object, sym).enumerable;
  16. });
  17. keys.push.apply(keys, symbols);
  18. }
  19. return keys;
  20. }
  21. function _objectSpread2(target) {
  22. for (var i = 1; i < arguments.length; i++) {
  23. var source = arguments[i] != null ? arguments[i] : {};
  24. if (i % 2) {
  25. var _context;
  26. _forEachInstanceProperty(_context = ownKeys(Object(source), true)).call(_context, function (key) {
  27. defineProperty(target, key, source[key]);
  28. });
  29. } else if (_Object$getOwnPropertyDescriptors) {
  30. _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source));
  31. } else {
  32. var _context2;
  33. _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) {
  34. _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key));
  35. });
  36. }
  37. }
  38. return target;
  39. }
  40. module.exports = _objectSpread2;