Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 dart_library.library('dart/_debugger', null, /* Imports */[ | |
|
skybrian
2016/01/22 21:45:21
Readability: it's kind of a large chunk of code wi
| |
| 2 'dart/_runtime', | |
| 3 'dart/core' | |
| 4 ], /* Lazy imports */[ | |
| 5 ], function(exports, dart, core) { | |
| 6 'use strict'; | |
| 7 let dartx = dart.dartx; | |
| 8 const SKIP_DART_CONFIG = dart.const(new core.Object()); | |
| 9 exports.MAX_ITERABLE_CHILDREN_TO_DISPLAY = 50; | |
| 10 dart.defineLazyProperties(exports, { | |
| 11 get _devtoolsFormatter() { | |
| 12 return new JsonMLFormatter(new DartFormatter()); | |
| 13 }, | |
| 14 set _devtoolsFormatter(_) {} | |
| 15 }); | |
| 16 function typeof$(object) { | |
| 17 return typeof object; | |
| 18 } | |
| 19 dart.fn(typeof$, core.String, [dart.dynamic]); | |
| 20 function instanceof$(object, clazz) { | |
| 21 return object instanceof clazz; | |
| 22 } | |
| 23 dart.fn(instanceof$, core.bool, [dart.dynamic, dart.dynamic]); | |
| 24 function getOwnPropertyNames(object) { | |
| 25 return dart.as(dart.list(Object.getOwnPropertyNames(object), core.String), c ore.List$(core.String)); | |
| 26 } | |
| 27 dart.fn(getOwnPropertyNames, core.List$(core.String), [dart.dynamic]); | |
| 28 function getOwnPropertySymbols(object) { | |
| 29 return Object.getOwnPropertySymbols(object); | |
| 30 } | |
| 31 dart.fn(getOwnPropertySymbols, core.List, [dart.dynamic]); | |
| 32 class JSNative extends core.Object { | |
| 33 static getProperty(object, name) { | |
| 34 return object[name]; | |
| 35 } | |
| 36 static setProperty(object, name, value) { | |
| 37 return object[name] = value; | |
| 38 } | |
| 39 } | |
| 40 dart.setSignature(JSNative, { | |
| 41 statics: () => ({ | |
| 42 getProperty: [dart.dynamic, [dart.dynamic, dart.dynamic]], | |
| 43 setProperty: [dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic]] | |
| 44 }), | |
| 45 names: ['getProperty', 'setProperty'] | |
| 46 }); | |
| 47 function isRegularDartObject(object) { | |
| 48 if (typeof$(object) == 'function') return false; | |
| 49 return instanceof$(object, core.Object); | |
| 50 } | |
| 51 dart.fn(isRegularDartObject, core.bool, [dart.dynamic]); | |
| 52 function getObjectTypeName(object) { | |
| 53 let realRuntimeType = dart.realRuntimeType(object); | |
| 54 if (realRuntimeType == null) { | |
| 55 if (typeof$(object) == 'function') { | |
| 56 return '[[Raw JavaScript Function]]'; | |
| 57 } | |
| 58 return '<Error getting type name>'; | |
| 59 } | |
| 60 return getTypeName(dart.as(realRuntimeType, core.Type)); | |
| 61 } | |
| 62 dart.fn(getObjectTypeName, core.String, [dart.dynamic]); | |
| 63 function getTypeName(type) { | |
| 64 let name = dart.typeName(type); | |
| 65 if (dart.equals(name, 'JSArray<dynamic>') || dart.equals(name, 'JSObject<Arr ay>')) return 'List<dynamic>'; | |
| 66 return dart.as(name, core.String); | |
| 67 } | |
| 68 dart.fn(getTypeName, core.String, [core.Type]); | |
| 69 const _simpleFormatter = Symbol('_simpleFormatter'); | |
| 70 function safePreview(object) { | |
| 71 try { | |
| 72 let preview = exports._devtoolsFormatter[_simpleFormatter].preview(object) ; | |
| 73 if (preview != null) return preview; | |
| 74 return dart.toString(object); | |
| 75 } catch (e) { | |
| 76 return '<Exception thrown>'; | |
| 77 } | |
| 78 | |
| 79 } | |
| 80 dart.fn(safePreview, core.String, [dart.dynamic]); | |
| 81 function symbolName(symbol) { | |
| 82 let name = dart.toString(symbol); | |
| 83 dart.assert(name[dartx.startsWith]('Symbol(')); | |
| 84 return name[dartx.substring]('Symbol('[dartx.length], dart.notNull(name[dart x.length]) - 1); | |
| 85 } | |
| 86 dart.fn(symbolName, core.String, [dart.dynamic]); | |
| 87 function hasMethod(object, name) { | |
| 88 try { | |
| 89 return dart.as(dart.hasMethod(object, name), core.bool); | |
| 90 } catch (e) { | |
| 91 return false; | |
| 92 } | |
| 93 | |
| 94 } | |
| 95 dart.fn(hasMethod, core.bool, [dart.dynamic, core.String]); | |
| 96 class NameValuePair extends core.Object { | |
| 97 NameValuePair(opts) { | |
| 98 let name = opts && 'name' in opts ? opts.name : null; | |
| 99 let value = opts && 'value' in opts ? opts.value : null; | |
| 100 let skipDart = opts && 'skipDart' in opts ? opts.skipDart : null; | |
| 101 this.name = name; | |
| 102 this.value = value; | |
| 103 this.skipDart = null; | |
| 104 this.skipDart = dart.equals(skipDart, true); | |
| 105 } | |
| 106 } | |
| 107 dart.setSignature(NameValuePair, { | |
| 108 constructors: () => ({NameValuePair: [NameValuePair, [], {name: core.String, value: dart.dynamic, skipDart: dart.dynamic}]}) | |
| 109 }); | |
| 110 class MapEntry extends core.Object { | |
| 111 MapEntry(opts) { | |
| 112 let key = opts && 'key' in opts ? opts.key : null; | |
| 113 let value = opts && 'value' in opts ? opts.value : null; | |
| 114 this.key = key; | |
| 115 this.value = value; | |
| 116 } | |
| 117 } | |
| 118 dart.setSignature(MapEntry, { | |
| 119 constructors: () => ({MapEntry: [MapEntry, [], {key: core.String, value: dar t.dynamic}]}) | |
| 120 }); | |
| 121 class ClassMetadata extends core.Object { | |
| 122 ClassMetadata(object) { | |
| 123 this.object = object; | |
| 124 } | |
| 125 } | |
| 126 dart.setSignature(ClassMetadata, { | |
| 127 constructors: () => ({ClassMetadata: [ClassMetadata, [dart.dynamic]]}) | |
| 128 }); | |
| 129 class HeritageClause extends core.Object { | |
| 130 HeritageClause(name, types) { | |
| 131 this.name = name; | |
| 132 this.types = types; | |
| 133 } | |
| 134 } | |
| 135 dart.setSignature(HeritageClause, { | |
| 136 constructors: () => ({HeritageClause: [HeritageClause, [core.String, core.Li st]]}) | |
| 137 }); | |
| 138 const _attributes = Symbol('_attributes'); | |
| 139 const _jsonML = Symbol('_jsonML'); | |
| 140 class JsonMLElement extends core.Object { | |
| 141 JsonMLElement(tagName) { | |
| 142 this[_attributes] = null; | |
| 143 this[_jsonML] = null; | |
| 144 this[_attributes] = {}; | |
| 145 this[_jsonML] = [tagName, this[_attributes]]; | |
| 146 } | |
| 147 appendChild(element) { | |
| 148 this[_jsonML][dartx.add](dart.dsend(element, 'toJsonML')); | |
| 149 } | |
| 150 createChild(tagName) { | |
| 151 let c = new JsonMLElement(tagName); | |
| 152 this[_jsonML][dartx.add](c.toJsonML()); | |
| 153 return c; | |
| 154 } | |
| 155 createObjectTag(object) { | |
| 156 return (() => { | |
| 157 let _ = this.createChild('object'); | |
| 158 _.addAttribute('object', object); | |
| 159 return _; | |
| 160 }).bind(this)(); | |
| 161 } | |
| 162 setStyle(style) { | |
| 163 dart.dput(this[_attributes], 'style', style); | |
| 164 } | |
| 165 addStyle(style) { | |
| 166 if (dart.dload(this[_attributes], 'style') == null) { | |
| 167 dart.dput(this[_attributes], 'style', style); | |
| 168 } else { | |
| 169 let o = this[_attributes]; | |
| 170 dart.dput(o, 'style', dart.dsend(dart.dload(o, 'style'), '+', style)); | |
| 171 } | |
| 172 } | |
| 173 addAttribute(key, value) { | |
| 174 JSNative.setProperty(this[_attributes], key, value); | |
| 175 } | |
| 176 createTextChild(text) { | |
| 177 this[_jsonML][dartx.add](text); | |
| 178 } | |
| 179 toJsonML() { | |
| 180 return this[_jsonML]; | |
| 181 } | |
| 182 } | |
| 183 dart.setSignature(JsonMLElement, { | |
| 184 constructors: () => ({JsonMLElement: [JsonMLElement, [dart.dynamic]]}), | |
| 185 methods: () => ({ | |
| 186 appendChild: [dart.dynamic, [dart.dynamic]], | |
| 187 createChild: [JsonMLElement, [core.String]], | |
| 188 createObjectTag: [JsonMLElement, [dart.dynamic]], | |
| 189 setStyle: [dart.void, [core.String]], | |
| 190 addStyle: [dart.dynamic, [core.String]], | |
| 191 addAttribute: [dart.dynamic, [dart.dynamic, dart.dynamic]], | |
| 192 createTextChild: [dart.dynamic, [core.String]], | |
| 193 toJsonML: [dart.dynamic, []] | |
| 194 }) | |
| 195 }); | |
| 196 class JsonMLFormatter extends core.Object { | |
| 197 JsonMLFormatter(simpleFormatter) { | |
| 198 this[_simpleFormatter] = simpleFormatter; | |
| 199 } | |
| 200 header(object, config) { | |
| 201 if (dart.notNull(core.identical(config, SKIP_DART_CONFIG))) return null; | |
| 202 let c = this[_simpleFormatter].preview(object); | |
| 203 if (c == null) return null; | |
| 204 let element = new JsonMLElement('span'); | |
| 205 element.setStyle('background-color: #d9edf7'); | |
| 206 element.createTextChild(c); | |
| 207 return element.toJsonML(); | |
| 208 } | |
| 209 hasBody(object) { | |
| 210 return this[_simpleFormatter].hasChildren(object); | |
| 211 } | |
| 212 body(object) { | |
| 213 let body = new JsonMLElement('ol'); | |
| 214 body.setStyle('list-style-type:none;' + 'padding-left: 0px;' + 'margin-top : 0px;' + 'margin-bottom: 0px;' + 'margin-left: 12px'); | |
| 215 let children = this[_simpleFormatter].children(object); | |
| 216 for (let child of children) { | |
| 217 let li = body.createChild('li'); | |
| 218 let nameSpan = new JsonMLElement('span'); | |
| 219 nameSpan.createTextChild(child.name != null ? dart.notNull(child.name) + ': ' : ''); | |
| 220 nameSpan.setStyle('color: rgb(136, 19, 145);'); | |
| 221 if (typeof$(child.value) == 'object' || typeof$(child.value) == 'functio n') { | |
| 222 nameSpan.addStyle("padding-left: 13px;"); | |
| 223 li.appendChild(nameSpan); | |
| 224 let objectTag = li.createObjectTag(child.value); | |
| 225 if (dart.notNull(child.skipDart)) { | |
| 226 objectTag.addAttribute('config', SKIP_DART_CONFIG); | |
| 227 } | |
| 228 if (!dart.notNull(this[_simpleFormatter].hasChildren(child.value))) { | |
| 229 li.setStyle("padding-left: 13px;"); | |
| 230 } | |
| 231 } else { | |
| 232 li.setStyle("padding-left: 13px;"); | |
| 233 let _ = li.createChild('span'); | |
| 234 _.appendChild(nameSpan); | |
| 235 _.createTextChild(safePreview(child.value)); | |
| 236 } | |
| 237 } | |
| 238 return body.toJsonML(); | |
| 239 } | |
| 240 } | |
| 241 dart.setSignature(JsonMLFormatter, { | |
| 242 constructors: () => ({JsonMLFormatter: [JsonMLFormatter, [DartFormatter]]}), | |
| 243 methods: () => ({ | |
| 244 header: [dart.dynamic, [dart.dynamic, dart.dynamic]], | |
| 245 hasBody: [core.bool, [dart.dynamic]], | |
| 246 body: [dart.dynamic, [dart.dynamic]] | |
| 247 }) | |
| 248 }); | |
| 249 class Formatter extends core.Object {} | |
| 250 const _formatters = Symbol('_formatters'); | |
| 251 class DartFormatter extends core.Object { | |
| 252 DartFormatter() { | |
| 253 this[_formatters] = null; | |
| 254 this[_formatters] = dart.list([new FunctionFormatter(), new MapFormatter() , new IterableFormatter(), new MapEntryFormatter(), new ClassMetadataFormatter() , new HeritageClauseFormatter(), new ObjectFormatter()], Formatter); | |
| 255 } | |
| 256 preview(object) { | |
| 257 if (object == null) return 'null'; | |
| 258 if (typeof object == 'number') return dart.toString(object); | |
| 259 if (typeof object == 'string') return `"${object}"`; | |
| 260 for (let formatter of this[_formatters]) { | |
| 261 if (dart.notNull(formatter.accept(object))) return formatter.preview(obj ect); | |
| 262 } | |
| 263 return null; | |
| 264 } | |
| 265 hasChildren(object) { | |
| 266 if (object == null) return false; | |
| 267 for (let formatter of this[_formatters]) { | |
| 268 if (dart.notNull(formatter.accept(object))) return formatter.hasChildren (object); | |
| 269 } | |
| 270 return false; | |
| 271 } | |
| 272 children(object) { | |
| 273 if (object != null) { | |
| 274 for (let formatter of this[_formatters]) { | |
| 275 if (dart.notNull(formatter.accept(object))) return formatter.children( object); | |
| 276 } | |
| 277 } | |
| 278 return dart.list([], NameValuePair); | |
| 279 } | |
| 280 } | |
| 281 dart.setSignature(DartFormatter, { | |
| 282 constructors: () => ({DartFormatter: [DartFormatter, []]}), | |
| 283 methods: () => ({ | |
| 284 preview: [core.String, [dart.dynamic]], | |
| 285 hasChildren: [core.bool, [dart.dynamic]], | |
| 286 children: [core.List$(NameValuePair), [dart.dynamic]] | |
| 287 }) | |
| 288 }); | |
| 289 const _addMembers = Symbol('_addMembers'); | |
| 290 class ObjectFormatter extends Formatter { | |
| 291 accept(object) { | |
| 292 return isRegularDartObject(object); | |
| 293 } | |
| 294 preview(object) { | |
| 295 return getObjectTypeName(object); | |
| 296 } | |
| 297 hasChildren(object) { | |
| 298 return true; | |
| 299 } | |
| 300 [_addMembers](current, object, properties) { | |
| 301 let className = dart.dload(dart.realRuntimeType(current), 'name'); | |
| 302 for (let name of getOwnPropertyNames(current)) { | |
| 303 if (name == 'constructor' || name == '__proto__' || dart.equals(name, cl assName)) continue; | |
| 304 if (dart.notNull(hasMethod(object, name))) { | |
| 305 continue; | |
| 306 } | |
| 307 let value = null; | |
| 308 try { | |
| 309 value = JSNative.getProperty(object, name); | |
| 310 } catch (e) { | |
| 311 value = '<Exception thrown>'; | |
| 312 } | |
| 313 | |
| 314 properties[dartx.add](new NameValuePair({name: name, value: value})); | |
| 315 } | |
| 316 for (let symbol of getOwnPropertySymbols(current)) { | |
| 317 let dartName = symbolName(symbol); | |
| 318 if (dart.notNull(hasMethod(object, dartName))) { | |
| 319 continue; | |
| 320 } | |
| 321 let value = null; | |
| 322 try { | |
| 323 value = JSNative.getProperty(object, symbol); | |
| 324 } catch (e) { | |
| 325 value = '<Exception thrown>'; | |
| 326 } | |
| 327 | |
| 328 properties[dartx.add](new NameValuePair({name: dartName, value: value})) ; | |
| 329 } | |
| 330 let base = JSNative.getProperty(current, '__proto__'); | |
| 331 if (base == null) return; | |
| 332 if (dart.notNull(isRegularDartObject(base))) { | |
| 333 this[_addMembers](base, object, properties); | |
| 334 } | |
| 335 } | |
| 336 children(object) { | |
| 337 let properties = dart.list([], NameValuePair); | |
| 338 this.addMetadataChildren(object, properties); | |
| 339 this[_addMembers](object, object, properties); | |
| 340 return properties; | |
| 341 } | |
| 342 addMetadataChildren(object, ret) { | |
| 343 ret[dartx.add](new NameValuePair({name: '[[class]]', value: new ClassMetad ata(object)})); | |
| 344 } | |
| 345 } | |
| 346 dart.setSignature(ObjectFormatter, { | |
| 347 methods: () => ({ | |
| 348 accept: [core.bool, [dart.dynamic]], | |
| 349 preview: [core.String, [dart.dynamic]], | |
| 350 hasChildren: [core.bool, [dart.dynamic]], | |
| 351 [_addMembers]: [dart.dynamic, [dart.dynamic, dart.dynamic, core.List$(Name ValuePair)]], | |
| 352 children: [core.List$(NameValuePair), [dart.dynamic]], | |
| 353 addMetadataChildren: [dart.dynamic, [dart.dynamic, core.List$(NameValuePai r)]] | |
| 354 }) | |
| 355 }); | |
| 356 class FunctionFormatter extends Formatter { | |
| 357 accept(object) { | |
| 358 if (typeof$(object) != 'function') return false; | |
| 359 return dart.realRuntimeType(object) != null; | |
| 360 } | |
| 361 hasChildren(object) { | |
| 362 return true; | |
| 363 } | |
| 364 preview(object) { | |
| 365 return dart.as(dart.typeName(dart.realRuntimeType(object)), core.String); | |
| 366 } | |
| 367 children(object) { | |
| 368 return dart.list([new NameValuePair({name: 'signature', value: this.previe w(object)}), new NameValuePair({name: 'JavaScript Function', value: object, skip Dart: true})], NameValuePair); | |
| 369 } | |
| 370 } | |
| 371 dart.setSignature(FunctionFormatter, { | |
| 372 methods: () => ({ | |
| 373 accept: [core.bool, [dart.dynamic]], | |
| 374 hasChildren: [core.bool, [dart.dynamic]], | |
| 375 preview: [core.String, [dart.dynamic]], | |
| 376 children: [core.List$(NameValuePair), [dart.dynamic]] | |
| 377 }) | |
| 378 }); | |
| 379 class MapFormatter extends ObjectFormatter { | |
| 380 accept(object) { | |
| 381 return dart.is(object, core.Map); | |
| 382 } | |
| 383 hasChildren(object) { | |
| 384 return true; | |
| 385 } | |
| 386 preview(object) { | |
| 387 let map = dart.as(object, core.Map); | |
| 388 return `${getObjectTypeName(map)} length ${map.length}`; | |
| 389 } | |
| 390 children(object) { | |
| 391 let map = dart.as(object, core.Map); | |
| 392 let keys = map.keys[dartx.toList](); | |
| 393 let entries = dart.list([], NameValuePair); | |
| 394 map.forEach(dart.fn((key, value) => { | |
| 395 let entryWrapper = new MapEntry({key: dart.as(key, core.String), value: value}); | |
| 396 entries[dartx.add](new NameValuePair({name: dart.toString(entries[dartx. length]), value: entryWrapper})); | |
| 397 }, dart.void, [dart.dynamic, dart.dynamic])); | |
| 398 this.addMetadataChildren(object, entries); | |
| 399 return entries; | |
| 400 } | |
| 401 } | |
| 402 class IterableFormatter extends ObjectFormatter { | |
| 403 accept(object) { | |
| 404 return dart.is(object, core.Iterable); | |
| 405 } | |
| 406 preview(object) { | |
| 407 let iterable = dart.as(object, core.Iterable); | |
| 408 try { | |
| 409 let length = iterable[dartx.length]; | |
| 410 return `${getObjectTypeName(iterable)} length ${length}`; | |
| 411 } catch (_) { | |
| 412 return `${getObjectTypeName(iterable)}`; | |
| 413 } | |
| 414 | |
| 415 } | |
| 416 hasChildren(object) { | |
| 417 return true; | |
| 418 } | |
| 419 children(object) { | |
| 420 let iterable = dart.as(object, core.Iterable); | |
| 421 let ret = dart.list([], NameValuePair); | |
| 422 let i = 0; | |
| 423 for (let entry of iterable) { | |
| 424 if (dart.notNull(i) > dart.notNull(exports.MAX_ITERABLE_CHILDREN_TO_DISP LAY)) { | |
| 425 ret[dartx.add](new NameValuePair({name: 'Warning', value: 'Truncated I terable display'})); | |
| 426 break; | |
| 427 } | |
| 428 ret[dartx.add](new NameValuePair({name: dart.toString(i), value: entry}) ); | |
| 429 i = dart.notNull(i) + 1; | |
| 430 } | |
| 431 this.addMetadataChildren(object, ret); | |
| 432 return ret; | |
| 433 } | |
| 434 } | |
| 435 const _getType = Symbol('_getType'); | |
| 436 class ClassMetadataFormatter extends core.Object { | |
| 437 accept(object) { | |
| 438 return dart.is(object, ClassMetadata); | |
| 439 } | |
| 440 [_getType](object) { | |
| 441 if (dart.is(object, core.Type)) return object; | |
| 442 return dart.realRuntimeType(object); | |
| 443 } | |
| 444 preview(object) { | |
| 445 let entry = dart.as(object, ClassMetadata); | |
| 446 return getTypeName(dart.as(this[_getType](entry.object), core.Type)); | |
| 447 } | |
| 448 hasChildren(object) { | |
| 449 return true; | |
| 450 } | |
| 451 children(object) { | |
| 452 let entry = dart.as(object, ClassMetadata); | |
| 453 let type = this[_getType](entry.object); | |
| 454 let ret = dart.list([], NameValuePair); | |
| 455 let implements$ = dart.getImplements(type); | |
| 456 if (implements$ != null) { | |
| 457 ret[dartx.add](new NameValuePair({name: '[[Implements]]', value: new Her itageClause('implements', dart.as(dart.dcall(implements$), core.List))})); | |
| 458 } | |
| 459 let mixins = dart.getMixins(type); | |
| 460 if (mixins != null) { | |
| 461 ret[dartx.add](new NameValuePair({name: '[[Mixins]]', value: new Heritag eClause('mixins', dart.as(dart.dcall(mixins), core.List))})); | |
| 462 } | |
| 463 ret[dartx.add](new NameValuePair({name: '[[JavaScript View]]', value: entr y.object, skipDart: true})); | |
| 464 if (!dart.is(entry.object, core.Type)) { | |
| 465 ret[dartx.add](new NameValuePair({name: '[[JavaScript Constructor]]', va lue: JSNative.getProperty(entry.object, 'constructor'), skipDart: true})); | |
| 466 } | |
| 467 return ret; | |
| 468 } | |
| 469 } | |
| 470 ClassMetadataFormatter[dart.implements] = () => [Formatter]; | |
| 471 dart.setSignature(ClassMetadataFormatter, { | |
| 472 methods: () => ({ | |
| 473 accept: [core.bool, [dart.dynamic]], | |
| 474 [_getType]: [dart.dynamic, [dart.dynamic]], | |
| 475 preview: [core.String, [dart.dynamic]], | |
| 476 hasChildren: [core.bool, [dart.dynamic]], | |
| 477 children: [core.List$(NameValuePair), [dart.dynamic]] | |
| 478 }) | |
| 479 }); | |
| 480 class MapEntryFormatter extends core.Object { | |
| 481 accept(object) { | |
| 482 return dart.is(object, MapEntry); | |
| 483 } | |
| 484 preview(object) { | |
| 485 let entry = dart.as(object, MapEntry); | |
| 486 return `${safePreview(entry.key)} => ${safePreview(entry.value)}`; | |
| 487 } | |
| 488 hasChildren(object) { | |
| 489 return true; | |
| 490 } | |
| 491 children(object) { | |
| 492 return dart.list([new NameValuePair({name: 'key', value: dart.dload(object , 'key')}), new NameValuePair({name: 'value', value: dart.dload(object, 'value') })], NameValuePair); | |
| 493 } | |
| 494 } | |
| 495 MapEntryFormatter[dart.implements] = () => [Formatter]; | |
| 496 dart.setSignature(MapEntryFormatter, { | |
| 497 methods: () => ({ | |
| 498 accept: [core.bool, [dart.dynamic]], | |
| 499 preview: [core.String, [dart.dynamic]], | |
| 500 hasChildren: [core.bool, [dart.dynamic]], | |
| 501 children: [core.List$(NameValuePair), [dart.dynamic]] | |
| 502 }) | |
| 503 }); | |
| 504 class HeritageClauseFormatter extends core.Object { | |
| 505 accept(object) { | |
| 506 return dart.is(object, HeritageClause); | |
| 507 } | |
| 508 preview(object) { | |
| 509 let clause = dart.as(object, HeritageClause); | |
| 510 return `${clause.name} ${clause.types[dartx.map](dart.fn(type => getTypeNa me(dart.as(type, core.Type)), core.String, [dart.dynamic]))[dartx.join](", ")}`; | |
| 511 } | |
| 512 hasChildren(object) { | |
| 513 return true; | |
| 514 } | |
| 515 children(object) { | |
| 516 let clause = dart.as(object, HeritageClause); | |
| 517 let ret = dart.list([], NameValuePair); | |
| 518 for (let type of clause.types) { | |
| 519 ret[dartx.add](new NameValuePair({value: new ClassMetadata(type)})); | |
| 520 } | |
| 521 return ret; | |
| 522 } | |
| 523 } | |
| 524 HeritageClauseFormatter[dart.implements] = () => [Formatter]; | |
| 525 dart.setSignature(HeritageClauseFormatter, { | |
| 526 methods: () => ({ | |
| 527 accept: [core.bool, [dart.dynamic]], | |
| 528 preview: [core.String, [dart.dynamic]], | |
| 529 hasChildren: [core.bool, [dart.dynamic]], | |
| 530 children: [core.List$(NameValuePair), [dart.dynamic]] | |
| 531 }) | |
| 532 }); | |
| 533 function registerDevtoolsFormatter() { | |
| 534 let formatters = [exports._devtoolsFormatter]; | |
| 535 window.devtoolsFormatters = formatters; | |
| 536 } | |
| 537 dart.fn(registerDevtoolsFormatter); | |
| 538 // Exports: | |
| 539 exports.SKIP_DART_CONFIG = SKIP_DART_CONFIG; | |
| 540 exports.typeof = typeof$; | |
| 541 exports.instanceof = instanceof$; | |
| 542 exports.getOwnPropertyNames = getOwnPropertyNames; | |
| 543 exports.getOwnPropertySymbols = getOwnPropertySymbols; | |
| 544 exports.JSNative = JSNative; | |
| 545 exports.isRegularDartObject = isRegularDartObject; | |
| 546 exports.getObjectTypeName = getObjectTypeName; | |
| 547 exports.getTypeName = getTypeName; | |
| 548 exports.safePreview = safePreview; | |
| 549 exports.symbolName = symbolName; | |
| 550 exports.hasMethod = hasMethod; | |
| 551 exports.NameValuePair = NameValuePair; | |
| 552 exports.MapEntry = MapEntry; | |
| 553 exports.ClassMetadata = ClassMetadata; | |
| 554 exports.HeritageClause = HeritageClause; | |
| 555 exports.JsonMLElement = JsonMLElement; | |
| 556 exports.JsonMLFormatter = JsonMLFormatter; | |
| 557 exports.Formatter = Formatter; | |
| 558 exports.DartFormatter = DartFormatter; | |
| 559 exports.ObjectFormatter = ObjectFormatter; | |
| 560 exports.FunctionFormatter = FunctionFormatter; | |
| 561 exports.MapFormatter = MapFormatter; | |
| 562 exports.IterableFormatter = IterableFormatter; | |
| 563 exports.ClassMetadataFormatter = ClassMetadataFormatter; | |
| 564 exports.MapEntryFormatter = MapEntryFormatter; | |
| 565 exports.HeritageClauseFormatter = HeritageClauseFormatter; | |
| 566 exports.registerDevtoolsFormatter = registerDevtoolsFormatter; | |
| 567 }); | |
| OLD | NEW |