diff --git a/package.json b/package.json index a1ed51a86327..03bc07b86182 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,9 @@ "url": "git://github.com/getsentry/raven-js.git" }, "main": "src/singleton.js", + "dependencies": { + "json-stringify-safe": "^5.0.1" + }, "devDependencies": { "browserify-versionify": "^1.0.6", "bundle-collapser": "^1.2.1", diff --git a/src/raven.js b/src/raven.js index 7d6f8c217ef9..bf776b858a14 100644 --- a/src/raven.js +++ b/src/raven.js @@ -4,6 +4,7 @@ var TraceKit = require('../vendor/TraceKit/tracekit'); var RavenConfigError = require('./configError'); var utils = require('./utils'); +var stringify = require('json-stringify-safe'); var isFunction = utils.isFunction; var isUndefined = utils.isUndefined; @@ -428,7 +429,7 @@ Raven.prototype = { */ getContext: function() { // lol javascript - return JSON.parse(JSON.stringify(this._globalContext)); + return JSON.parse(stringify(this._globalContext)); }, /* @@ -1285,7 +1286,7 @@ Raven.prototype = { // NOTE: auth is intentionally sent as part of query string (NOT as custom // HTTP header) so as to avoid preflight CORS requests request.open('POST', url + '?' + urlencode(opts.auth)); - request.send(JSON.stringify(opts.data)); + request.send(stringify(opts.data)); }, // Note: this is shitty, but I can't figure out how to get