Chromium Code Reviews| 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..6fc12bd7f1fbd2f4d6d304b39e8ebe3e8c77617a 100644 |
| --- a/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart |
| +++ b/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart |
| @@ -493,7 +493,7 @@ class Primitives { |
| } |
| static StackTrace extractStackTrace(Error error) { |
| - return getTraceFromException(JS('', r'#.$thrownJsError', error)); |
| + return JS('StackTrace', 'dart.stackTrace(#)', error); |
|
Jennifer Messerly
2017/05/05 23:59:15
question ... i've seen this pattern too in dart:mi
vsm
2017/05/08 17:07:44
Oh nice - the typed call works!
In this case th
|
| } |
| } |
| @@ -627,10 +627,20 @@ 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); |
|
Jennifer Messerly
2017/05/05 23:59:15
same as above, I don't think we need to use JS cod
|
| + var trace = JS('StackTrace', '#[#]', error, _stackTrace); |
| + if (trace != null) return trace; |
| + trace = new _StackTrace(error); |
| + JS('', '#[#] = #', error, _stackTrace, trace); |
| + return trace; |
| +} |
| + |
| +//=> JS('StackTrace', 'dart.stackTrace(#)', exception); |
|
Jennifer Messerly
2017/05/05 23:59:15
remove this comment?
vsm
2017/05/08 17:07:44
doh!
|
| class _StackTrace implements StackTrace { |
| var _exception; |