From 67362ce5e080abd603441c918dba0572c64692df Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Tue, 18 Feb 2020 11:28:02 -0800 Subject: [PATCH] [flutter_tools] fix debug stack traces (#50872) --- dev/integration_tests/web/lib/stack_trace.dart | 18 +++++++++--------- .../flutter_tools/lib/src/web/bootstrap.dart | 12 +++++++++++- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/dev/integration_tests/web/lib/stack_trace.dart b/dev/integration_tests/web/lib/stack_trace.dart index fd4e1d1e73..94ea1bbd2c 100644 --- a/dev/integration_tests/web/lib/stack_trace.dart +++ b/dev/integration_tests/web/lib/stack_trace.dart @@ -33,9 +33,9 @@ const List expectedDebugStackFrames = [ number: -1, packageScheme: 'package', package: 'web_integration', - packagePath: 'stack_trace.dart.lib.js', - line: 138, - column: 15, + packagePath: 'stack_trace.dart', + line: 121, + column: 3, className: '', method: 'baz', source: '', @@ -44,9 +44,9 @@ const List expectedDebugStackFrames = [ number: -1, packageScheme: 'package', package: 'web_integration', - packagePath: 'stack_trace.dart.lib.js', - line: 135, - column: 17, + packagePath: 'stack_trace.dart', + line: 116, + column: 3, className: '', method: 'bar', source: '', @@ -55,9 +55,9 @@ const List expectedDebugStackFrames = [ number: -1, packageScheme: 'package', package: 'web_integration', - packagePath: 'stack_trace.dart.lib.js', - line: 132, - column: 17, + packagePath: 'stack_trace.dart', + line: 111, + column: 3, className: '', method: 'foo', source: '', diff --git a/packages/flutter_tools/lib/src/web/bootstrap.dart b/packages/flutter_tools/lib/src/web/bootstrap.dart index 9f2d95a57d..3d6f774909 100644 --- a/packages/flutter_tools/lib/src/web/bootstrap.dart +++ b/packages/flutter_tools/lib/src/web/bootstrap.dart @@ -194,7 +194,17 @@ define("main_module.bootstrap", ["$entrypoint", "dart_sdk"], function(app, dart_ function(url) { url = url.replace(baseUrl, '/'); var module = window.\$dartLoader.urlToModuleId.get(url); - if (!module) return null; + if (!module) { + if (url.endsWith('dart_sdk.js')) { + module = 'dart_sdk'; + } else { + try { + module = '/packages' + url.split('packages')[1].split('.')[0] + '.dart'; + } catch (e) { + return null; + } + } + } return dart.getSourceMap(module); }); }