Index: pkg/dev_compiler/lib/js/es6/dart_sdk.js |
diff --git a/pkg/dev_compiler/lib/js/es6/dart_sdk.js b/pkg/dev_compiler/lib/js/es6/dart_sdk.js |
index 91a48c5a329c40b590c391149c2720c5fca4a447..3b9b8e79915378a4af13e6917850d73570fcba3a 100644 |
--- a/pkg/dev_compiler/lib/js/es6/dart_sdk.js |
+++ b/pkg/dev_compiler/lib/js/es6/dart_sdk.js |
@@ -37,16 +37,14 @@ let MapOfSymbol$dynamic = () => (MapOfSymbol$dynamic = dart.constFn(core.Map$(co |
let MapOfString$_MethodStats = () => (MapOfString$_MethodStats = dart.constFn(core.Map$(core.String, dart._MethodStats)))(); |
let ListOfString = () => (ListOfString = dart.constFn(core.List$(core.String)))(); |
let SetOfNameValuePair = () => (SetOfNameValuePair = dart.constFn(core.Set$(_debugger.NameValuePair)))(); |
+let ListOfNameValuePair = () => (ListOfNameValuePair = dart.constFn(core.List$(_debugger.NameValuePair)))(); |
+let IterableOfNameValuePair = () => (IterableOfNameValuePair = dart.constFn(core.Iterable$(_debugger.NameValuePair)))(); |
let JSArrayOfNameValuePair = () => (JSArrayOfNameValuePair = dart.constFn(_interceptors.JSArray$(_debugger.NameValuePair)))(); |
let MapOfdynamic$Object = () => (MapOfdynamic$Object = dart.constFn(core.Map$(dart.dynamic, core.Object)))(); |
let JSArrayOfFormatter = () => (JSArrayOfFormatter = dart.constFn(_interceptors.JSArray$(_debugger.Formatter)))(); |
let ListOfFormatter = () => (ListOfFormatter = dart.constFn(core.List$(_debugger.Formatter)))(); |
let LinkedHashSetOfNameValuePair = () => (LinkedHashSetOfNameValuePair = dart.constFn(collection.LinkedHashSet$(_debugger.NameValuePair)))(); |
-let SetOfString = () => (SetOfString = dart.constFn(core.Set$(core.String)))(); |
let HashMapOfString$String = () => (HashMapOfString$String = dart.constFn(collection.HashMap$(core.String, core.String)))(); |
-let LinkedHashMapOfString$Object = () => (LinkedHashMapOfString$Object = dart.constFn(collection.LinkedHashMap$(core.String, core.Object)))(); |
-let ListOfNameValuePair = () => (ListOfNameValuePair = dart.constFn(core.List$(_debugger.NameValuePair)))(); |
-let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))(); |
let JSArrayOfJsonMLFormatter = () => (JSArrayOfJsonMLFormatter = dart.constFn(_interceptors.JSArray$(_debugger.JsonMLFormatter)))(); |
let JSIndexable = () => (JSIndexable = dart.constFn(_interceptors.JSIndexable$()))(); |
let JSArray = () => (JSArray = dart.constFn(_interceptors.JSArray$()))(); |
@@ -55,6 +53,7 @@ let JSFixedArray = () => (JSFixedArray = dart.constFn(_interceptors.JSFixedArray |
let JSExtendableArray = () => (JSExtendableArray = dart.constFn(_interceptors.JSExtendableArray$()))(); |
let JSUnmodifiableArray = () => (JSUnmodifiableArray = dart.constFn(_interceptors.JSUnmodifiableArray$()))(); |
let ArrayIterator = () => (ArrayIterator = dart.constFn(_interceptors.ArrayIterator$()))(); |
+let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))(); |
let JSIndexableOfString = () => (JSIndexableOfString = dart.constFn(_interceptors.JSIndexable$(core.String)))(); |
let MatchToString = () => (MatchToString = dart.constFn(dart.functionType(core.String, [core.Match])))(); |
let StringToString = () => (StringToString = dart.constFn(dart.functionType(core.String, [core.String])))(); |
@@ -593,6 +592,7 @@ let EventStreamProviderOfBeforeUnloadEvent = () => (EventStreamProviderOfBeforeU |
let ElementListOfElement = () => (ElementListOfElement = dart.constFn(html$.ElementList$(html$.Element)))(); |
let ListOfRectangleOfnum = () => (ListOfRectangleOfnum = dart.constFn(core.List$(RectangleOfnum())))(); |
let ListOfGamepad = () => (ListOfGamepad = dart.constFn(core.List$(html$.Gamepad)))(); |
+let SetOfString = () => (SetOfString = dart.constFn(core.Set$(core.String)))(); |
let ListOfCssClassSetImpl = () => (ListOfCssClassSetImpl = dart.constFn(core.List$(html_common.CssClassSetImpl)))(); |
let LinkedHashSetOfString = () => (LinkedHashSetOfString = dart.constFn(collection.LinkedHashSet$(core.String)))(); |
let StringTobool = () => (StringTobool = dart.constFn(dart.functionType(core.bool, [core.String])))(); |
@@ -638,18 +638,20 @@ let dynamicToString = () => (dynamicToString = dart.constFn(dart.definiteFunctio |
let dynamicToListOfString = () => (dynamicToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [dart.dynamic])))(); |
let dynamicToList = () => (dynamicToList = dart.constFn(dart.definiteFunctionType(core.List, [dart.dynamic])))(); |
let dynamicAndSetOfNameValuePairTovoid = () => (dynamicAndSetOfNameValuePairTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, SetOfNameValuePair()])))(); |
-let TypeToString = () => (TypeToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Type])))(); |
-let dynamicToObject = () => (dynamicToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic])))(); |
+let dynamicAndSetOfNameValuePairAnddynamic__Tovoid = () => (dynamicAndSetOfNameValuePairAnddynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, SetOfNameValuePair(), dart.dynamic, core.bool], {tagTypes: dart.dynamic})))(); |
+let NameValuePairAndNameValuePairToint = () => (NameValuePairAndNameValuePairToint = dart.constFn(dart.definiteFunctionType(core.int, [_debugger.NameValuePair, _debugger.NameValuePair])))(); |
+let IterableOfNameValuePairToListOfNameValuePair = () => (IterableOfNameValuePairToListOfNameValuePair = dart.constFn(dart.definiteFunctionType(ListOfNameValuePair(), [IterableOfNameValuePair()])))(); |
let dynamicAnddynamicToString = () => (dynamicAnddynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic])))(); |
let dynamicAndStringTobool = () => (dynamicAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, core.String])))(); |
let intAnddynamicToNull = () => (intAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.int, dart.dynamic])))(); |
let ObjectAndObjectToObject = () => (ObjectAndObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object, core.Object])))(); |
let StringTobool$ = () => (StringTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [core.String])))(); |
+let dynamicToObject = () => (dynamicToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic])))(); |
let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))(); |
let dynamicAnddynamicToNull = () => (dynamicAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, dart.dynamic])))(); |
-let StringAndObjectToNull = () => (StringAndObjectToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.Object])))(); |
let StringToNameValuePair = () => (StringToNameValuePair = dart.constFn(dart.definiteFunctionType(_debugger.NameValuePair, [core.String])))(); |
let VoidTodynamic$ = () => (VoidTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); |
+let StringTodynamic = () => (StringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String])))(); |
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, [])))(); |
let dynamicAndFunctionTodynamic = () => (dynamicAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Function])))(); |
@@ -1461,8 +1463,8 @@ dart._getRuntimeType = function(value) { |
dart.getIsNamedConstructor = function(value) { |
return value[dart.isNamedConstructor]; |
}; |
-dart.getDartLibraryName = function(value) { |
- return value[dart_library.dartLibraryName]; |
+dart.getModuleName = function(value) { |
+ return value[dart._moduleName]; |
}; |
dart.tag = function(value, t) { |
value[dart._runtimeType] = t; |
@@ -1473,6 +1475,18 @@ dart.tagComputed = function(value, compute) { |
dart.tagLazy = function(value, compute) { |
dart.defineLazyProperty(value, dart._runtimeType, {get: compute}); |
}; |
+dart.getModuleNames = function() { |
+ return Array.from(dart._loadedModules.keys()); |
+}; |
+dart.getModuleLibraries = function(name) { |
+ let module = dart._loadedModules.get(name); |
+ if (module == null) return null; |
+ module[dart._moduleName] = name; |
+ return module; |
+}; |
+dart.trackLibraries = function(moduleName, libraries) { |
+ dart._loadedModules.set(moduleName, libraries); |
+}; |
dart._warn = function(arg) { |
console.warn(arg); |
}; |
@@ -1615,6 +1629,9 @@ dart.functionType = function(returnType, args, extra) { |
dart.definiteFunctionType = function(returnType, args, extra) { |
return dart._functionType(true, returnType, args, extra); |
}; |
+dart.isType = function(obj) { |
+ return dart._getRuntimeType(obj) === core.Type; |
+}; |
dart.typeName = function(type) { |
if (type === void 0) return "undefined type"; |
if (type === null) return "null type"; |
@@ -2433,6 +2450,7 @@ dart.toString = function(obj) { |
return obj[dartx.toString](); |
} |
if (typeof obj == "function") { |
+ if (dart.test(dart.isType(obj))) return dart.typeName(obj); |
return "Closure: " + dart.getReifiedType(obj) + " from: " + obj; |
} |
return obj.toString(); |
@@ -2637,12 +2655,19 @@ dart._extensionType = Symbol("extensionType"); |
dart.dartx = dartx; |
dart._runtimeType = Symbol("_runtimeType"); |
dart.isNamedConstructor = Symbol("isNamedConstructor"); |
+dart._moduleName = Symbol("_moduleName"); |
dart.defineLazy(dart, { |
get _lazyJSTypes() { |
return new Map(); |
}, |
set _lazyJSTypes(_) {} |
}); |
+dart.defineLazy(dart, { |
+ get _loadedModules() { |
+ return new Map(); |
+ }, |
+ set _loadedModules(_) {} |
+}); |
dart.metadata = Symbol("metadata"); |
dart._typeObject = Symbol("typeObject"); |
core.Object = class Object { |
@@ -3196,9 +3221,51 @@ dart.setSignature(_debugger.JSNative, { |
names: ['getProperty', 'setProperty'] |
}); |
_debugger.addMetadataChildren = function(object, ret) { |
- ret.add(new _debugger.NameValuePair({name: _debugger.getTypeName(core.Type._check(_debugger._getType(object))), value: object, config: _debugger.JsonMLConfig.asClass})); |
+ ret.add(new _debugger.NameValuePair({name: "[[class]]", value: dart.getReifiedType(object), config: _debugger.JsonMLConfig.asClass})); |
}; |
dart.lazyFn(_debugger.addMetadataChildren, () => dynamicAndSetOfNameValuePairTovoid()); |
+_debugger.addPropertiesFromSignature = function(sig, properties, object, walkPrototypeChain, opts) { |
+ let tagTypes = opts && 'tagTypes' in opts ? opts.tagTypes : false; |
+ let skippedNames = core.Set.new(); |
+ skippedNames.add('hashCode'); |
+ while (sig != null) { |
+ for (let symbol of _debugger.getOwnPropertySymbols(sig)) { |
+ let dartName = _debugger.symbolName(symbol); |
+ let dartXPrefix = 'dartx.'; |
+ if (dart.test(dartName[dartx.startsWith](dartXPrefix))) { |
+ dartName = dartName[dartx.substring](dartXPrefix[dartx.length]); |
+ } |
+ if (dart.test(skippedNames.contains(dartName))) continue; |
+ let value = _debugger.safeGetProperty(object, symbol); |
+ if (dart.test(tagTypes) && _debugger._typeof(value) == 'function') { |
+ dart.tag(value, sig[symbol]); |
+ } |
+ properties.add(new _debugger.NameValuePair({name: dartName, value: value})); |
+ } |
+ for (let name of _debugger.getOwnPropertyNames(sig)) { |
+ let value = _debugger.safeGetProperty(object, name); |
+ if (dart.test(skippedNames.contains(name))) continue; |
+ if (dart.test(tagTypes) && _debugger._typeof(value) == 'function') { |
+ dart.tag(value, sig[name]); |
+ } |
+ properties.add(new _debugger.NameValuePair({name: name, value: value})); |
+ } |
+ if (!dart.test(walkPrototypeChain)) break; |
+ sig = _debugger.safeGetProperty(sig, '__proto__'); |
+ } |
+}; |
+dart.lazyFn(_debugger.addPropertiesFromSignature, () => dynamicAndSetOfNameValuePairAnddynamic__Tovoid()); |
+_debugger.sortProperties = function(properties) { |
+ let sortedProperties = properties[dartx.toList](); |
+ sortedProperties[dartx.sort](dart.fn((a, b) => { |
+ let aPrivate = a.name[dartx.startsWith]('_'); |
+ let bPrivate = b.name[dartx.startsWith]('_'); |
+ if (aPrivate != bPrivate) return dart.test(aPrivate) ? 1 : -1; |
+ return a.name[dartx.compareTo](b.name); |
+ }, NameValuePairAndNameValuePairToint())); |
+ return sortedProperties; |
+}; |
+dart.lazyFn(_debugger.sortProperties, () => IterableOfNameValuePairToListOfNameValuePair()); |
_debugger.getObjectTypeName = function(object) { |
let reifiedType = dart.getReifiedType(object); |
if (reifiedType == null) { |
@@ -3207,7 +3274,7 @@ _debugger.getObjectTypeName = function(object) { |
} |
return '<Error getting type name>'; |
} |
- return _debugger.getTypeName(core.Type._check(reifiedType)); |
+ return _debugger.getTypeName(reifiedType); |
}; |
dart.lazyFn(_debugger.getObjectTypeName, () => dynamicToString()); |
_debugger.getTypeName = function(type) { |
@@ -3215,11 +3282,7 @@ _debugger.getTypeName = function(type) { |
if (name == 'JSArray<dynamic>' || name == 'JSObject<Array>') return 'List<dynamic>'; |
return name; |
}; |
-dart.lazyFn(_debugger.getTypeName, () => TypeToString()); |
-_debugger._getType = function(object) { |
- return core.Type.is(object) ? object : dart.getReifiedType(object); |
-}; |
-dart.fn(_debugger._getType, dynamicToObject()); |
+dart.lazyFn(_debugger.getTypeName, () => dynamicToString()); |
const _simpleFormatter = Symbol('_simpleFormatter'); |
_debugger.safePreview = function(object, config) { |
try { |
@@ -3259,7 +3322,9 @@ _debugger.NameValuePair = class NameValuePair extends core.Object { |
this.hideName = hideName; |
} |
['=='](other) { |
- return _debugger.NameValuePair.is(other) && other.name == this.name; |
+ if (!_debugger.NameValuePair.is(other)) return false; |
+ if (dart.test(this.hideName) || dart.test(dart.dload(other, 'hideName'))) return core.identical(this, other); |
+ return dart.equals(dart.dload(other, 'name'), this.name); |
} |
get hashCode() { |
return dart.hashCode(this.name); |
@@ -3452,7 +3517,7 @@ dart.setSignature(_debugger.JsonMLElement, { |
}); |
_debugger.isNativeJavaScriptObject = function(object) { |
let type = _debugger._typeof(object); |
- return type != 'object' && type != 'function' || dart.JSObject.is(object) || html$.Node.is(object); |
+ return type != 'object' && type != 'function' || dart.test(dart.isJsInterop(object)) || html$.Node.is(object); |
}; |
dart.lazyFn(_debugger.isNativeJavaScriptObject, () => dynamicTobool$()); |
_debugger.JsonMLFormatter = class JsonMLFormatter extends core.Object { |
@@ -3488,24 +3553,37 @@ _debugger.JsonMLFormatter = class JsonMLFormatter extends core.Object { |
body.addStyle('color: rgb(196, 26, 22);'); |
} |
let children = this[_simpleFormatter].children(object, config); |
+ if (children == null) return body.toJsonML(); |
for (let child of children) { |
let li = body.createChild('li'); |
- let nameSpan = new _debugger.JsonMLElement('span'); |
- nameSpan.createTextChild(dart.test(child.displayName[dartx.isNotEmpty]) ? dart.str`${child.displayName}: ` : ''); |
- nameSpan.setStyle('color: rgb(136, 19, 145);'); |
+ li.setStyle("padding-left: 13px;"); |
+ let nameSpan = null; |
+ let valueStyle = ''; |
+ if (!dart.test(child.hideName)) { |
+ nameSpan = new _debugger.JsonMLElement('span'); |
+ nameSpan.createTextChild(dart.test(child.displayName[dartx.isNotEmpty]) ? dart.str`${child.displayName}: ` : ''); |
+ nameSpan.setStyle('color: rgb(136, 19, 145); margin-right: -13px'); |
+ valueStyle = 'margin-left: 13px'; |
+ } |
if (_debugger._typeof(child.value) == 'object' || _debugger._typeof(child.value) == 'function') { |
- nameSpan.addStyle("padding-left: 13px;"); |
- li.appendChild(nameSpan); |
- let objectTag = li.createObjectTag(child.value); |
- objectTag.addAttribute('config', child.config); |
- if (!dart.test(this[_simpleFormatter].hasChildren(child.value, child.config))) { |
- li.setStyle("padding-left: 13px;"); |
+ let valueSpan = new _debugger.JsonMLElement('span'); |
+ valueSpan.setStyle(valueStyle); |
+ valueSpan.createObjectTag(child.value).addAttribute('config', child.config); |
+ if (nameSpan != null) { |
+ li.appendChild(nameSpan); |
} |
+ li.appendChild(valueSpan); |
} else { |
- li.setStyle("padding-left: 13px;"); |
- let _ = li.createChild('span'); |
- _.appendChild(nameSpan); |
- _.createTextChild(_debugger.safePreview(child.value, child.config)); |
+ let line = li.createChild('span'); |
+ if (nameSpan != null) { |
+ line.appendChild(nameSpan); |
+ } |
+ line.appendChild((() => { |
+ let _ = new _debugger.JsonMLElement('span'); |
+ _.createTextChild(_debugger.safePreview(child.value, child.config)); |
+ _.setStyle(valueStyle); |
+ return _; |
+ })()); |
} |
} |
return body.toJsonML(); |
@@ -3528,7 +3606,7 @@ const _formatters = Symbol('_formatters'); |
_debugger.DartFormatter = class DartFormatter extends core.Object { |
new() { |
this[_formatters] = null; |
- this[_formatters] = JSArrayOfFormatter().of([new _debugger.ClassFormatter(), new _debugger.NamedConstructorFormatter(), new _debugger.MapFormatter(), new _debugger.IterableFormatter(), new _debugger.IterableSpanFormatter(), new _debugger.MapEntryFormatter(), new _debugger.StackTraceFormatter(), new _debugger.FunctionFormatter(), new _debugger.HeritageClauseFormatter(), new _debugger.LibraryModuleFormatter(), new _debugger.LibraryFormatter(), new _debugger.ObjectFormatter()]); |
+ this[_formatters] = JSArrayOfFormatter().of([new _debugger.ClassFormatter(), new _debugger.TypeFormatter(), new _debugger.NamedConstructorFormatter(), new _debugger.MapFormatter(), new _debugger.IterableFormatter(), new _debugger.IterableSpanFormatter(), new _debugger.MapEntryFormatter(), new _debugger.StackTraceFormatter(), new _debugger.FunctionFormatter(), new _debugger.HeritageClauseFormatter(), new _debugger.LibraryModuleFormatter(), new _debugger.LibraryFormatter(), new _debugger.ObjectFormatter()]); |
} |
preview(object, config) { |
try { |
@@ -3592,42 +3670,14 @@ _debugger.ObjectFormatter = class ObjectFormatter extends _debugger.Formatter { |
return true; |
} |
children(object) { |
- let properties = LinkedHashSetOfNameValuePair().new(); |
- _debugger.addMetadataChildren(object, properties); |
- let current = object; |
- let protoChain = JSArrayOfObject().of([]); |
- while (current != null && !dart.test(_debugger.isNativeJavaScriptObject(current)) && current !== Object.prototype) { |
- protoChain[dartx.add](current); |
- current = _debugger.safeGetProperty(current, '__proto__'); |
- } |
- for (current of protoChain) { |
- for (let symbol of _debugger.getOwnPropertySymbols(current)) { |
- let dartName = _debugger.symbolName(symbol); |
- if (dart.test(_debugger.hasMethod(object, dartName))) { |
- continue; |
- } |
- let dartXPrefix = 'dartx.'; |
- if (dart.test(dartName[dartx.startsWith](dartXPrefix))) { |
- dartName = dartName[dartx.substring](dartXPrefix[dartx.length]); |
- } else if (!dart.test(dartName[dartx.startsWith]('_'))) { |
- continue; |
- } |
- let value = _debugger.safeGetProperty(object, symbol); |
- properties.add(new _debugger.NameValuePair({name: dartName, value: value})); |
- } |
- } |
- for (current of protoChain) { |
- let className = dart.dload(dart.getReifiedType(current), 'name'); |
- for (let name of _debugger.getOwnPropertyNames(current)) { |
- if (dart.test(_debugger.ObjectFormatter._customNames.contains(name)) || dart.equals(name, className)) continue; |
- if (dart.test(_debugger.hasMethod(object, name))) { |
- continue; |
- } |
- let value = _debugger.safeGetProperty(object, name); |
- properties.add(new _debugger.NameValuePair({name: name, value: value})); |
- } |
- } |
- return properties.toList(); |
+ let type = dart.getType(object); |
+ let ret = LinkedHashSetOfNameValuePair().new(); |
+ let properties = SetOfNameValuePair().new(); |
+ _debugger.addPropertiesFromSignature(dart.getFieldSig(type), properties, object, true); |
+ _debugger.addPropertiesFromSignature(dart.getGetterSig(type), properties, object, true); |
+ ret.addAll(_debugger.sortProperties(properties)); |
+ _debugger.addMetadataChildren(object, ret); |
+ return ret.toList(); |
} |
}; |
dart.setSignature(_debugger.ObjectFormatter, { |
@@ -3638,28 +3688,16 @@ dart.setSignature(_debugger.ObjectFormatter, { |
children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic]) |
}) |
}); |
-dart.defineLazy(_debugger.ObjectFormatter, { |
- get _customNames() { |
- return (() => { |
- let _ = SetOfString().new(); |
- _.add('constructor'); |
- _.add('prototype'); |
- _.add('__proto__'); |
- return _; |
- })(); |
- }, |
- set _customNames(_) {} |
-}); |
_debugger.LibraryModuleFormatter = class LibraryModuleFormatter extends core.Object { |
accept(object, config) { |
- return dart.getDartLibraryName(object) != null; |
+ return dart.getModuleName(object) != null; |
} |
hasChildren(object) { |
return true; |
} |
preview(object) { |
- let libraryNames = dart.dsend(dart.getDartLibraryName(object), 'split', '/'); |
- if (dart.test(dart.dsend(dart.dload(libraryNames, 'length'), '>', 1))) { |
+ let libraryNames = dart.dsend(dart.getModuleName(object), 'split', '/'); |
+ if (dart.test(dart.dsend(dart.dload(libraryNames, 'length'), '>', 1)) && dart.equals(dart.dload(libraryNames, 'last'), dart.dindex(libraryNames, dart.dsend(dart.dload(libraryNames, 'length'), '-', 2)))) { |
dart.dsetindex(libraryNames, dart.dsend(dart.dload(libraryNames, 'length'), '-', 1), ''); |
} |
return dart.str`Library Module: ${dart.dsend(libraryNames, 'join', '/')}`; |
@@ -3668,7 +3706,6 @@ _debugger.LibraryModuleFormatter = class LibraryModuleFormatter extends core.Obj |
let children = LinkedHashSetOfNameValuePair().new(); |
for (let name of _debugger.getOwnPropertyNames(object)) { |
let value = _debugger.safeGetProperty(object, name); |
- name = dart.str`${name[dartx.replaceAll]("__", "/")}.dart`; |
children.add(new _debugger.NameValuePair({name: name, value: new _debugger.Library(name, value), hideName: true})); |
} |
return children.toList(); |
@@ -3698,36 +3735,16 @@ _debugger.LibraryFormatter = class LibraryFormatter extends core.Object { |
} |
children(object) { |
let children = LinkedHashSetOfNameValuePair().new(); |
- let nonGenericProperties = LinkedHashMapOfString$Object().new(); |
let objectProperties = _debugger.safeProperties(dart.dload(object, 'object')); |
dart.dsend(objectProperties, 'forEach', dart.fn((name, value) => { |
- let genericTypeConstructor = dart.getGenericTypeCtor(value); |
- if (genericTypeConstructor != null) { |
- this.recordGenericParameters(core.String._check(name), genericTypeConstructor); |
- } else { |
- nonGenericProperties._set(core.String._check(name), value); |
- } |
+ if (dart.getGenericTypeCtor(value) != null) return; |
+ children.add(_debugger.NameValuePair._check(dart.test(dart.isType(value)) ? this.classChild(core.String._check(name), value) : new _debugger.NameValuePair({name: core.String._check(name), value: value}))); |
}, dynamicAnddynamicToNull())); |
- nonGenericProperties.forEach(dart.fn((name, value) => { |
- if (core.Type.is(value)) { |
- children.add(_debugger.NameValuePair._check(this.classChild(name, value))); |
- } else { |
- children.add(new _debugger.NameValuePair({name: name, value: value})); |
- } |
- }, StringAndObjectToNull())); |
return children.toList(); |
} |
- recordGenericParameters(name, genericTypeConstructor) { |
- this.genericParameters._set(name, genericTypeConstructor.toString()[dartx.split](' =>')[dartx.first][dartx.replaceAll](core.RegExp.new('[(|)]'), '')); |
- } |
classChild(name, child) { |
- let typeName = _debugger.getTypeName(core.Type._check(child)); |
- let parameterName = dart.str`${name}\$`; |
- if (dart.test(this.genericParameters.keys[dartx.contains](parameterName))) { |
- typeName = dart.str`${typeName}<${this.genericParameters._get(parameterName)}>`; |
- _debugger.JSNative.setProperty(child, 'genericTypeName', typeName); |
- } |
- return new _debugger.NameValuePair({name: typeName, value: child}); |
+ let typeName = _debugger.getTypeName(child); |
+ return new _debugger.NameValuePair({name: typeName, value: child, config: _debugger.JsonMLConfig.asClass}); |
} |
}; |
_debugger.LibraryFormatter[dart.implements] = () => [_debugger.Formatter]; |
@@ -3738,7 +3755,6 @@ dart.setSignature(_debugger.LibraryFormatter, { |
hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]), |
preview: dart.definiteFunctionType(core.String, [dart.dynamic]), |
children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic]), |
- recordGenericParameters: dart.definiteFunctionType(dart.dynamic, [core.String, core.Object]), |
classChild: dart.definiteFunctionType(dart.dynamic, [core.String, core.Object]) |
}) |
}); |
@@ -3955,60 +3971,49 @@ dart.setSignature(_debugger.StackTraceFormatter, { |
}); |
_debugger.ClassFormatter = class ClassFormatter extends core.Object { |
accept(object, config) { |
- return core.Type.is(object) || dart.equals(config, _debugger.JsonMLConfig.asClass); |
+ return dart.equals(config, _debugger.JsonMLConfig.asClass); |
} |
- preview(object) { |
- let typeName = _debugger.safeGetProperty(object, 'genericTypeName'); |
- if (typeName != null) return core.String._check(typeName); |
- let type = _debugger._getType(object); |
+ preview(type) { |
let implements$ = dart.getImplements(type); |
- typeName = _debugger.getTypeName(core.Type._check(type)); |
+ let typeName = _debugger.getTypeName(type); |
if (implements$ != null) { |
let typeNames = dart.dsend(dart.dcall(implements$), 'map', _debugger.getTypeName); |
return dart.str`${typeName} implements ${dart.dsend(typeNames, 'join', ", ")}`; |
} else { |
- return core.String._check(typeName); |
+ return typeName; |
} |
} |
hasChildren(object) { |
return true; |
} |
- children(object) { |
- let type = _debugger._getType(object); |
- let children = JSArrayOfNameValuePair().of([]); |
- let typeName = _debugger.getTypeName(core.Type._check(_debugger._getType(object))); |
+ children(type) { |
+ let ret = LinkedHashSetOfNameValuePair().new(); |
+ let staticProperties = SetOfNameValuePair().new(); |
+ let staticMethods = SetOfNameValuePair().new(); |
+ _debugger.addPropertiesFromSignature(dart.getStaticFieldSig(type), staticProperties, type, false); |
+ _debugger.addPropertiesFromSignature(dart.getStaticGetterSig(type), staticProperties, type, false); |
+ _debugger.addPropertiesFromSignature(dart.getStaticSig(type), staticMethods, type, false); |
+ if (dart.test(staticProperties.isNotEmpty) || dart.test(staticMethods.isNotEmpty)) { |
+ ret.add(new _debugger.NameValuePair({value: '[[Static members]]', hideName: true})); |
+ ret.addAll(_debugger.sortProperties(staticProperties)); |
+ ret.addAll(_debugger.sortProperties(staticMethods)); |
+ } |
+ let instanceMethods = SetOfNameValuePair().new(); |
+ _debugger.addPropertiesFromSignature(dart.getMethodSig(type), instanceMethods, type.prototype, false, {tagTypes: true}); |
+ if (dart.test(instanceMethods.isNotEmpty)) { |
+ ret.add(new _debugger.NameValuePair({value: '[[Instance Methods]]', hideName: true})); |
+ ret.addAll(_debugger.sortProperties(instanceMethods)); |
+ } |
+ let typeName = _debugger.getTypeName(type); |
let mixins = dart.getMixins(type); |
if (mixins != null && dart.test(dart.dload(mixins, 'isNotEmpty'))) { |
- children[dartx.add](new _debugger.NameValuePair({name: '[[Mixins]]', value: new _debugger.HeritageClause('mixins', core.List._check(mixins))})); |
+ ret.add(new _debugger.NameValuePair({name: '[[Mixins]]', value: new _debugger.HeritageClause('mixins', core.List._check(mixins))})); |
} |
- let hiddenProperties = JSArrayOfString().of(['length', 'name', 'prototype', 'genericTypeName']); |
- for (let name of _debugger.getOwnPropertyNames(object)) { |
- if (dart.test(hiddenProperties[dartx.contains](name))) continue; |
- let value = _debugger.safeGetProperty(object, name); |
- if (value != null && dart.getIsNamedConstructor(value) != null) { |
- value = new _debugger.NamedConstructor(value); |
- name = dart.str`${typeName}.${name}`; |
- } |
- children[dartx.add](new _debugger.NameValuePair({name: name, value: value})); |
- } |
- let hiddenPrototypeProperties = JSArrayOfString().of(['constructor', 'new', '$identityHash']); |
- let prototype = object.prototype; |
- if (prototype != null) { |
- for (let name of _debugger.getOwnPropertyNames(prototype)) { |
- if (dart.test(hiddenPrototypeProperties[dartx.contains](name))) continue; |
- let func = _debugger.safeGetProperty(prototype, name); |
- let constructor = _debugger.safeGetProperty(prototype, 'constructor'); |
- let sigObj = dart.getMethodSig(constructor); |
- if (sigObj != null) { |
- let value = _debugger.safeGetProperty(sigObj, name); |
- if (_debugger.getTypeName(core.Type._check(dart.getReifiedType(value))) != 'Null') { |
- dart.tag(func, value); |
- children[dartx.add](new _debugger.NameValuePair({name: name, value: func})); |
- } |
- } |
- } |
+ let baseProto = type.__proto__; |
+ if (baseProto != null && !dart.test(dart.isJsInterop(baseProto))) { |
+ ret.add(new _debugger.NameValuePair({name: "[[base class]]", value: baseProto, config: _debugger.JsonMLConfig.asClass})); |
} |
- return children; |
+ return ret.toList(); |
} |
}; |
_debugger.ClassFormatter[dart.implements] = () => [_debugger.Formatter]; |
@@ -4020,11 +4025,42 @@ dart.setSignature(_debugger.ClassFormatter, { |
children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic]) |
}) |
}); |
+_debugger.TypeFormatter = class TypeFormatter extends core.Object { |
+ accept(object, config) { |
+ return core.Type.is(object); |
+ } |
+ preview(object) { |
+ return dart.toString(object); |
+ } |
+ hasChildren(object) { |
+ return false; |
+ } |
+ children(object) { |
+ return JSArrayOfNameValuePair().of([]); |
+ } |
+}; |
+_debugger.TypeFormatter[dart.implements] = () => [_debugger.Formatter]; |
+dart.setSignature(_debugger.TypeFormatter, { |
+ methods: () => ({ |
+ accept: dart.definiteFunctionType(core.bool, [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]) |
+ }) |
+}); |
_debugger.registerDevtoolsFormatter = function() { |
let formatters = JSArrayOfJsonMLFormatter().of([_debugger._devtoolsFormatter]); |
dart.global.devtoolsFormatters = formatters; |
}; |
dart.fn(_debugger.registerDevtoolsFormatter, VoidTodynamic$()); |
+_debugger.getModuleNames = function() { |
+ return dart.getModuleNames(); |
+}; |
+dart.fn(_debugger.getModuleNames, VoidTodynamic$()); |
+_debugger.getModuleLibraries = function(name) { |
+ return dart.getModuleLibraries(name); |
+}; |
+dart.lazyFn(_debugger.getModuleLibraries, () => StringTodynamic()); |
_foreign_helper.JS = function(typeDescription, codeTemplate, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) { |
if (arg0 === void 0) arg0 = null; |
if (arg1 === void 0) arg1 = null; |
@@ -11386,6 +11422,11 @@ _js_embedded_names.TYPEDEF_TYPE_PROPERTY_NAME = "$typedefType"; |
_js_embedded_names.TYPEDEF_PREDICATE_PROPERTY_NAME = "$$isTypedef"; |
_js_embedded_names.NATIVE_SUPERCLASS_TAG_NAME = "$nativeSuperclassTag"; |
_js_embedded_names.MAP_TYPE_TO_INTERCEPTOR = "mapTypeToInterceptor"; |
+dart.defineLazy(_js_helper, { |
+ get _identityHashCode() { |
+ return Symbol("_identityHashCode"); |
+ } |
+}); |
_js_helper._Patch = class _Patch extends core.Object { |
new() { |
} |
@@ -11405,10 +11446,10 @@ _js_helper.Primitives = class Primitives extends core.Object { |
_js_helper.Primitives.mirrorInvokeCacheName = dart.notNull(_js_helper.Primitives.mirrorInvokeCacheName) + dart.str`_${id}`; |
} |
static objectHashCode(object) { |
- let hash = object.$identityHash; |
+ let hash = object[_js_helper._identityHashCode]; |
if (hash == null) { |
hash = Math.random() * 0x3fffffff | 0; |
- object.$identityHash = hash; |
+ object[_js_helper._identityHashCode] = hash; |
} |
return hash; |
} |
@@ -104474,3 +104515,4 @@ dart.setSignature(web_sql.SqlTransaction, { |
methods: () => ({[dartx.executeSql]: dart.definiteFunctionType(dart.void, [core.String, ListOfObject()], [web_sql.SqlStatementCallback, web_sql.SqlStatementErrorCallback])}) |
}); |
dart.registerExtension(dart.global.SQLTransaction, web_sql.SqlTransaction); |
+dart.trackLibraries("dart_sdk", {"dart:_runtime": dart, "dart:_debugger": _debugger, "dart:_foreign_helper": _foreign_helper, "dart:_interceptors": _interceptors, "dart:_internal": _internal, "dart:_isolate_helper": _isolate_helper, "dart:_js_embedded_names": _js_embedded_names, "dart:_js_helper": _js_helper, "dart:_js_mirrors": _js_mirrors, "dart:_js_primitives": _js_primitives, "dart:_metadata": _metadata, "dart:_native_typed_data": _native_typed_data, "dart:async": async, "dart:collection": collection, "dart:convert": convert, "dart:core": core, "dart:developer": developer, "dart:io": io, "dart:isolate": isolate, "dart:js": js, "dart:js_util": js_util, "dart:math": math, "dart:mirrors": mirrors, "dart:typed_data": typed_data, "dart:indexed_db": indexed_db, "dart:html": html$, "dart:html_common": html_common, "dart:svg": svg$, "dart:web_audio": web_audio, "dart:web_gl": web_gl, "dart:web_sql": web_sql}); |