v8/test/inspector/runtime/console-context-expected.txt
Benedikt Meurer 099cb420b9 [console] Proper type conversions in console builtins.
This updates the following set of console builtins in V8 to match the
Console Standard (https://console.spec.whatwg.org) with respect to
(potentially side effecting) type conversions:

  - console.debug
  - console.error
  - console.info
  - console.log
  - console.trace
  - console.warn
  - console.group
  - console.groupCollapsed
  - console.assert

The V8 implementation only performs the type conversions and updates
the arguments in-place with the results from the %String% constructor,
%parseInt%, or %parseFloat% invocations. The actual formatting is
still left completely to the debugger front-end.

To give a concrete example, the following code

```js
const msgFmt = {
  toString() { return 'Message %i' }
};
console.log('LOG: %s`, msgFmt, 42);
```

sends the following parameters to the debugger front-end

```js
["LOG: %s", "Message %i", 42]
```

and it's then the job of the front-end to perform the actual string
substitutions.

It's also worth calling out that the console builtins are only
concerned with %s, %f, %d, and %i formatting specifiers, since
these are the only ones that trigger type conversions, and %o, %O,
and %c can only be implemented in a meaningful way at a higher
level.

Fixed: chromium:1277944
Bug: chromium:1282076
Doc: https://bit.ly/v8-proper-console-type-conversions
Spec: https://console.spec.whatwg.org
Change-Id: I0996680811aa96236bd0d879e4a11101629ef1a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3352118
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78432}
2021-12-22 18:40:54 +00:00

83 lines
1.3 KiB
Plaintext

Tests console.context
Running test: testConsoleContextMethod
console.context description:
{
className : Function
description : function context() { [native code] }
objectId : <objectId>
type : function
}
console.context() methods:
[
[0] : assert
[1] : clear
[2] : count
[3] : countReset
[4] : debug
[5] : dir
[6] : dirXml
[7] : error
[8] : group
[9] : groupCollapsed
[10] : groupEnd
[11] : info
[12] : log
[13] : profile
[14] : profileEnd
[15] : table
[16] : time
[17] : timeEnd
[18] : timeLog
[19] : timeStamp
[20] : trace
[21] : warn
]
Running test: testDefaultConsoleContext
undefined
undefined
undefined
Running test: testAnonymousConsoleContext
anonymous#2
anonymous#3
anonymous#4
Running test: testNamedConsoleContext
named-context#6
named-context#6
named-context#6
Running test: testTwoConsoleContextsWithTheSameName
named-context#7
named-context#8
Running test: testConsoleCountInDifferentConsoleContexts
[
[0] : {
type : string
value : 239: 1
}
]
[
[0] : {
type : string
value : 239: 1
}
]
Running test: testConsoleCountForNamedConsoleContext
[
[0] : {
type : string
value : 239: 1
}
]
[
[0] : {
type : string
value : 239: 2
}
]