Skip to content

Commit c4eb37a

Browse files
authored
Release v2.24.1 (#993)
1 parent b81488f commit c4eb37a

26 files changed

+174
-42
lines changed

dist/rollbar.js

+38-5
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,37 @@ function wrapCallback(logger, f) {
491491
};
492492
}
493493

494+
function nonCircularClone(obj) {
495+
var seen = [obj];
496+
497+
function clone(obj, seen) {
498+
var value, name, newSeen, result = {};
499+
500+
try {
501+
for (name in obj) {
502+
value = obj[name];
503+
504+
if (value && (isType(value, 'object') || isType(value, 'array'))) {
505+
if (seen.includes(value)) {
506+
result[name] = 'Removed circular reference: ' + typeName(value);
507+
} else {
508+
newSeen = seen.slice();
509+
newSeen.push(value);
510+
result[name] = clone(value, newSeen);
511+
}
512+
continue;
513+
}
514+
515+
result[name] = value;
516+
}
517+
} catch (e) {
518+
result = 'Failed cloning custom data: ' + e.message;
519+
}
520+
return result;
521+
}
522+
return clone(obj, seen);
523+
}
524+
494525
function createItem(args, logger, notifier, requestKeys, lambdaContext) {
495526
var message, err, custom, callback, request;
496527
var arg;
@@ -548,10 +579,12 @@ function createItem(args, logger, notifier, requestKeys, lambdaContext) {
548579
}
549580
}
550581

582+
// if custom is an array this turns it into an object with integer keys
583+
if (custom) custom = nonCircularClone(custom);
584+
551585
if (extraArgs.length > 0) {
552-
// if custom is an array this turns it into an object with integer keys
553-
custom = merge(custom);
554-
custom.extraArgs = extraArgs;
586+
if (!custom) custom = nonCircularClone({});
587+
custom.extraArgs = nonCircularClone(extraArgs);
555588
}
556589

557590
var item = {
@@ -596,7 +629,7 @@ function addErrorContext(item, errors) {
596629
try {
597630
for (var i = 0; i < errors.length; ++i) {
598631
if (errors[i].hasOwnProperty('rollbarContext')) {
599-
custom = merge(custom, errors[i].rollbarContext);
632+
custom = merge(custom, nonCircularClone(errors[i].rollbarContext));
600633
contextAdded = true;
601634
}
602635
}
@@ -4546,7 +4579,7 @@ module.exports = {
45464579

45474580

45484581
module.exports = {
4549-
version: '2.24.0',
4582+
version: '2.24.1',
45504583
endpoint: 'api.rollbar.com/api/1/item/',
45514584
logLevel: 'debug',
45524585
reportLevel: 'debug',

dist/rollbar.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.named-amd.js

+38-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.named-amd.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.named-amd.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.named-amd.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.noconflict.umd.js

+38-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.noconflict.umd.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.noconflict.umd.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rollbar.noconflict.umd.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)