From 7bc2f82011fb89086e01891c8138fb1c1958daa2 Mon Sep 17 00:00:00 2001 From: Jenny Messerly Date: Fri, 21 Dec 2018 02:05:53 +0000 Subject: [PATCH] [dartdevc] implement dart:developer via console logging dart:developer now logs commands using `console.debug`, so the data is available for use by the debugger. Change-Id: Ib3f3cfa7b099e44ea3c302cd4a91610b188169e2 Reviewed-on: https://dart-review.googlesource.com/c/87942 Reviewed-by: Jacob Richman Commit-Queue: Jacob Richman Commit-Queue: Jenny Messerly --- .../tool/input_sdk/patch/developer_patch.dart | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pkg/dev_compiler/tool/input_sdk/patch/developer_patch.dart b/pkg/dev_compiler/tool/input_sdk/patch/developer_patch.dart index a885aaed4d3..7d282692472 100644 --- a/pkg/dev_compiler/tool/input_sdk/patch/developer_patch.dart +++ b/pkg/dev_compiler/tool/input_sdk/patch/developer_patch.dart @@ -20,6 +20,9 @@ bool debugger({bool when = true, String message}) { @patch Object inspect(Object object) { + // Note: this log level does not show up by default in Chrome. + // This is used for communication with the debugger service. + JS('', 'console.debug("dart.developer.inspect", #)', object); return object; } @@ -32,7 +35,17 @@ void log(String message, Zone zone, Object error, StackTrace stackTrace}) { - // TODO. + Object items = + JS('!', '{ message: #, name: #, level: # }', message, name, level); + if (time != null) JS('', '#.time = #', items, time); + if (sequenceNumber != null) { + JS('', '#.sequenceNumber = #', items, sequenceNumber); + } + if (zone != null) JS('', '#.zone = #', items, zone); + if (error != null) JS('', '#.error = #', items, error); + if (stackTrace != null) JS('', '#.stackTrace = #', items, stackTrace); + + JS('', 'console.debug("dart.developer.log", #)', items); } final _extensions = Map(); @@ -45,11 +58,13 @@ ServiceExtensionHandler _lookupExtension(String method) { @patch _registerExtension(String method, ServiceExtensionHandler handler) { _extensions[method] = handler; + JS('', 'console.debug("dart.developer.registerExtension", #)', method); } @patch void _postEvent(String eventKind, String eventData) { - // TODO. + JS('', 'console.debug("dart.developer.postEvent", #, #)', eventKind, + eventData); } @patch