This repo has moved to https://github.com/dart-lang/tools/tree/main/pkgs/source_map_stack_trace
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