This repository was archived by the owner on Feb 10, 2025. It is now read-only.
File tree 2 files changed +10
-1
lines changed 2 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -48,7 +48,7 @@ final _v8JsUrlLocation = RegExp(r'^(.*?):(\d+)(?::(\d+))?$|native$');
48
48
// To avoid having multiple groups for the same part of the frame, this regex
49
49
// matches unmatched parentheses after the member name.
50
50
final _v8WasmFrame = RegExp (r'^\s*at (?:(?<member>.+) )?'
51
- r'(?:\(?(?:(?<uri>wasm: \S+):wasm-function\[(?<index>\d+)\]'
51
+ r'(?:\(?(?:(?<uri>\S+):wasm-function\[(?<index>\d+)\]'
52
52
r'\:0x(?<offset>[0-9a-fA-F]+))\)?)$' );
53
53
54
54
// eval as function (https://example.com/stuff.dart.js:560:28), efn:3:28
Original file line number Diff line number Diff line change @@ -651,6 +651,15 @@ baz@https://pub.dev/buz.js:56355:55
651
651
expect (frame.member, 'main tear-off trampoline' );
652
652
});
653
653
654
+ test ('parses a V8 Wasm frame with a name with colons and parens' , () {
655
+ var frame = Frame .parseV8 (' at a::b::c() '
656
+ '(https://a.b.com/x/y/z.wasm:wasm-function[66334]:0x12c28ad)' );
657
+ expect (frame.uri, Uri .parse ('https://a.b.com/x/y/z.wasm' ));
658
+ expect (frame.line, 1 );
659
+ expect (frame.column, 0x12c28ad + 1 );
660
+ expect (frame.member, 'a::b::c()' );
661
+ });
662
+
654
663
test ('parses a V8 Wasm frame without a name' , () {
655
664
var frame =
656
665
Frame .parseV8 (' at wasm://wasm/0006d966:wasm-function[119]:0xbb13' );
You can’t perform that action at this time.
0 commit comments