dom-expressions 0.32.8 → 0.32.11

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.
Files changed (2) hide show
  1. package/package.json +3 -3
  2. package/src/server.js +13 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dom-expressions",
3
3
  "description": "A Fine-Grained Runtime for Performant DOM Rendering",
4
- "version": "0.32.8",
4
+ "version": "0.32.11",
5
5
  "author": "Ryan Carniato",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -20,7 +20,7 @@
20
20
  "devalue": "^2.0.1"
21
21
  },
22
22
  "devDependencies": {
23
- "babel-plugin-jsx-dom-expressions": "^0.32.8"
23
+ "babel-plugin-jsx-dom-expressions": "^0.32.11"
24
24
  },
25
- "gitHead": "eb04f05afe9f5509132b9734b19d804aed55562f"
25
+ "gitHead": "d4b76380fe65699d7d57b99df26247ddf56561f5"
26
26
  }
package/src/server.js CHANGED
@@ -428,7 +428,19 @@ function injectScripts(html, scripts, nonce) {
428
428
  }
429
429
 
430
430
  function serializeError(error) {
431
- return error.message ? `new Error(${devalue(error.message)})` : devalue(error);
431
+ if (error.message) {
432
+ const fields = {};
433
+ const keys = Object.getOwnPropertyNames(error);
434
+ for (let i = 0; i < keys.length; i++) {
435
+ const key = keys[i];
436
+ const value = error[key];
437
+ if (!value || (key !== "message" && typeof value !== "function")) {
438
+ fields[key] = value;
439
+ }
440
+ }
441
+ return `Object.assign(new Error(${devalue(error.message)}), ${devalue(fields)})`;
442
+ }
443
+ return devalue(error);
432
444
  }
433
445
 
434
446
  function waitForFragments(registry, key) {