From ef2e80a14feba9b709c71f7ed677f232bbf4f2c8 Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Fri, 6 May 2022 15:30:10 -0700 Subject: [PATCH 1/3] Update temp variable heuristics to catch more cases --- dwds/CHANGELOG.md | 4 ++++ dwds/lib/src/debugging/dart_scope.dart | 2 +- dwds/test/variable_scope_test.dart | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md index 997d45739..3190e6127 100644 --- a/dwds/CHANGELOG.md +++ b/dwds/CHANGELOG.md @@ -1,3 +1,7 @@ +## 14.0.1-dev +- Update temp variable detection heuristics so internal JS type objects do + not show in the debugger. + ## 14.0.0 - Add column information to breakpoints to allow precise breakpoint placement. - Split SDK validation methods to allow validation of separate components. diff --git a/dwds/lib/src/debugging/dart_scope.dart b/dwds/lib/src/debugging/dart_scope.dart index 0c6bc4de4..b27ed50d4 100644 --- a/dwds/lib/src/debugging/dart_scope.dart +++ b/dwds/lib/src/debugging/dart_scope.dart @@ -11,7 +11,7 @@ import 'debugger.dart'; // TODO(sdk/issues/44262) - use an alternative way to identify synthetic // variables. -final ddcTemporaryVariableRegExp = RegExp(r'^(t[0-9]+\$?[0-9]*|__t\$\w*)$'); +final ddcTemporaryVariableRegExp = RegExp(r'^(t[0-9]+\$?[0-9]*|__t[\$\w*]+)$'); /// Find the visible Dart properties from a JS Scope Chain, coming from the /// scopeChain attribute of a Chrome CallFrame corresponding to [frame]. diff --git a/dwds/test/variable_scope_test.dart b/dwds/test/variable_scope_test.dart index eb00efe88..e37220827 100644 --- a/dwds/test/variable_scope_test.dart +++ b/dwds/test/variable_scope_test.dart @@ -39,6 +39,7 @@ void main() { expect(ddcTemporaryVariableRegExp.hasMatch(r't10'), isTrue); expect(ddcTemporaryVariableRegExp.hasMatch(r'__t$TL'), isTrue); expect(ddcTemporaryVariableRegExp.hasMatch(r'__t$StringN'), isTrue); + expect(ddcTemporaryVariableRegExp.hasMatch(r'__t$IdentityMapOfString$T'), isTrue); expect(ddcTemporaryVariableRegExp.hasMatch(r't'), isFalse); expect(ddcTemporaryVariableRegExp.hasMatch(r't10foo'), isFalse); From 043277e8bf50f6c16fc82b913e7efb4ad14e0700 Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Fri, 6 May 2022 15:34:57 -0700 Subject: [PATCH 2/3] Format --- dwds/test/variable_scope_test.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dwds/test/variable_scope_test.dart b/dwds/test/variable_scope_test.dart index e37220827..390a68cdc 100644 --- a/dwds/test/variable_scope_test.dart +++ b/dwds/test/variable_scope_test.dart @@ -39,7 +39,8 @@ void main() { expect(ddcTemporaryVariableRegExp.hasMatch(r't10'), isTrue); expect(ddcTemporaryVariableRegExp.hasMatch(r'__t$TL'), isTrue); expect(ddcTemporaryVariableRegExp.hasMatch(r'__t$StringN'), isTrue); - expect(ddcTemporaryVariableRegExp.hasMatch(r'__t$IdentityMapOfString$T'), isTrue); + expect(ddcTemporaryVariableRegExp.hasMatch(r'__t$IdentityMapOfString$T'), + isTrue); expect(ddcTemporaryVariableRegExp.hasMatch(r't'), isFalse); expect(ddcTemporaryVariableRegExp.hasMatch(r't10foo'), isFalse); From e80016757dbb4a450a4d9ed2cafdb7657c560fa0 Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Fri, 6 May 2022 15:36:44 -0700 Subject: [PATCH 3/3] Update version and build --- dwds/lib/src/version.dart | 2 +- dwds/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dwds/lib/src/version.dart b/dwds/lib/src/version.dart index 1b37d5aba..861284ae2 100644 --- a/dwds/lib/src/version.dart +++ b/dwds/lib/src/version.dart @@ -1,2 +1,2 @@ // Generated code. Do not modify. -const packageVersion = '14.0.0'; +const packageVersion = '14.0.1-dev'; diff --git a/dwds/pubspec.yaml b/dwds/pubspec.yaml index 9b192e216..50e10c1c7 100644 --- a/dwds/pubspec.yaml +++ b/dwds/pubspec.yaml @@ -1,6 +1,6 @@ name: dwds # Every time this changes you need to run `dart run build_runner build`. -version: 14.0.0 +version: 14.0.1-dev description: >- A service that proxies between the Chrome debug protocol and the Dart VM service protocol.