Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(649)

Unified Diff: lib/runtime/dart_sdk.js

Issue 2164763005: Library custom formatters (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
Index: lib/runtime/dart_sdk.js
diff --git a/lib/runtime/dart_sdk.js b/lib/runtime/dart_sdk.js
index 5cbc9870906501a86e2204c9dc31423798363280..90949079f45d70a906405a8c2ae9277310528221 100644
--- a/lib/runtime/dart_sdk.js
+++ b/lib/runtime/dart_sdk.js
@@ -36,8 +36,8 @@ dart_library.library('dart_sdk', null, /* Imports */[
let MapOfSymbol$dynamic = () => (MapOfSymbol$dynamic = dart.constFn(core.Map$(core.Symbol, dart.dynamic)))();
let MapOfString$int = () => (MapOfString$int = dart.constFn(core.Map$(core.String, core.int)))();
let ListOfString = () => (ListOfString = dart.constFn(core.List$(core.String)))();
- let JSArrayOfFormatter = () => (JSArrayOfFormatter = dart.constFn(_interceptors.JSArray$(_debugger.Formatter)))();
let JSArrayOfNameValuePair = () => (JSArrayOfNameValuePair = dart.constFn(_interceptors.JSArray$(_debugger.NameValuePair)))();
+ let JSArrayOfFormatter = () => (JSArrayOfFormatter = dart.constFn(_interceptors.JSArray$(_debugger.Formatter)))();
let LinkedHashSetOfNameValuePair = () => (LinkedHashSetOfNameValuePair = dart.constFn(collection.LinkedHashSet$(_debugger.NameValuePair)))();
let SetOfString = () => (SetOfString = dart.constFn(core.Set$(core.String)))();
let ListOfNameValuePair = () => (ListOfNameValuePair = dart.constFn(core.List$(_debugger.NameValuePair)))();
@@ -481,9 +481,9 @@ dart_library.library('dart_sdk', null, /* Imports */[
let dynamicToList = () => (dynamicToList = dart.constFn(dart.definiteFunctionType(core.List, [dart.dynamic])))();
let TypeToString = () => (TypeToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Type])))();
let dynamicAndStringTobool = () => (dynamicAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, core.String])))();
+ let intAnddynamicTovoid = () => (intAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, dart.dynamic])))();
let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
let dynamicAnddynamicTovoid = () => (dynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
- let IterableSpanToListOfNameValuePair = () => (IterableSpanToListOfNameValuePair = dart.constFn(dart.definiteFunctionType(ListOfNameValuePair(), [_debugger.IterableSpan])))();
let VoidTodynamic$ = () => (VoidTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
let StringAndString__Todynamic = () => (StringAndString__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String], [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
let VoidToIsolateContext = () => (VoidToIsolateContext = dart.constFn(dart.definiteFunctionType(_foreign_helper.IsolateContext, [])))();
@@ -843,6 +843,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
let ctor = function(...args) {
initMethod.apply(this, args);
};
+ ctor[dart.isNamedConstructor] = true;
ctor.prototype = proto;
dart.defineProperty(clazz, name, {value: ctor, configurable: true});
};
@@ -1848,6 +1849,8 @@ dart_library.library('dart_sdk', null, /* Imports */[
dart._extensionType = Symbol("extensionType");
dart.dartx = dartx;
dart._runtimeType = Symbol("_runtimeType");
+ dart.isNamedConstructor = Symbol("isNamedConstructor");
+ dart.dartLibraryName = Symbol("dartLibraryName");
dart.metadata = Symbol("metadata");
dart._typeObject = Symbol("typeObject");
core.Object = class Object {
@@ -2441,22 +2444,73 @@ dart_library.library('dart_sdk', null, /* Imports */[
constructors: () => ({new: dart.definiteFunctionType(_debugger.MapEntry, [], {key: core.Object, value: core.Object})})
});
_debugger.IterableSpan = class IterableSpan extends core.Object {
- new(opts) {
- let start = opts && 'start' in opts ? opts.start : null;
- let end = opts && 'end' in opts ? opts.end : null;
- let iterable = opts && 'iterable' in opts ? opts.iterable : null;
+ new(start, end, iterable) {
this.start = start;
this.end = end;
this.iterable = iterable;
}
+ get length() {
+ return dart.notNull(this.end) - dart.notNull(this.start);
+ }
+ get maxPowerOfSubsetSize() {
+ return (dart.notNull(math.log(dart.notNull(this.length) - 0.5)) / dart.notNull(math.log(_debugger._maxSpanLength)))[dartx.truncate]();
+ }
+ get subsetSize() {
+ return dart.asInt(math.pow(_debugger._maxSpanLength, this.maxPowerOfSubsetSize));
+ }
+ asMap() {
+ return this.iterable[dartx.skip](this.start)[dartx.take](this.length)[dartx.toList]()[dartx.asMap]();
+ }
+ children() {
+ let ret = JSArrayOfNameValuePair().of([]);
+ if (dart.notNull(this.length) <= dart.notNull(_debugger._maxSpanLength)) {
+ this.asMap()[dartx.forEach](dart.fn((i, element) => {
+ ret[dartx.add](new _debugger.NameValuePair({name: dart.toString(dart.notNull(i) + dart.notNull(this.start)), value: element}));
+ }, intAnddynamicTovoid()));
+ } else {
+ for (let i = this.start; dart.notNull(i) < dart.notNull(this.end); i = dart.notNull(i) + dart.notNull(this.subsetSize)) {
+ let subSpan = new _debugger.IterableSpan(i, math.min(core.int)(this.end, dart.notNull(this.subsetSize) + dart.notNull(i)), this.iterable);
+ if (subSpan.length == 1) {
+ ret[dartx.add](new _debugger.NameValuePair({name: dart.toString(i), value: this.iterable[dartx.elementAt](i)}));
+ } else {
+ ret[dartx.add](new _debugger.NameValuePair({name: dart.str`[${i}...${dart.notNull(subSpan.end) - 1}]`, value: subSpan, hideName: true}));
+ }
+ }
+ }
+ return ret;
+ }
};
dart.setSignature(_debugger.IterableSpan, {
- constructors: () => ({new: dart.definiteFunctionType(_debugger.IterableSpan, [], {start: core.int, end: core.int, iterable: core.Iterable})})
+ constructors: () => ({new: dart.definiteFunctionType(_debugger.IterableSpan, [core.int, core.int, core.Iterable])}),
+ methods: () => ({
+ asMap: dart.definiteFunctionType(core.Map$(core.int, dart.dynamic), []),
+ children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [])
+ })
+ });
+ _debugger.Library = class Library extends core.Object {
+ new(name, object) {
+ this.name = name;
+ this.object = object;
+ }
+ };
+ dart.setSignature(_debugger.Library, {
+ constructors: () => ({new: dart.definiteFunctionType(_debugger.Library, [core.String, core.Object])})
+ });
+ _debugger.NamedConstructor = class NamedConstructor extends core.Object {
+ new(object) {
+ this.object = object;
+ }
+ };
+ dart.setSignature(_debugger.NamedConstructor, {
+ constructors: () => ({new: dart.definiteFunctionType(_debugger.NamedConstructor, [core.Object])})
});
_debugger.ClassMetadata = class ClassMetadata extends core.Object {
new(object) {
this.object = object;
}
+ get name() {
+ return _debugger.getTypeName(core.Type._check(core.Type.is(this.object) ? this.object : dart.getReifiedType(this.object)));
+ }
};
dart.setSignature(_debugger.ClassMetadata, {
constructors: () => ({new: dart.definiteFunctionType(_debugger.ClassMetadata, [core.Object])})
@@ -2536,11 +2590,13 @@ dart_library.library('dart_sdk', null, /* Imports */[
_debugger.JsonMLFormatter = class JsonMLFormatter extends core.Object {
new(simpleFormatter) {
this[_simpleFormatter] = simpleFormatter;
+ this.customFormattersOn = false;
}
setMaxSpanLengthForTestingOnly(spanLength) {
_debugger._maxSpanLength = spanLength;
}
header(object, config) {
+ this.customFormattersOn = true;
if (dart.equals(config, _debugger.JsonMLConfig.skipDart) || dart.test(_debugger.isNativeJavaScriptObject(object))) {
return null;
}
@@ -2598,7 +2654,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
_debugger.DartFormatter = class DartFormatter extends core.Object {
new() {
this[_formatters] = null;
- this[_formatters] = JSArrayOfFormatter().of([new _debugger.FunctionFormatter(), new _debugger.MapFormatter(), new _debugger.IterableFormatter(), new _debugger.MapEntryFormatter(), new _debugger.IterableSpanFormatter(), new _debugger.ClassMetadataFormatter(), new _debugger.HeritageClauseFormatter(), new _debugger.ObjectFormatter()]);
+ this[_formatters] = JSArrayOfFormatter().of([new _debugger.NamedConstructorFormatter(), new _debugger.FunctionFormatter(), new _debugger.MapFormatter(), new _debugger.IterableFormatter(), new _debugger.MapEntryFormatter(), new _debugger.IterableSpanFormatter(), new _debugger.ClassMetadataFormatter(), new _debugger.HeritageClauseFormatter(), new _debugger.ModuleLibraryFormatter(), new _debugger.LibraryFormatter(), new _debugger.ObjectFormatter()]);
}
preview(object) {
try {
@@ -2664,12 +2720,8 @@ dart_library.library('dart_sdk', null, /* Imports */[
children(object) {
let properties = LinkedHashSetOfNameValuePair().new();
this.addMetadataChildren(object, properties);
- let protoChain = JSArrayOfObject().of([]);
let current = object;
- while (current != null && !dart.test(_debugger.isNativeJavaScriptObject(current)) && current !== Object.prototype) {
- protoChain[dartx.add](current);
- current = _debugger.JSNative.getProperty(current, '__proto__');
- }
+ let protoChain = this.getProtoChain(current);
for (/* Unimplemented unknown name */current of protoChain) {
for (let symbol of _debugger.getOwnPropertySymbols(current)) {
let dartName = _debugger.symbolName(symbol);
@@ -2682,13 +2734,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
} else if (!dart.test(dartName[dartx.startsWith]('_'))) {
continue;
}
- let value = null;
- try {
- value = _debugger.JSNative.getProperty(object, symbol);
- } catch (e) {
- value = dart.str`<Exception thrown> ${e}`;
- }
-
+ let value = this.getPropertyValue(object, core.String._check(symbol));
properties.add(new _debugger.NameValuePair({name: dartName, value: value}));
}
}
@@ -2699,20 +2745,33 @@ dart_library.library('dart_sdk', null, /* Imports */[
if (dart.test(_debugger.hasMethod(object, name))) {
continue;
}
- let value = null;
- try {
- value = _debugger.JSNative.getProperty(object, name);
- } catch (e) {
- value = dart.str`<Exception thrown> ${e}`;
- }
-
+ let value = this.getPropertyValue(object, name);
properties.add(new _debugger.NameValuePair({name: name, value: value}));
}
}
return properties.toList();
}
addMetadataChildren(object, ret) {
- ret.add(new _debugger.NameValuePair({name: '[[class]]', value: new _debugger.ClassMetadata(object)}));
+ let value = new _debugger.ClassMetadata(object);
+ ret.add(new _debugger.NameValuePair({name: value.name, value: value}));
+ }
+ getPropertyValue(object, name) {
+ let value = null;
+ try {
+ value = _debugger.JSNative.getProperty(object, name);
+ } catch (e) {
+ value = dart.str`<Exception thrown> ${e}`;
+ }
+
+ return value;
+ }
+ getProtoChain(current) {
+ let protoChain = JSArrayOfObject().of([]);
+ while (current != null && !dart.test(_debugger.isNativeJavaScriptObject(current)) && current !== Object.prototype) {
+ protoChain[dartx.add](current);
+ current = _debugger.JSNative.getProperty(current, '__proto__');
+ }
+ return protoChain;
}
};
dart.setSignature(_debugger.ObjectFormatter, {
@@ -2721,7 +2780,9 @@ dart_library.library('dart_sdk', null, /* Imports */[
preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic]),
- addMetadataChildren: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Set$(_debugger.NameValuePair)])
+ addMetadataChildren: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Set$(_debugger.NameValuePair)]),
+ getPropertyValue: dart.definiteFunctionType(core.Object, [core.Object, core.String]),
+ getProtoChain: dart.definiteFunctionType(core.List$(core.Object), [dart.dynamic])
})
});
dart.defineLazy(_debugger.ObjectFormatter, {
@@ -2736,6 +2797,70 @@ dart_library.library('dart_sdk', null, /* Imports */[
},
set _customNames(_) {}
});
+ _debugger.ModuleLibraryFormatter = class ModuleLibraryFormatter extends _debugger.ObjectFormatter {
+ new() {
+ this.libraryName = null;
+ }
+ accept(object) {
+ let current = object;
+ let protoChain = this.getProtoChain(current);
+ for (/* Unimplemented unknown name */current of protoChain) {
+ for (let symbol of _debugger.getOwnPropertySymbols(current)) {
+ if (_debugger.symbolName(symbol) == 'dartLibraryName') {
+ this.libraryName = core.String._check(_debugger.JSNative.getProperty(current, symbol));
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ hasChildren(object) {
+ return true;
+ }
+ preview(object) {
+ let libraryNameArray = this.libraryName[dartx.split]('/');
+ if (dart.notNull(libraryNameArray[dartx.length]) > 1) {
+ libraryNameArray[dartx.set](dart.notNull(libraryNameArray[dartx.length]) - 1, '');
+ }
+ return dart.str`Library Module: ${libraryNameArray[dartx.join]('/')}`;
+ }
+ children(object) {
+ let properties = LinkedHashSetOfNameValuePair().new();
+ for (let name of _debugger.getOwnPropertyNames(object)) {
+ let value = _debugger.JSNative.getProperty(object, name);
+ name = dart.notNull(name[dartx.replaceAll]('__', '/')) + '.dart';
+ properties.add(new _debugger.NameValuePair({name: name, value: new _debugger.Library(name, value), hideName: true}));
+ }
+ return properties.toList();
+ }
+ };
+ _debugger.LibraryFormatter = class LibraryFormatter extends _debugger.ObjectFormatter {
+ accept(object) {
+ return _debugger.Library.is(object);
+ }
+ hasChildren(object) {
+ return true;
+ }
+ preview(object) {
+ return core.String._check(dart.dload(object, 'name'));
+ }
+ children(object) {
+ let properties = LinkedHashSetOfNameValuePair().new();
+ let entry = dart.dload(object, 'object');
+ for (let name of _debugger.getOwnPropertyNames(entry)) {
+ let value = this.getPropertyValue(entry, name);
+ if (dart.equals(_debugger.JSNative.getProperty(value, 'name'), 'makeGenericType')) {
+ continue;
+ } else if (core.Type.is(value)) {
+ let classMetadata = new _debugger.ClassMetadata(value);
+ properties.add(new _debugger.NameValuePair({name: classMetadata.name, value: classMetadata}));
+ } else {
+ properties.add(new _debugger.NameValuePair({name: name, value: value}));
+ }
+ }
+ return properties.toList();
+ }
+ };
_debugger.FunctionFormatter = class FunctionFormatter extends _debugger.Formatter {
accept(object) {
if (_debugger._typeof(object) != 'function') return false;
@@ -2800,13 +2925,13 @@ dart_library.library('dart_sdk', null, /* Imports */[
}
children(object) {
let ret = LinkedHashSetOfNameValuePair().new();
- ret.addAll(_debugger.childrenHelper(new _debugger.IterableSpan({start: 0, end: core.int._check(dart.dload(object, 'length')), iterable: core.Iterable._check(object)})));
+ ret.addAll(new _debugger.IterableSpan(0, core.int._check(dart.dload(object, 'length')), core.Iterable._check(object)).children());
this.addMetadataChildren(object, ret);
return ret.toList();
}
};
const _getType = Symbol('_getType');
- _debugger.ClassMetadataFormatter = class ClassMetadataFormatter extends core.Object {
+ _debugger.ClassMetadataFormatter = class ClassMetadataFormatter extends _debugger.ObjectFormatter {
accept(object) {
return _debugger.ClassMetadata.is(object);
}
@@ -2816,35 +2941,83 @@ dart_library.library('dart_sdk', null, /* Imports */[
}
preview(object) {
let entry = _debugger.ClassMetadata._check(object);
- return _debugger.getTypeName(core.Type._check(this[_getType](entry.object)));
+ let type = core.Type.is(entry.object) ? entry.object : dart.getReifiedType(entry.object);
+ let implements$ = dart.getImplements(type);
+ let ret = _debugger.getTypeName(core.Type._check(type));
+ if (implements$ != null) {
+ let typeNames = dart.dsend(dart.dcall(implements$), 'map', dart.fn(type => _debugger.getTypeName(core.Type._check(type)), dynamicToString()));
+ return dart.notNull(ret) + dart.str` implements ${dart.dsend(typeNames, 'join', ", ")}`;
+ } else {
+ return ret;
+ }
}
hasChildren(object) {
return true;
}
children(object) {
let entry = _debugger.ClassMetadata._check(object);
- let type = this[_getType](entry.object);
+ let classObject = entry.object;
+ let type = this[_getType](classObject);
let ret = JSArrayOfNameValuePair().of([]);
- let implements$ = dart.getImplements(type);
- if (implements$ != null) {
- ret[dartx.add](new _debugger.NameValuePair({name: '[[Implements]]', value: new _debugger.HeritageClause('implements', core.List._check(dart.dcall(implements$)))}));
- }
let mixins = dart.getMixins(type);
if (mixins != null && dart.test(dart.dload(mixins, 'isNotEmpty'))) {
ret[dartx.add](new _debugger.NameValuePair({name: '[[Mixins]]', value: new _debugger.HeritageClause('mixins', core.List._check(mixins))}));
}
- ret[dartx.add](new _debugger.NameValuePair({name: '[[JavaScript View]]', value: entry.object, config: _debugger.JsonMLConfig.skipDart}));
- if (!core.Type.is(entry.object)) {
- ret[dartx.add](new _debugger.NameValuePair({name: '[[JavaScript Constructor]]', value: _debugger.JSNative.getProperty(entry.object, 'constructor'), config: _debugger.JsonMLConfig.skipDart}));
+ for (let name of _debugger.getOwnPropertyNames(classObject)) {
+ if (name == 'length' || name == 'name' || name == 'prototype') continue;
+ let value = this.getPropertyValue(classObject, name);
+ for (let symbol of _debugger.getOwnPropertySymbols(value)) {
+ if (_debugger.symbolName(symbol) == 'isNamedConstructor') {
+ value = new _debugger.NamedConstructor(value);
+ name = dart.notNull(entry.name) + '.' + dart.notNull(name);
+ }
+ }
+ ret[dartx.add](new _debugger.NameValuePair({name: name, value: value}));
+ }
+ let prototype = classObject.prototype;
+ if (prototype != null) {
+ for (let name of _debugger.getOwnPropertyNames(prototype)) {
+ if (name == 'constructor' || name == 'new' || name == '$identityHash') {
+ continue;
+ }
+ let func = this.getPropertyValue(prototype, name);
+ let constructor = this.getPropertyValue(prototype, 'constructor');
+ for (let symbol of _debugger.getOwnPropertySymbols(constructor)) {
+ if (_debugger.symbolName(symbol) == 'sig') {
+ let sigObj = this.getPropertyValue(constructor, core.String._check(symbol));
+ let value = this.getPropertyValue(sigObj, name);
+ if (_debugger.getTypeName(core.Type._check(dart.getReifiedType(value))) != 'Null') {
+ dart.tag(func, value);
+ ret[dartx.add](new _debugger.NameValuePair({name: name, value: func}));
+ }
+ }
+ }
+ }
}
return ret;
}
};
- _debugger.ClassMetadataFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setSignature(_debugger.ClassMetadataFormatter, {
+ methods: () => ({[_getType]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])})
+ });
+ _debugger.NamedConstructorFormatter = class NamedConstructorFormatter extends core.Object {
+ accept(object) {
+ return _debugger.NamedConstructor.is(object);
+ }
+ preview(object) {
+ return 'Named Constructor';
+ }
+ hasChildren(object) {
+ return true;
+ }
+ children(object) {
+ return JSArrayOfNameValuePair().of([new _debugger.NameValuePair({name: 'JavaScript Function', value: object, config: _debugger.JsonMLConfig.skipDart})]);
+ }
+ };
+ _debugger.NamedConstructorFormatter[dart.implements] = () => [_debugger.Formatter];
+ dart.setSignature(_debugger.NamedConstructorFormatter, {
methods: () => ({
accept: dart.definiteFunctionType(core.bool, [dart.dynamic]),
- [_getType]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
@@ -2909,14 +3082,13 @@ dart_library.library('dart_sdk', null, /* Imports */[
return _debugger.IterableSpan.is(object);
}
preview(object) {
- let entry = _debugger.IterableSpan._check(object);
return dart.str`[${dart.dload(object, 'start')}...${dart.dsend(dart.dload(object, 'end'), '-', 1)}]`;
}
hasChildren(object) {
return true;
}
children(object) {
- return _debugger.childrenHelper(_debugger.IterableSpan._check(object));
+ return ListOfNameValuePair()._check(dart.dsend(object, 'children'));
}
};
_debugger.IterableSpanFormatter[dart.implements] = () => [_debugger.Formatter];
@@ -2928,29 +3100,6 @@ dart_library.library('dart_sdk', null, /* Imports */[
children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
})
});
- _debugger.childrenHelper = function(span) {
- let length = dart.notNull(span.end) - dart.notNull(span.start);
- let ret = ListOfNameValuePair().new();
- if (length <= dart.notNull(_debugger._maxSpanLength)) {
- for (let i = span.start; dart.notNull(i) < dart.notNull(span.end); i = dart.notNull(i) + 1) {
- ret[dartx.add](new _debugger.NameValuePair({name: dart.toString(i), value: span.iterable[dartx.elementAt](i)}));
- }
- } else {
- let maxPowerOfSubsetSize = (dart.notNull(math.log(length - 0.5)) / dart.notNull(math.log(_debugger._maxSpanLength)))[dartx.truncate]();
- let subsetSize = math.pow(_debugger._maxSpanLength, maxPowerOfSubsetSize);
- for (let i = span.start; dart.notNull(i) < dart.notNull(span.end); i = dart.notNull(i) + dart.notNull(dart.asInt(subsetSize))) {
- let endIndex = math.min(core.num)(span.end, dart.notNull(subsetSize) + dart.notNull(i));
- if (dart.notNull(endIndex) - dart.notNull(i) == 1)
- ret[dartx.add](new _debugger.NameValuePair({name: dart.toString(i), value: span.iterable[dartx.elementAt](i)}));
- else {
- let entryWrapper = new _debugger.IterableSpan({start: i, end: dart.asInt(endIndex), iterable: span.iterable});
- ret[dartx.add](new _debugger.NameValuePair({name: dart.str`[${i}...${dart.notNull(endIndex) - 1}]`, value: entryWrapper, hideName: true}));
- }
- }
- }
- return ret;
- };
- dart.lazyFn(_debugger.childrenHelper, () => IterableSpanToListOfNameValuePair());
_debugger.registerDevtoolsFormatter = function() {
let formatters = JSArrayOfJsonMLFormatter().of([_debugger._devtoolsFormatter]);
dart.global.devtoolsFormatters = formatters;

Powered by Google App Engine
This is Rietveld 408576698