You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[test_runner] fix bug in regexp in stack trace deobfuscation
This logic is responsible for creating a readable deobfuscated stack
from ddc and dart2js JavaScript stack traces. The logic was removing the
query parameter of URLs, but accidentally matched multi-line strings and
applied the regexp in invalid contexts (like the error message itself).
Excluding `\n` from the regexp pattern prevents this issue.
Example input (obfuscated error):
```
window.onerror called:
http://127.0.0.1:35679/root_build/gen/utils/ddc/stable/sdk/amd/dart_sdk.js:5082:
Uncaught Error
Error: Expected a value of type 'FutureOr<FileSystem>?', but got one of type 'LegacyJavaScriptObject'
at Object.throw_ [as throw] (http://127.0.0.1:35679/root_build/gen/utils/ddc/stable/sdk/amd/dart_sdk.js:5082:11)
at Object.castError (http://127.0.0.1:35679/root_build/gen/utils/ddc/stable/sdk/amd/dart_sdk.js:5041:15)
at Object.cast [as as] (http://127.0.0.1:35679/root_build/gen/utils/ddc/stable/sdk/amd/dart_sdk.js:5385:19)
at dart.NullableType.new.as (http://127.0.0.1:35679/root_build/gen/utils/ddc/stable/sdk/amd/dart_sdk.js:7243:60)
at _AsyncCompleter.new.complete (http://127.0.0.1:35679/root_build/gen/utils/ddc/stable/sdk/amd/dart_sdk.js:31216:28)
at http://127.0.0.1:35679/root_build/gen/utils/ddc/stable/sdk/amd/dart_sdk.js:99073:19
```
Example deobfuscation before (see truncated error and first frame was dropped accidentally):
```
window.onerror called:
out/ReleaseX64/gen/utils/ddc/stable/sdk/amd/dart_sdk.js:5082:
Uncaught Error
Error: Expected a value of type 'FutureOr<FileSystem>:5082:11)
at Object.castError ../../../../../../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 127:3
at Object.cast ../../../../../../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 818:12
at dart.NullableType.new.as ../../../../../../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/types.dart 425:9
at _AsyncCompleter.new.complete ../../../../../../dart-sdk/lib/async/future_impl.dart 42:31
at <fn> ../../../../../../dart-sdk/lib/html/dart2js/html_dart2js.dart 33424:16
```
but after (error and first frame recovered):
```
window.onerror called:
out/ReleaseX64/gen/utils/ddc/stable/sdk/amd/dart_sdk.js:5082:
Uncaught Error
Error: Expected a value of type 'FutureOr<FileSystem>?', but got one of type 'LegacyJavaScriptObject'
at Object.throw_ out/ReleaseX64/gen/utils/ddc/stable/sdk/amd/dart_sdk.js 5082:11
at Object.castError ../../../../../../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 127:3
at Object.cast ../../../../../../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 818:12
at dart.NullableType.new.as ../../../../../../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/types.dart 425:9
at _AsyncCompleter.new.complete ../../../../../../dart-sdk/lib/async/future_impl.dart 42:31
at <fn> ../../../../../../dart-sdk/lib/html/dart2js/html_dart2js.dart 33424:16
```
Change-Id: Id9f37efe9bdacc63aae3b24ebe0602a8ea7cf8fd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/328765
Reviewed-by: Nicholas Shahan <[email protected]>
Commit-Queue: Sigmund Cherem <[email protected]>
0 commit comments