@@ -148,7 +148,41 @@ function translateJsonCompilerOutput (output) {
148
148
return ret ;
149
149
}
150
150
151
+ function formatAssemblyText ( asm , prefix , source ) {
152
+ if ( typeof asm === typeof '' || asm === null || asm === undefined ) {
153
+ return prefix + asm + '\n' ;
154
+ }
155
+ var text = prefix + '.code\n' ;
156
+ asm [ '.code' ] . forEach ( function ( item , i ) {
157
+ var v = item . value === undefined ? '' : item . value ;
158
+ var src = '' ;
159
+ if ( source !== undefined && item . begin !== undefined && item . end !== undefined ) {
160
+ src = source . slice ( item . begin , item . end ) . replace ( '\n' , '\\n' , 'g' ) ;
161
+ }
162
+ if ( src . length > 30 ) {
163
+ src = src . slice ( 0 , 30 ) + '...' ;
164
+ }
165
+ if ( item . name !== 'tag' ) {
166
+ text += ' ' ;
167
+ }
168
+ text += prefix + item . name + ' ' + v + '\t\t\t' + src + '\n' ;
169
+ } ) ;
170
+ text += prefix + '.data\n' ;
171
+ var asmData = asm [ '.data' ] || [ ] ;
172
+ for ( var i in asmData ) {
173
+ var item = asmData [ i ] ;
174
+ text += ' ' + prefix + '' + i + ':\n' ;
175
+ text += formatAssemblyText ( item , prefix + ' ' , source ) ;
176
+ }
177
+ return text ;
178
+ }
179
+
180
+ function prettyPrintLegacyAssemblyJSON ( assembly , source ) {
181
+ return formatAssemblyText ( assembly , '' , source ) ;
182
+ }
183
+
151
184
module . exports = {
152
185
versionToSemver : versionToSemver ,
153
- translateJsonCompilerOutput : translateJsonCompilerOutput
186
+ translateJsonCompilerOutput : translateJsonCompilerOutput ,
187
+ prettyPrintLegacyAssemblyJSON : prettyPrintLegacyAssemblyJSON
154
188
} ;
0 commit comments