From 6843bcd5ef8a9601911bcb4d398442ad27fd4f7f Mon Sep 17 00:00:00 2001 From: Ulugbek Abdullaev Date: Wed, 3 Dec 2025 14:43:43 +0100 Subject: [PATCH] tracer: fix stringifying arrays (#2353) issue: The Array.isArray(value) check at line 113 will never be reached because arrays are also objects in JavaScript. The earlier check at line 105 (typeof value === 'object') will catch arrays first and pass them to stringifyObj(), making the array-specific handling code unreachable. --- extensions/copilot/src/util/common/tracing.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/copilot/src/util/common/tracing.ts b/extensions/copilot/src/util/common/tracing.ts index 5ab848f1508..265d91b34a9 100644 --- a/extensions/copilot/src/util/common/tracing.ts +++ b/extensions/copilot/src/util/common/tracing.ts @@ -102,10 +102,6 @@ export class Tracer implements ITracer { return value; } - if (typeof value === 'object') { - return stringifyObj(value); - } - if (typeof value === 'function') { return value.name ? `[Function: ${value.name}]` : '[Function]'; } @@ -114,6 +110,10 @@ export class Tracer implements ITracer { return `[${value.map(v => this.stringify(v)).join(', ')}]`; } + if (typeof value === 'object') { + return stringifyObj(value); + } + const valueToString = value.toString(); if (valueToString && valueToString !== '[object Object]') { return valueToString;