shallowequal.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = _default;
  7. var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
  8. var _vue = require("vue");
  9. function shallowEqual(objA, objB, compare, compareContext) {
  10. var ret = compare ? compare.call(compareContext, objA, objB) : void 0;
  11. if (ret !== void 0) {
  12. return !!ret;
  13. }
  14. if (objA === objB) {
  15. return true;
  16. }
  17. if ((0, _typeof2.default)(objA) !== 'object' || !objA || (0, _typeof2.default)(objB) !== 'object' || !objB) {
  18. return false;
  19. }
  20. var keysA = Object.keys(objA);
  21. var keysB = Object.keys(objB);
  22. if (keysA.length !== keysB.length) {
  23. return false;
  24. }
  25. var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
  26. // Test for A's keys different from B.
  27. for (var idx = 0; idx < keysA.length; idx++) {
  28. var key = keysA[idx];
  29. if (!bHasOwnProperty(key)) {
  30. return false;
  31. }
  32. var valueA = objA[key];
  33. var valueB = objB[key];
  34. ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;
  35. if (ret === false || ret === void 0 && valueA !== valueB) {
  36. return false;
  37. }
  38. }
  39. return true;
  40. }
  41. function _default(value, other, customizer, thisArg) {
  42. return shallowEqual((0, _vue.toRaw)(value), (0, _vue.toRaw)(other), customizer, thisArg);
  43. }