| Index: tool/input_sdk/patch/core_patch.dart
|
| diff --git a/tool/input_sdk/patch/core_patch.dart b/tool/input_sdk/patch/core_patch.dart
|
| index d557375c54b5bf3662b5ce40c99891fcc627bc14..52ddebdc8205f0098a60387800b92fa3c3ca3566 100644
|
| --- a/tool/input_sdk/patch/core_patch.dart
|
| +++ b/tool/input_sdk/patch/core_patch.dart
|
| @@ -12,7 +12,8 @@ import 'dart:_js_helper' show patch,
|
| JSSyntaxRegExp,
|
| Primitives,
|
| stringJoinUnchecked,
|
| - objectHashCode;
|
| + objectHashCode,
|
| + getTraceFromException;
|
|
|
| import 'dart:_foreign_helper' show JS;
|
|
|
| @@ -458,16 +459,14 @@ class StackTrace {
|
| @patch
|
| @NoInline()
|
| static StackTrace get current {
|
| - var error = JS('', 'new Error()');
|
| - var stack = JS('String|Null', '#.stack', error);
|
| - if (stack is String) return new StackTrace.fromString(stack);
|
| if (JS('', 'Error.captureStackTrace') != null) {
|
| + var error = JS('', 'new Error()');
|
| JS('void', 'Error.captureStackTrace(#)', error);
|
| - var stack = JS('String|Null', '#.stack', error);
|
| - if (stack is String) return new StackTrace.fromString(stack);
|
| + return getTraceFromException(error);
|
| }
|
| + // Fallback if Error.captureStackTrace does not exist.
|
| try {
|
| - throw 0;
|
| + throw '';
|
| } catch (_, stackTrace) {
|
| return stackTrace;
|
| }
|
|
|