commit | f4bbbda4b32fb704d7eeec1d43b1948c8ebeed26 | [log] [tgz] |
---|---|---|
author | Jacob Richman <jacobr@google.com> | Wed Dec 14 22:37:01 2016 |
committer | Jacob Richman <jacobr@google.com> | Wed Dec 14 22:37:01 2016 |
tree | 5a1a77eb0baa70d934b5112f6a710676b6254b52 | |
parent | 662aa1a7890cc0f85eb677e622fe3bce0c63bc60 [diff] |
Support extended source maps. Pass stack frame uris to source map `Mapping` fixing bug where source map lookups occurred using the wrong file when using a extended source map bundle that specified file information. R=nweiz@google.com Review URL: https://codereview.chromium.org//2555223004 .
source_map_stack_trace
is a package for converting stack traces generated by dart2js-compiled JavaScript code into readable native Dart stack traces using source maps. For example:
import 'package:source_map_stack_trace/source_map_stack_trace.dart'; void main() { var jsTrace = // Get a StackTrace generated by dart2js. var mapping = // Get a source map mapping the JS to the Dart source. // Convert jsTrace to refer to the Dart source instead. var dartTrace = mapStackTrace(jsTrace, sourceMap); print(dartTrace); }
This can convert the following JavaScript trace:
expect_async_test.dart.browser_test.dart.js 2636:15 dart.wrapException expect_async_test.dart.browser_test.dart.js 14661:15 main__closure16.call$0 expect_async_test.dart.browser_test.dart.js 18237:26 Declarer_test__closure.call$1 expect_async_test.dart.browser_test.dart.js 17905:23 StackZoneSpecification_registerUnaryCallback__closure.call$0 expect_async_test.dart.browser_test.dart.js 17876:16 StackZoneSpecification._stack_zone_specification$_run$2 expect_async_test.dart.browser_test.dart.js 17899:26 StackZoneSpecification_registerUnaryCallback_closure.call$1 expect_async_test.dart.browser_test.dart.js 6115:16 _rootRunUnary expect_async_test.dart.browser_test.dart.js 8576:39 _CustomZone.runUnary$2 expect_async_test.dart.browser_test.dart.js 7135:57 _Future__propagateToListeners_handleValueCallback.call$0 expect_async_test.dart.browser_test.dart.js 7031:147 dart._Future.static._Future__propagateToListeners
to:
dart:_internal/compiler/js_lib/js_helper.dart 1210:1 wrapException test/frontend/expect_async_test.dart 24:5 main.<fn>.<fn> package:test/src/backend/declarer.dart 45:48 Declarer.test.<fn>.<fn> package:stack_trace/src/stack_zone_specification.dart 134:30 StackZoneSpecification.registerUnaryCallback.<fn>.<fn> package:stack_trace/src/stack_zone_specification.dart 210:7 StackZoneSpecification._run package:stack_trace/src/stack_zone_specification.dart 135:5 StackZoneSpecification.registerUnaryCallback.<fn> dart:async/zone.dart 904:14 _rootRunUnary dart:async/zone.dart 806:3 _CustomZone.runUnary dart:async/future_impl.dart 486:13 _Future._propagateToListeners.handleValueCallback dart:async/future_impl.dart 567:32 _Future._propagateToListeners