fix(console): send console.trace to stderr with a "Trace:" prefix
What does this PR do?
Fixes #19952. console.trace() wrote its output to stdout with no prefix; Node writes to stderr prefixed with Trace:.
$ bun -e 'console.trace("hi")' # before
hi # ← stdout, no prefix
at [eval]:1:9
$ node -e 'console.trace("hi")'
Trace: hi # ← stderr, "Trace:" prefix
at [eval]:1:9
The native console handler (src/jsc/ConsoleObject.rs) only routed Warning/Error/Assert messages to the stderr writer, and never emitted a label for the Trace message type. This change routes Trace to the stderr writer (stream selection + color mode) and prints Trace: before the formatted arguments, or a bare Trace when called with no arguments — matching Node:
console.trace("hi") -> Trace: hi
console.trace("x=%d", 5) -> Trace: x=5
console.trace({a:1}) -> Trace: { a: 1 }
console.trace() -> Trace
The .zig reference sibling has the same gap; left untouched since it is not compiled.
How did you verify your code works?
Added console.trace tests in test/js/node/console/console.test.ts that spawn a subprocess and assert stdout is empty, stderr starts with Trace: hi\n / bare Trace\n (no-args) and contains the stack frames, plus format-specifier handling. Tests pass on the debug build and fail on the released bun (USE_SYSTEM_BUN=1). Existing console suites (console.test.ts, console-log.test.ts) still pass: 14 / 14.