From c2daecc07bf8771b50d4237495f1147dcb359090 Mon Sep 17 00:00:00 2001 From: "Julien Carion (juca)" Date: Wed, 13 Nov 2024 14:23:04 +0100 Subject: [PATCH] [FIX] devtools: don't evaluate getters at object stringification This commit prevents the serializer to evaluate object getters when it is trying to display an object in a reduced form. This would cause issues when a getter was returning an error instead of a value. --- .../src/page_scripts/owl_devtools_global_hook.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/devtools/src/page_scripts/owl_devtools_global_hook.js b/tools/devtools/src/page_scripts/owl_devtools_global_hook.js index 75841c08..3fbc3b5d 100644 --- a/tools/devtools/src/page_scripts/owl_devtools_global_hook.js +++ b/tools/devtools/src/page_scripts/owl_devtools_global_hook.js @@ -116,12 +116,17 @@ } else if (obj instanceof Number) { result[0] = obj.toString(); } else { - for (const [key, value] of Object.entries(obj)) { + for (const key of Reflect.ownKeys(obj)) { if (length > 25) { result.push("..."); break; } - const element = key + ": " + this.serializeItem(value); + let element; + if (Object.getOwnPropertyDescriptor(obj, key).hasOwnProperty("get")) { + element = key.toString() + ": (...)"; + } else { + element = key.toString() + ": " + this.serializeItem(obj[key]); + } length += element.length; result.push(element); }