browser(firefox-stable): merge do not use Array.prototype.toJSON for serialization (#6783)

This commit is contained in:
Yury Semikhatsky 2021-05-27 23:37:13 +00:00 committed by GitHub
parent c8ee008aa1
commit 2f36feefc8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 7 deletions

View file

@ -1,2 +1,2 @@
1256
Changed: max@schmitt.mx Thu May 20 19:04:31 UTC 2021
1257
Changed: yurys@chromium.org Thu 27 May 2021 04:34:23 PM PDT

View file

@ -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() {