| Index: runtime/observatory/tests/ui/inspector.dart
|
| diff --git a/runtime/observatory/tests/ui/inspector.dart b/runtime/observatory/tests/ui/inspector.dart
|
| index 450cfeb302f0c39abd816c6ec3a0c35b9742ab67..1befdf61cecaec344a7467ad0f95b5cc3758cc14 100644
|
| --- a/runtime/observatory/tests/ui/inspector.dart
|
| +++ b/runtime/observatory/tests/ui/inspector.dart
|
| @@ -6,158 +6,243 @@
|
|
|
| library manual_inspector_test;
|
|
|
| +import 'dart:async';
|
| import 'dart:isolate';
|
| import 'dart:mirrors';
|
| import 'dart:developer';
|
| import 'dart:typed_data';
|
|
|
| -class A <T> {}
|
| -class B <S extends num> {}
|
| +part 'inspector_part.dart';
|
|
|
| -var array;
|
| -var bigint;
|
| -var blockClean;
|
| -var blockCopying;
|
| -var blockFull;
|
| -var blockFullWithChain;
|
| -var boundedType;
|
| -var capability;
|
| -var counter;
|
| -var expando;
|
| -var float32x4;
|
| -var float64;
|
| -var float64x2;
|
| -var gauge;
|
| -var growableList;
|
| -var int32x4;
|
| -var isolate;
|
| -var map;
|
| -var mint;
|
| -var mirrorClass;
|
| -var mirrorClosure;
|
| -var mirrorInstance;
|
| -var mirrorReference;
|
| -var portReceive;
|
| -var portSend;
|
| -var regex;
|
| -var smi;
|
| -var stacktrace;
|
| -var string;
|
| -var stringEscapedUnicodeEscape;
|
| -var stringHebrew;
|
| -var stringLatin1;
|
| -var stringMalformedLead;
|
| -var stringMalformedTrail;
|
| -var stringNewLinesAndTabs;
|
| -var stringNullInTheMiddle;
|
| -var stringSnowflake;
|
| -var stringTrebleClefs;
|
| -var stringUnicode;
|
| -var theFalse;
|
| -var theNull;
|
| -var theTrue;
|
| -var type;
|
| -var typeParameter;
|
| -var typedData;
|
| +var libraryField;
|
| +var node;
|
| var uninitialized = new Object();
|
| -var userTag;
|
| -var weakProperty;
|
|
|
| extractPrivateField(obj, name) {
|
| return reflect(obj).getField(MirrorSystem.getSymbol(name, reflect(obj).type.owner)).reflectee;
|
| }
|
|
|
| -genStacktrace() {
|
| - try {
|
| - num.parse(',');
|
| - } catch (e, s) {
|
| - return s;
|
| +class A <T> {}
|
| +class B <S extends num> {}
|
| +
|
| +class Node {
|
| + static var classField;
|
| +
|
| + var nullable;
|
| + var mixedType;
|
| + var array;
|
| + var bigint;
|
| + var blockClean;
|
| + var blockCopying;
|
| + var blockFull;
|
| + var blockFullWithChain;
|
| + var boundedType;
|
| + var capability;
|
| + var counter;
|
| + var expando;
|
| + var float32x4;
|
| + var float64;
|
| + var float64x2;
|
| + var gauge;
|
| + var growableList;
|
| + var int32x4;
|
| + var isolate;
|
| + var map;
|
| + var mint;
|
| + var mirrorClass;
|
| + var mirrorClosure;
|
| + var mirrorInstance;
|
| + var mirrorReference;
|
| + var portReceive;
|
| + var portSend;
|
| + var regex;
|
| + var smi;
|
| + var stacktrace;
|
| + var string;
|
| + var stringLatin1;
|
| + var stringSnowflake;
|
| + var stringUnicode;
|
| + var stringHebrew;
|
| + var stringTrebleClef;
|
| + var theFalse;
|
| + var theNull;
|
| + var theTrue;
|
| + var type;
|
| + var typeParameter;
|
| + var typedData;
|
| + var userTag;
|
| + var weakProperty;
|
| +
|
| + genStacktrace() {
|
| + try {
|
| + num.parse(',');
|
| + } catch (e, s) {
|
| + return s;
|
| + }
|
| }
|
| -}
|
|
|
| -genCleanBlock() {
|
| - block(x) => x;
|
| - return block;
|
| -}
|
| + genCleanBlock() {
|
| + block(x) => x;
|
| + return block;
|
| + }
|
| +
|
| + genCopyingBlock() {
|
| + final x = 'I could be copied down';
|
| + block() => x;
|
| + return block;
|
| + }
|
| +
|
| + genFullBlock() {
|
| + var x = 0;
|
| + block() => x++;
|
| + return block;
|
| + }
|
|
|
| -genCopyingBlock() {
|
| - final x = 'I could be copied down';
|
| - block() => x;
|
| - return block;
|
| + genFullBlockWithChain() {
|
| + var x = 0;
|
| + outer() {
|
| + var y = 0;
|
| + block() => x++ + y++;
|
| + return block;
|
| + }
|
| + return outer;
|
| + }
|
| +
|
| + f(int x) {
|
| + ++x;
|
| + return x;
|
| + }
|
| +
|
| + main() {
|
| + print("Started main");
|
| +
|
| + f(9);
|
| +
|
| + nullable = 1;
|
| + nullable = null;
|
| + nullable = 1;
|
| + mixedType = 1;
|
| + mixedType = "2";
|
| + mixedType = false;
|
| +
|
| + array = [1, 2, 3];
|
| + bigint = 1 << 65;
|
| + blockClean = genCleanBlock();
|
| + blockCopying = genCopyingBlock();
|
| + blockFull = genFullBlock();
|
| + blockFullWithChain = genFullBlockWithChain();
|
| + boundedType = extractPrivateField(reflect(new B<int>()).type.typeVariables.single, '_reflectee');
|
| + counter = new Counter("CounterName", "Counter description");
|
| + expando = new Expando("expando-name");
|
| + expando[array] = 'The weakly associated value';
|
| + float32x4 = new Float32x4.zero();
|
| + float64 = 3.14;
|
| + float64x2 = new Float64x2.zero();
|
| + gauge = new Gauge("GuageName", "Guage description", 0.0, 100.0);
|
| + growableList = new List();
|
| + int32x4 = new Int32x4(0,0,0,0);
|
| + map = { "x-key": "x-value", "y-key": "y-value", "removed-key": "removed-value" };
|
| + map.remove("removed-key");
|
| + mint = 1 << 32;
|
| + mirrorClass = reflectClass(Object);
|
| + mirrorClosure = reflect(blockFull);
|
| + mirrorInstance = reflect("a reflectee");
|
| + mirrorReference = extractPrivateField(mirrorClass, '_reflectee');
|
| + portReceive = new RawReceivePort();
|
| + portSend = portReceive.sendPort;
|
| + regex = new RegExp("a*b+c");
|
| + smi = 7;
|
| + stacktrace = genStacktrace();
|
| + string = "Hello $smi ${smi.runtimeType}";
|
| + stringLatin1 = "blåbærgrød";
|
| + stringSnowflake = "❄";
|
| + stringUnicode = "Îñţérñåţîöñåļîžåţîờñ";
|
| + stringHebrew = "שלום רב שובך צפורה נחמדת"; // An example of Right-to-Left.
|
| + stringTrebleClef = "𝄞"; // An example of a surrogate pair.
|
| + theFalse = false;
|
| + theNull = null;
|
| + theTrue = true;
|
| + type = String;
|
| + typeParameter = extractPrivateField(reflectClass(A).typeVariables.single, '_reflectee');
|
| + typedData = extractPrivateField(new ByteData(64), '_typedData');
|
| + userTag = new UserTag("Example tag name");
|
| + weakProperty = extractPrivateField(expando, '_data').firstWhere((e) => e != null);
|
| +
|
| + Isolate.spawn(secondMain, "Hello2").then((otherIsolate) {
|
| + isolate = otherIsolate;
|
| + portSend = otherIsolate.controlPort;
|
| + capability = otherIsolate.terminateCapability;
|
| + });
|
| + Isolate.spawn(secondMain, "Hello3").then((otherIsolate) {
|
| + isolate = otherIsolate;
|
| + portSend = otherIsolate.controlPort;
|
| + capability = otherIsolate.terminateCapability;
|
| + });
|
| +
|
| + print("Finished main");
|
| + busy();
|
| + }
|
| +
|
| + busy() {
|
| + var localVar = 0;
|
| + while (true) {
|
| + localVar = (localVar + 1) & 0xFFFF;
|
| + }
|
| + }
|
| }
|
|
|
| -genFullBlock() {
|
| - var x = 0;
|
| - block() => x++;
|
| - return block;
|
| +secondMain(msg) {
|
| + print("Hello from second isolate");
|
| }
|
|
|
| -genFullBlockWithChain() {
|
| - var x = 0;
|
| - outer() {
|
| - var y = 0;
|
| - block() => x++ + y++;
|
| - return block;
|
| +var typed;
|
| +class Typed {
|
| + var float32List = new Float32List(16);
|
| + var float64List = new Float64List(16);
|
| +
|
| + var int32x4 = new Int32x4(1, 2, 3, 4);
|
| + var float32x4 = new Float32x4.zero();
|
| + var float64x2 = new Float64x2.zero();
|
| + var int32x4List = new Int32x4List(16);
|
| + var float32x4List = new Float32x4List(16);
|
| + var float64x2List = new Float64x2List(16);
|
| +
|
| + var int8List = new Int8List(8);
|
| + var int16List = new Int16List(8);
|
| + var int32List = new Int32List(8);
|
| + var int64List = new Int64List(8);
|
| + var uint8List = new Uint8List(8);
|
| + var uint16List = new Uint16List(8);
|
| + var uint32List = new Uint32List(8);
|
| + var uint64List = new Uint64List(8);
|
| + var uint8ClampedList = new Uint8ClampedList(8);
|
| +
|
| + var byteBuffer = new Uint8List(8).buffer;
|
| + var byteBuffer2 = new Float32List(8).buffer;
|
| +
|
| + var byteData = new ByteData(8);
|
| +
|
| + Typed() {
|
| + float32List[0] = 3.14;
|
| + int8List[0] = 5;
|
| }
|
| - return outer;
|
| -}
|
|
|
| -secondMain(msg) { }
|
| + Typed._named() {
|
| + float32List[0] = 3.14;
|
| + int8List[0] = 5;
|
| + }
|
| +}
|
|
|
| main() {
|
| - print("Started main");
|
| -
|
| - array = new List(1);
|
| - bigint = 1 << 65;
|
| - blockClean = genCleanBlock();
|
| - blockCopying = genCopyingBlock();
|
| - blockFull = genFullBlock();
|
| - blockFullWithChain = genFullBlockWithChain();
|
| - boundedType = extractPrivateField(reflect(new B<int>()).type.typeVariables.single, '_reflectee');
|
| - counter = new Counter("CounterName", "Counter description");
|
| - expando = new Expando("expando-name");
|
| - expando[array] = 'The weakly associated value';
|
| - float32x4 = new Float32x4.zero();
|
| - float64 = 3.14;
|
| - float64x2 = new Float64x2.zero();
|
| - gauge = new Gauge("GaugeName", "Gauge description", 0.0, 100.0);
|
| - growableList = new List();
|
| - int32x4 = new Int32x4(0,0,0,0);
|
| - map = { "x":3, "y":4 };
|
| - mint = 1 << 32;
|
| - mirrorClass = reflectClass(Object);
|
| - mirrorClosure = reflect(blockFull);
|
| - mirrorInstance = reflect("a reflectee");
|
| - mirrorReference = extractPrivateField(mirrorClass, '_reflectee');
|
| - portReceive = new RawReceivePort();
|
| - regex = new RegExp("a*b+c");
|
| - smi = 7;
|
| - stacktrace = genStacktrace();
|
| - string = "Hello";
|
| - stringEscapedUnicodeEscape = "Should not be A: \\u0041";
|
| - stringHebrew = "שלום רב שובך צפורה נחמדת"; // Right-to-left text.
|
| - stringLatin1 = "blåbærgrød";
|
| - stringMalformedLead = "before" + "𝄞"[0] + "after";
|
| - stringMalformedTrail = "before" + "𝄞"[1] + "after";
|
| - stringNewLinesAndTabs = "One fish\ttwo fish\nRed fish\tBlue fish\n";
|
| - stringNullInTheMiddle = "There are four\u0000 words.";
|
| - stringSnowflake = "❄";
|
| - stringTrebleClefs = "1𝄞2𝄞𝄞3𝄞𝄞𝄞"; // Surrogate pair.
|
| - stringUnicode = "Îñţérñåţîöñåļîžåţîờñ";
|
| - theFalse = false;
|
| - theNull = null;
|
| - theTrue = true;
|
| - type = String;
|
| - typeParameter = extractPrivateField(reflectClass(A).typeVariables.single, '_reflectee');
|
| - typedData = extractPrivateField(new ByteData(64), '_typedData');
|
| - userTag = new UserTag("Example tag name");
|
| - weakProperty = extractPrivateField(expando, '_data').firstWhere((e) => e != null);
|
| -
|
| - Isolate.spawn(secondMain, "Hello").then((otherIsolate) {
|
| - isolate = otherIsolate;
|
| - portSend = otherIsolate.controlPort;
|
| - capability = otherIsolate.terminateCapability;
|
| - });
|
| -
|
| - print("Finished main");
|
| + libraryField = 'Library field value';
|
| + Node.classField = 'Class field value';
|
| + typed = new Typed();
|
| + node = new Node();
|
| + node.main();
|
| +}
|
| +
|
| +class C {
|
| + static doPrint() {
|
| + print("Original");
|
| + }
|
| }
|
|
|