diff options
| -rw-r--r-- | ext/js/core.js | 13 | ||||
| -rw-r--r-- | ext/js/templates/sandbox/template-renderer-frame-api.js | 9 | ||||
| -rw-r--r-- | test/test-anki-note-builder.js | 9 | 
3 files changed, 21 insertions, 10 deletions
| diff --git a/ext/js/core.js b/ext/js/core.js index 16d81b67..c43d7828 100644 --- a/ext/js/core.js +++ b/ext/js/core.js @@ -23,12 +23,15 @@  function serializeError(error) {      try {          if (typeof error === 'object' && error !== null) { -            return { +            const result = {                  name: error.name,                  message: error.message, -                stack: error.stack, -                data: error.data +                stack: error.stack              }; +            if (Object.prototype.hasOwnProperty.call(error, 'data')) { +                result.data = error.data; +            } +            return result;          }      } catch (e) {          // NOP @@ -51,7 +54,9 @@ function deserializeError(serializedError) {      const error = new Error(serializedError.message);      error.name = serializedError.name;      error.stack = serializedError.stack; -    error.data = serializedError.data; +    if (Object.prototype.hasOwnProperty.call(serializedError, 'data')) { +        error.data = serializedError.data; +    }      return error;  } diff --git a/ext/js/templates/sandbox/template-renderer-frame-api.js b/ext/js/templates/sandbox/template-renderer-frame-api.js index f234c8e0..af83425b 100644 --- a/ext/js/templates/sandbox/template-renderer-frame-api.js +++ b/ext/js/templates/sandbox/template-renderer-frame-api.js @@ -72,12 +72,15 @@ class TemplateRendererFrameApi {      _serializeError(error) {          try {              if (typeof error === 'object' && error !== null) { -                return { +                const result = {                      name: error.name,                      message: error.message, -                    stack: error.stack, -                    data: error.data +                    stack: error.stack                  }; +                if (Object.prototype.hasOwnProperty.call(error, 'data')) { +                    result.data = error.data; +                } +                return result;              }          } catch (e) {              // NOP diff --git a/test/test-anki-note-builder.js b/test/test-anki-note-builder.js index 45087134..2e4beb21 100644 --- a/test/test-anki-note-builder.js +++ b/test/test-anki-note-builder.js @@ -92,12 +92,15 @@ async function createVM() {          _serializeError(error) {              try {                  if (typeof error === 'object' && error !== null) { -                    return { +                    const result = {                          name: error.name,                          message: error.message, -                        stack: error.stack, -                        data: error.data +                        stack: error.stack                      }; +                    if (Object.prototype.hasOwnProperty.call(error, 'data')) { +                        result.data = error.data; +                    } +                    return result;                  }              } catch (e) {                  // NOP |