From a873b14df1f425eca644a89487b0dc348fe3ba5b Mon Sep 17 00:00:00 2001 From: Jacob Richman <jacobr@google.com> Date: Wed, 14 Dec 2016 15:14:41 -0800 Subject: [PATCH] Support source maps in precompiled mode and support extended source maps. BUG= R=nweiz@google.com Review URL: https://codereview.chromium.org//2557183002 . --- CHANGELOG.md | 4 ++++ lib/src/runner/browser/platform.dart | 13 +++++++++++++ lib/src/util/stack_trace_mapper.dart | 10 +++++----- pubspec.yaml | 6 +++--- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8daef339..adeab179 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.12.17+3 + +* Internal changes only. + ## 0.12.17+2 * Fix Dartium debugging on Windows. diff --git a/lib/src/runner/browser/platform.dart b/lib/src/runner/browser/platform.dart index 23968c66..31dc749d 100644 --- a/lib/src/runner/browser/platform.dart +++ b/lib/src/runner/browser/platform.dart @@ -241,6 +241,19 @@ class BrowserPlatform extends PlatformPlugin { if (browser.isJS) { if (_precompiled(suiteConfig, path)) { if (_precompiledPaths.add(suiteConfig.precompiledPath)) { + if (!suiteConfig.jsTrace) { + var jsPath = p.join(suiteConfig.precompiledPath, + p.relative(path + ".browser_test.dart.js", from: _root)); + + var sourceMapPath = '${jsPath}.map'; + if (new File(sourceMapPath).existsSync()) { + _mappers[path] = new StackTraceMapper( + new File(sourceMapPath).readAsStringSync(), + mapUrl: p.toUri(sourceMapPath), + packageResolver: await PackageResolver.current.asSync, + sdkRoot: p.toUri(sdkDir)); + } + } _precompiledCascade ??= new shelf.Cascade(); _precompiledCascade = _precompiledCascade.add( createStaticHandler(suiteConfig.precompiledPath)); diff --git a/lib/src/util/stack_trace_mapper.dart b/lib/src/util/stack_trace_mapper.dart index 04390fad..2299f470 100644 --- a/lib/src/util/stack_trace_mapper.dart +++ b/lib/src/util/stack_trace_mapper.dart @@ -17,11 +17,11 @@ class StackTraceMapper { /// The URI of the SDK root from which dart2js loaded its sources. final Uri _sdkRoot; - StackTraceMapper(String contents, {Uri mapUrl, - SyncPackageResolver packageResolver, Uri sdkRoot}) - : _mapping = parse(contents, mapUrl: mapUrl), - _packageResolver = packageResolver, - _sdkRoot = sdkRoot; + StackTraceMapper(String contents, + {Uri mapUrl, SyncPackageResolver packageResolver, Uri sdkRoot}) + : _mapping = parseExtended(contents, mapUrl: mapUrl), + _packageResolver = packageResolver, + _sdkRoot = sdkRoot; /// Converts [trace] into a Dart stack trace. StackTrace mapStackTrace(StackTrace trace) => diff --git a/pubspec.yaml b/pubspec.yaml index 6095ac4d..df8f9fa6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: test -version: 0.12.17+2 +version: 0.12.17+3 author: Dart Team <misc@dartlang.org> description: A library for writing dart unit tests. homepage: https://github.com/dart-lang/test @@ -22,8 +22,8 @@ dependencies: shelf_packages_handler: '^1.0.0' shelf_static: '^0.2.0' shelf_web_socket: '^0.2.0' - source_map_stack_trace: '^1.1.0' - source_maps: '^0.10.1' + source_map_stack_trace: '^1.1.4' + source_maps: '^0.10.2' source_span: '^1.0.0' stack_trace: '^1.2.1' stream_channel: '^1.3.1' -- GitLab