1
0
mirror of https://github.com/dart-lang/sdk synced 2024-07-03 00:08:46 +00:00

[dart:html] Update console interface

Closes https://github.com/dart-lang/sdk/issues/42213

Adds nullability to Console, adds missing methods and cleans
cleans existing ones up, and removes a stale template. Most
modifications are derived from https://console.spec.whatwg.org/
and the rest are derived from the MDN.

Change-Id: I26a099b15e53a4748afb61c7532bdbf64d7c4d6e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151091
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
This commit is contained in:
Srujan Gaddam 2020-06-30 23:32:27 +00:00 committed by commit-bot@chromium.org
parent fc1999de15
commit ff8f128a76
5 changed files with 117 additions and 145 deletions

View File

@ -52,6 +52,10 @@
This change will only affect code using sound null-safety. See issue
[#41653][] for more details.
* Methods in `Console` have been updated to better reflect the modern Console
specification. Particularly of interest are `dir` and `table` which take in
extra optional arguments.
[#41653]: https://github.com/dart-lang/sdk/issues/41653
### Tools

View File

@ -39846,72 +39846,96 @@ class Console {
MemoryInfo? get memory =>
_isConsoleDefined ? JS('MemoryInfo', 'window.console.memory') : null;
void assertCondition(bool condition, Object arg) => _isConsoleDefined
? JS('void', 'window.console.assertCondition(#, #)', condition, arg)
// Even though many of the following JS methods can take in multiple
// arguments, we historically and currently limit the number of variable
// arguments to 1. Depending on the need, these methods may be updated to
// allow for more.
// We rename assert to assertCondition here.
void assertCondition([bool? condition, Object? arg]) => _isConsoleDefined
? JS('void', 'window.console.assert(#, #)', condition, arg)
: null;
void clear(Object arg) =>
// clear no longer takes in an argument, but we keep this as optional to
// maintain backwards compatibility.
void clear([Object? arg]) =>
_isConsoleDefined ? JS('void', 'window.console.clear(#)', arg) : null;
void count(Object arg) =>
// count takes in a String instead, but we keep this as an Object for
// backwards compatibility.
void count([Object? arg]) =>
_isConsoleDefined ? JS('void', 'window.console.count(#)', arg) : null;
void debug(Object arg) =>
void countReset([String? arg]) => _isConsoleDefined
? JS('void', 'window.console.countReset(#)', arg)
: null;
void debug(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.debug(#)', arg) : null;
void dir(Object arg) =>
_isConsoleDefined ? JS('void', 'window.console.dir(#)', arg) : null;
void dir([Object? item, Object? options]) => _isConsoleDefined
? JS('void', 'window.console.dir(#, #)', item, options)
: null;
void dirxml(Object arg) =>
void dirxml(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.dirxml(#)', arg) : null;
void error(Object arg) =>
void error(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.error(#)', arg) : null;
void group(Object arg) =>
void group(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.group(#)', arg) : null;
void groupCollapsed(Object arg) => _isConsoleDefined
void groupCollapsed(Object? arg) => _isConsoleDefined
? JS('void', 'window.console.groupCollapsed(#)', arg)
: null;
void groupEnd() =>
_isConsoleDefined ? JS('void', 'window.console.groupEnd()') : null;
void info(Object arg) =>
void info(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.info(#)', arg) : null;
void log(Object arg) =>
void log(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.log(#)', arg) : null;
void markTimeline(Object arg) => _isConsoleDefined
? JS('void', 'window.console.markTimeline(#)', arg)
void table([Object? tabularData, List<String>? properties]) =>
_isConsoleDefined
? JS('void', 'window.console.table(#, #)', tabularData, properties)
: null;
void time([String? label]) =>
_isConsoleDefined ? JS('void', 'window.console.time(#)', label) : null;
void timeEnd([String? label]) =>
_isConsoleDefined ? JS('void', 'window.console.timeEnd(#)', label) : null;
void timeLog([String? label, Object? arg]) => _isConsoleDefined
? JS('void', 'window.console.timeLog(#, #)', label, arg)
: null;
void profile(String title) =>
void trace(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.trace(#)', arg) : null;
void warn(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.warn(#)', arg) : null;
// The following are non-standard methods.
void profile([String? title]) =>
_isConsoleDefined ? JS('void', 'window.console.profile(#)', title) : null;
void profileEnd(String title) => _isConsoleDefined
void profileEnd([String? title]) => _isConsoleDefined
? JS('void', 'window.console.profileEnd(#)', title)
: null;
void table(Object arg) =>
_isConsoleDefined ? JS('void', 'window.console.table(#)', arg) : null;
void time(String title) =>
_isConsoleDefined ? JS('void', 'window.console.time(#)', title) : null;
void timeEnd(String title) =>
_isConsoleDefined ? JS('void', 'window.console.timeEnd(#)', title) : null;
void timeStamp(Object arg) =>
void timeStamp([Object? arg]) =>
_isConsoleDefined ? JS('void', 'window.console.timeStamp(#)', arg) : null;
void trace(Object arg) =>
_isConsoleDefined ? JS('void', 'window.console.trace(#)', arg) : null;
void warn(Object arg) =>
_isConsoleDefined ? JS('void', 'window.console.warn(#)', arg) : null;
// The following is deprecated and should be removed once we drop support for
// older Safari browsers.
void markTimeline(Object? arg) => _isConsoleDefined
? JS('void', 'window.console.markTimeline(#)', arg)
: null;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a

View File

@ -39,6 +39,7 @@ _js_custom_members = monitored.Set(
'ConsoleBase.assertCondition',
'ConsoleBase.clear',
'ConsoleBase.count',
'ConsoleBase.countReset',
'ConsoleBase.debug',
'ConsoleBase.dir',
'ConsoleBase.dirxml',

View File

@ -13,70 +13,94 @@ class Console {
MemoryInfo? get memory =>
_isConsoleDefined ? JS('MemoryInfo', 'window.console.memory') : null;
void assertCondition(bool condition, Object arg) => _isConsoleDefined
? JS('void', 'window.console.assertCondition(#, #)', condition, arg)
// Even though many of the following JS methods can take in multiple
// arguments, we historically and currently limit the number of variable
// arguments to 1. Depending on the need, these methods may be updated to
// allow for more.
// We rename assert to assertCondition here.
void assertCondition([bool? condition, Object? arg]) => _isConsoleDefined
? JS('void', 'window.console.assert(#, #)', condition, arg)
: null;
void clear(Object arg) =>
// clear no longer takes in an argument, but we keep this as optional to
// maintain backwards compatibility.
void clear([Object? arg]) =>
_isConsoleDefined ? JS('void', 'window.console.clear(#)', arg) : null;
void count(Object arg) =>
// count takes in a String instead, but we keep this as an Object for
// backwards compatibility.
void count([Object? arg]) =>
_isConsoleDefined ? JS('void', 'window.console.count(#)', arg) : null;
void debug(Object arg) =>
void countReset([String? arg]) => _isConsoleDefined
? JS('void', 'window.console.countReset(#)', arg)
: null;
void debug(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.debug(#)', arg) : null;
void dir(Object arg) =>
_isConsoleDefined ? JS('void', 'window.console.dir(#)', arg) : null;
void dir([Object? item, Object? options]) => _isConsoleDefined
? JS('void', 'window.console.dir(#, #)', item, options)
: null;
void dirxml(Object arg) =>
void dirxml(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.dirxml(#)', arg) : null;
void error(Object arg) =>
void error(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.error(#)', arg) : null;
void group(Object arg) =>
void group(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.group(#)', arg) : null;
void groupCollapsed(Object arg) => _isConsoleDefined
void groupCollapsed(Object? arg) => _isConsoleDefined
? JS('void', 'window.console.groupCollapsed(#)', arg)
: null;
void groupEnd() =>
_isConsoleDefined ? JS('void', 'window.console.groupEnd()') : null;
void info(Object arg) =>
void info(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.info(#)', arg) : null;
void log(Object arg) =>
void log(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.log(#)', arg) : null;
void markTimeline(Object arg) => _isConsoleDefined
? JS('void', 'window.console.markTimeline(#)', arg)
void table([Object? tabularData, List<String>? properties]) =>
_isConsoleDefined
? JS('void', 'window.console.table(#, #)', tabularData, properties)
: null;
void time([String? label]) =>
_isConsoleDefined ? JS('void', 'window.console.time(#)', label) : null;
void timeEnd([String? label]) =>
_isConsoleDefined ? JS('void', 'window.console.timeEnd(#)', label) : null;
void timeLog([String? label, Object? arg]) => _isConsoleDefined
? JS('void', 'window.console.timeLog(#, #)', label, arg)
: null;
void profile(String title) =>
void trace(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.trace(#)', arg) : null;
void warn(Object? arg) =>
_isConsoleDefined ? JS('void', 'window.console.warn(#)', arg) : null;
// The following are non-standard methods.
void profile([String? title]) =>
_isConsoleDefined ? JS('void', 'window.console.profile(#)', title) : null;
void profileEnd(String title) => _isConsoleDefined
void profileEnd([String? title]) => _isConsoleDefined
? JS('void', 'window.console.profileEnd(#)', title)
: null;
void table(Object arg) =>
_isConsoleDefined ? JS('void', 'window.console.table(#)', arg) : null;
void time(String title) =>
_isConsoleDefined ? JS('void', 'window.console.time(#)', title) : null;
void timeEnd(String title) =>
_isConsoleDefined ? JS('void', 'window.console.timeEnd(#)', title) : null;
void timeStamp(Object arg) =>
void timeStamp([Object? arg]) =>
_isConsoleDefined ? JS('void', 'window.console.timeStamp(#)', arg) : null;
void trace(Object arg) =>
_isConsoleDefined ? JS('void', 'window.console.trace(#)', arg) : null;
void warn(Object arg) =>
_isConsoleDefined ? JS('void', 'window.console.warn(#)', arg) : null;
// The following is deprecated and should be removed once we drop support for
// older Safari browsers.
void markTimeline(Object? arg) => _isConsoleDefined
? JS('void', 'window.console.markTimeline(#)', arg)
: null;
}

View File

@ -1,81 +0,0 @@
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
part of $LIBRARYNAME;
$(ANNOTATIONS)$(CLASS_MODIFIERS)class Console {
const Console._safe();
static const Console _safeConsole = const Console._safe();
bool get _isConsoleDefined => JS('bool', 'typeof console != "undefined"');
MemoryInfo get memory => _isConsoleDefined ?
JS('MemoryInfo', 'console.memory') : null;
void assertCondition(bool condition, Object arg) => _isConsoleDefined ?
JS('void', 'console.assertCondition(#, #)', condition, arg) : null;
void clear(Object arg) => _isConsoleDefined ?
JS('void', 'console.clear(#)', arg) : null;
void count(Object arg) => _isConsoleDefined ?
JS('void', 'console.count(#)', arg) : null;
void debug(Object arg) => _isConsoleDefined ?
JS('void', 'console.debug(#)', arg) : null;
void dir(Object arg) => _isConsoleDefined ?
JS('void', 'console.dir(#)', arg) : null;
void dirxml(Object arg) => _isConsoleDefined ?
JS('void', 'console.dirxml(#)', arg) : null;
void error(Object arg) => _isConsoleDefined ?
JS('void', 'console.error(#)', arg) : null;
void group(Object arg) => _isConsoleDefined ?
JS('void', 'console.group(#)', arg) : null;
void groupCollapsed(Object arg) => _isConsoleDefined ?
JS('void', 'console.groupCollapsed(#)', arg) : null;
void groupEnd() => _isConsoleDefined ?
JS('void', 'console.groupEnd()') : null;
void info(Object arg) => _isConsoleDefined ?
JS('void', 'console.info(#)', arg) : null;
void log(Object arg) => _isConsoleDefined ?
JS('void', 'console.log(#)', arg) : null;
void markTimeline(Object arg) => _isConsoleDefined ?
JS('void', 'console.markTimeline(#)', arg) : null;
void profile(String title) => _isConsoleDefined ?
JS('void', 'console.profile(#)', title) : null;
void profileEnd(String title) => _isConsoleDefined ?
JS('void', 'console.profileEnd(#)', title) : null;
void table(Object arg) => _isConsoleDefined ?
JS('void', 'console.table(#)', arg) : null;
void time(String title) => _isConsoleDefined ?
JS('void', 'console.time(#)', title) : null;
void timeEnd(String title) => _isConsoleDefined ?
JS('void', 'console.timeEnd(#)', title) : null;
void timeStamp(Object arg) => _isConsoleDefined ?
JS('void', 'console.timeStamp(#)', arg) : null;
void trace(Object arg) => _isConsoleDefined ?
JS('void', 'console.trace(#)', arg) : null;
void warn(Object arg) => _isConsoleDefined ?
JS('void', 'console.warn(#)', arg) : null;
$!MEMBERS
}