bunshin-clone 1.4.2 → 1.4.3

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/index.cjs CHANGED
@@ -30,10 +30,9 @@ function clone(source, options, refs) {
30
30
  const result = Object.create(Object.getPrototypeOf(source));
31
31
  refs.set(source, result);
32
32
  for (const key in source) {
33
- if (!HAS_OWN.call(source, key) || isUnsafeKey(key)) {
34
- continue;
33
+ if (HAS_OWN.call(source, key) && !isUnsafeKey(key)) {
34
+ result[key] = clone(source[key], settings, refs);
35
35
  }
36
- result[key] = clone(source[key], settings, refs);
37
36
  }
38
37
  return result;
39
38
  }
@@ -119,14 +118,15 @@ function cloneError(source, settings, refs) {
119
118
  if (source instanceof DOMException) {
120
119
  return result;
121
120
  }
122
- if (source.stack) {
121
+ const { stack, cause } = source;
122
+ if (stack) {
123
123
  try {
124
- result.stack = source.stack;
124
+ result.stack = stack;
125
125
  } catch {
126
126
  }
127
127
  }
128
- if ("cause" in source && source.cause !== void 0) {
129
- result.cause = clone(source.cause, settings, refs);
128
+ if ("cause" in source && cause !== void 0) {
129
+ result.cause = clone(cause, settings, refs);
130
130
  }
131
131
  for (const key of Object.keys(source)) {
132
132
  Reflect.set(result, key, clone(Reflect.get(source, key), settings, refs));
package/dist/index.js CHANGED
@@ -28,10 +28,9 @@ function clone(source, options, refs) {
28
28
  const result = Object.create(Object.getPrototypeOf(source));
29
29
  refs.set(source, result);
30
30
  for (const key in source) {
31
- if (!HAS_OWN.call(source, key) || isUnsafeKey(key)) {
32
- continue;
31
+ if (HAS_OWN.call(source, key) && !isUnsafeKey(key)) {
32
+ result[key] = clone(source[key], settings, refs);
33
33
  }
34
- result[key] = clone(source[key], settings, refs);
35
34
  }
36
35
  return result;
37
36
  }
@@ -117,14 +116,15 @@ function cloneError(source, settings, refs) {
117
116
  if (source instanceof DOMException) {
118
117
  return result;
119
118
  }
120
- if (source.stack) {
119
+ const { stack, cause } = source;
120
+ if (stack) {
121
121
  try {
122
- result.stack = source.stack;
122
+ result.stack = stack;
123
123
  } catch {
124
124
  }
125
125
  }
126
- if ("cause" in source && source.cause !== void 0) {
127
- result.cause = clone(source.cause, settings, refs);
126
+ if ("cause" in source && cause !== void 0) {
127
+ result.cause = clone(cause, settings, refs);
128
128
  }
129
129
  for (const key of Object.keys(source)) {
130
130
  Reflect.set(result, key, clone(Reflect.get(source, key), settings, refs));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bunshin-clone",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "description": "High-performance deep clone utility with descriptor support",
5
5
  "keywords": [
6
6
  "array",