@@ -107,4 +107,57 @@ class DartRuntimeDebugger {
107107 // Use the helper method to wrap this in an IIFE
108108 return _wrapInIIFE (expression);
109109 }
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+ }
110163}
0 commit comments