objectSpread2.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import _Object$defineProperty from "../../core-js/object/define-property";
  2. import _Object$defineProperties from "../../core-js/object/define-properties";
  3. import _Object$getOwnPropertyDescriptors from "../../core-js/object/get-own-property-descriptors";
  4. import _forEachInstanceProperty from "../../core-js/instance/for-each";
  5. import _Object$getOwnPropertyDescriptor from "../../core-js/object/get-own-property-descriptor";
  6. import _filterInstanceProperty from "../../core-js/instance/filter";
  7. import _Object$getOwnPropertySymbols from "../../core-js/object/get-own-property-symbols";
  8. import _Object$keys from "../../core-js/object/keys";
  9. import defineProperty from "./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. export default 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. }