| Index: pkg/dev_compiler/tool/input_sdk/private/js_helper.dart
|
| diff --git a/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart b/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart
|
| index 1cb146ddcc3931bb5737e64d69aaffd85c1060f0..f9c3ec082e69e4240f96b50834e1216e4d266c76 100644
|
| --- a/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart
|
| +++ b/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart
|
| @@ -492,9 +492,8 @@ class Primitives {
|
| JS('void', '#[#] = #', object, key, value);
|
| }
|
|
|
| - static StackTrace extractStackTrace(Error error) {
|
| - return getTraceFromException(JS('', r'#.$thrownJsError', error));
|
| - }
|
| + static StackTrace extractStackTrace(Error error) =>
|
| + getTraceFromException(error);
|
| }
|
|
|
| /**
|
| @@ -627,10 +626,18 @@ class UnknownJsTypeError extends Error {
|
| }
|
|
|
| /**
|
| - * Called by generated code to fetch the stack trace from an
|
| + * Called by generated code to fetch the stack trace from a Dart
|
| * exception. Should never return null.
|
| */
|
| -StackTrace getTraceFromException(exception) => new _StackTrace(exception);
|
| +final _stackTrace = JS('', 'Symbol("_stackTrace")');
|
| +StackTrace getTraceFromException(exception) {
|
| + var error = JS('', 'dart.recordJsError(#)', exception);
|
| + var trace = JS('StackTrace', '#[#]', error, _stackTrace);
|
| + if (trace != null) return trace;
|
| + trace = new _StackTrace(error);
|
| + JS('', '#[#] = #', error, _stackTrace, trace);
|
| + return trace;
|
| +}
|
|
|
| class _StackTrace implements StackTrace {
|
| var _exception;
|
|
|