| 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;
|
|
|