diff --git a/browser_patches/firefox/BUILD_NUMBER b/browser_patches/firefox/BUILD_NUMBER index 50abca2bdc..d9b2fa1c75 100644 --- a/browser_patches/firefox/BUILD_NUMBER +++ b/browser_patches/firefox/BUILD_NUMBER @@ -1,2 +1,2 @@ -1267 -Changed: lushnikov@chromium.org Thu 20 May 2021 03:27:19 PM PDT +1268 +Changed: yurys@chromium.org Wed 26 May 2021 03:35:57 PM PDT diff --git a/browser_patches/firefox/juggler/content/Runtime.js b/browser_patches/firefox/juggler/content/Runtime.js index 373fd5d497..5a37469510 100644 --- a/browser_patches/firefox/juggler/content/Runtime.js +++ b/browser_patches/firefox/juggler/content/Runtime.js @@ -294,18 +294,24 @@ class ExecutionContext { this._remoteObjects = new Map(); this._id = generateId(); this._auxData = auxData; - this._jsonStringifyObject = this._debuggee.executeInGlobal(`((stringify, dateProto, object) => { - const oldToJson = dateProto.toJSON; - dateProto.toJSON = undefined; + this._jsonStringifyObject = this._debuggee.executeInGlobal(`((stringify, object) => { + const oldToJson = Date.prototype.toJSON; + Date.prototype.toJSON = undefined; + const oldArrayToJson = Array.prototype.toJSON; + Array.prototype.toJSON = undefined; + let hasSymbol = false; const result = stringify(object, (key, value) => { if (typeof value === 'symbol') hasSymbol = true; return value; }); - dateProto.toJSON = oldToJson; + + Date.prototype.toJSON = oldToJson; + Array.prototype.toJSON = oldArrayToJson; + return hasSymbol ? undefined : result; - }).bind(null, JSON.stringify.bind(JSON), Date.prototype)`).return; + }).bind(null, JSON.stringify.bind(JSON))`).return; } id() {