@@ -107,4 +107,57 @@ class DartRuntimeDebugger {
107
107
// Use the helper method to wrap this in an IIFE
108
108
return _wrapInIIFE (expression);
109
109
}
110
+
111
+ /// Generates a JS expression for retrieving Dart Developer Extension Names.
112
+ String getDartDeveloperExtensionNamesJsExpression () {
113
+ return _generateJsExpression (
114
+ "${_loadStrategy .loadModuleSnippet }('dart_sdk').developer._extensions.keys.toList();" ,
115
+ 'dartDevEmbedder.debugger.extensionNames' ,
116
+ );
117
+ }
118
+
119
+ /// Generates a JS expression for retrieving metadata of classes in a library.
120
+ String getClassesInLibraryJsExpression (String libraryUri) {
121
+ final expression = _buildExpression (
122
+ '' ,
123
+ "getLibraryMetadata('$libraryUri ')" ,
124
+ "getClassesInLibrary('$libraryUri ')" ,
125
+ );
126
+ // Use the helper method to wrap this in an IIFE
127
+ return _wrapInIIFE (expression);
128
+ }
129
+
130
+ /// Generates a JS expression for retrieving map elements.
131
+ String getMapElementsJsExpression () {
132
+ return _buildExpression (
133
+ '' ,
134
+ 'getMapElements(this)' ,
135
+ 'getMapElements(this)' ,
136
+ );
137
+ }
138
+
139
+ /// Generates a JS expression for getting a property from a JS object.
140
+ String getPropertyJsExpression (String fieldName) {
141
+ return _generateJsExpression (
142
+ '''
143
+ function() {
144
+ return this["$fieldName "];
145
+ }
146
+ ''' ,
147
+ '''
148
+ function() {
149
+ return this["$fieldName "];
150
+ }
151
+ ''' ,
152
+ );
153
+ }
154
+
155
+ /// Generates a JS expression for retrieving set elements.
156
+ String getSetElementsJsExpression () {
157
+ return _buildExpression (
158
+ '' ,
159
+ 'getSetElements(this)' ,
160
+ 'getSetElements(this)' ,
161
+ );
162
+ }
110
163
}
0 commit comments