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

Unified Diff: tests/html/dromaeo_noop/dromaeo_smoke.dart.js

Issue 12086028: Fix up dromaeo after lib v2 merge and add Dromaeo smoketest to prevent future (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 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:
View side-by-side diff with in-line comments
Download patch
Index: tests/html/dromaeo_noop/dromaeo_smoke.dart.js
diff --git a/tests/html/dromaeo_noop/dromaeo_smoke.dart.js b/tests/html/dromaeo_noop/dromaeo_smoke.dart.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b39b98de5e48c056d2d0e2057e1c8ebb0386874
--- /dev/null
+++ b/tests/html/dromaeo_noop/dromaeo_smoke.dart.js
@@ -0,0 +1,6099 @@
+// Generated by dart2js, the Dart to JavaScript compiler.
+// The code supports the following hooks:
+// dartPrint(message) - if this function is defined it is called
+// instead of the Dart [print] method.
+// dartMainRunner(main) - if this function is defined, the Dart [main]
+// method will not be invoked directly.
+// Instead, a closure that will invoke [main] is
+// passed to [dartMainRunner].
+
+/// Oh noes! Checked in generated code! Why?
+///
+/// The test added to our bots checks to guarantee the Dromaeo test *runner* is
+/// functioning correctly. The Dromaeo test runner, during normal operation,
+/// combines a number of individual standalone test files
+/// (see dom-attr-html.dart for an example of a standalone test) into iFrames
+/// to run all together.
+///
+/// For this smoke test I instead am running a dummy test
+/// (dromaeo_noop/dromaeo_smoke.dart). So, the dummy test itself is not really
+/// testing anything in our code; it is simply a mechanism to test the Dromaeo
+/// test runner! Our test framework assumes that each test only consists of one
+/// dart entry point and html file, so it doesn't compile any extra dart files
+/// that might be used, in this case dromaeo_smoke.dart. So this is the
+/// JavaScript version of dromaeo_smoke.dart.
Emily Fortuna 2013/01/30 01:15:56 This was the best solution I came up with, short o
vsm 2013/01/30 22:35:51 It is pretty ugly to check this in, but I don't ha
+
+function Isolate() {}
+init();
+
+var $$ = {};
+var $ = Isolate.$isolateProperties;
+$$.DartError = {"": "Object;",
+ get$stack: function() {
+ return this.stack;
+ },
+ toString$0: function() {
+ var dartException = this.dartException;
+ if (!!Error.captureStackTrace || this.get$stack() == null)
+ return $.toString(dartException);
+ else
+ return $.S(dartException) + "\n" + $.S(this.get$stack());
+ },
+ DartError$1: function(dartException) {
+ this.dartException = dartException;
+ this.toString = $.DartError_toStringWrapper.call$0;
+ }
+};
+
+$$.StackTrace = {"": "Object;stack",
+ toString$0: function() {
+ var t1 = this.stack;
+ return !(t1 == null) ? t1 : "";
+ }
+};
+
+$$.Closure = {"": "Object;",
+ toString$0: function() {
+ return "Closure";
+ }
+};
+
+$$.Dynamic_ = {"": "Object;"};
+
+$$.Null = {"": "Object;"};
+
+$$.MetaInfo = {"": "Object;_tag>,_tags,_set>"};
+
+$$.JSSyntaxRegExp = {"": "Object;_liblib1$_pattern,_isMultiLine,_isCaseSensitive",
+ firstMatch$1: function(str) {
+ var m, matchStart, t1;
+ m = $.regExpExec(this, $.checkString(str));
+ if (m == null)
+ return;
+ matchStart = m.index;
+ t1 = $.length($.$$index(m, 0));
+ if (typeof t1 !== "number")
+ throw $.iae(t1);
+ return $._MatchImplementation$(this.get$pattern(), str, matchStart, matchStart + t1, m);
+ },
+ hasMatch$1: function(str) {
+ return $.regExpTest(this, $.checkString(str));
+ },
+ allMatches$1: function(str) {
+ $.checkString(str);
+ return $._AllMatchesIterable$(this, str);
+ },
+ get$pattern: function() {
+ return this._liblib1$_pattern;
+ },
+ get$isMultiLine: function() {
+ return this._isMultiLine;
+ },
+ get$isCaseSensitive: function() {
+ return this._isCaseSensitive;
+ },
+ $isJSSyntaxRegExp: true,
+ $isRegExp: true
+};
+
+$$._MatchImplementation = {"": "Object;pattern>,str,start,end,_groups",
+ end$0: function() {
+ return this.end.call$0();
+ },
+ $index: function(index) {
+ return $.$$index(this._groups, index);
+ }
+};
+
+$$._AllMatchesIterable = {"": "Iterable;_re,_str",
+ get$iterator: function() {
+ return $._AllMatchesIterator$(this._re, this._str);
+ }
+};
+
+$$._AllMatchesIterator = {"": "Object;_re,_str,_liblib1$_current",
+ get$current: function() {
+ return this._liblib1$_current;
+ },
+ moveNext$0: function() {
+ this._liblib1$_current = this._re.firstMatch$1(this._str);
+ return !(this._liblib1$_current == null);
+ }
+};
+
+$$.StringMatch = {"": "Object;start,str,pattern>",
+ get$end: function() {
+ return $.$$add(this.start, this.pattern.length);
+ },
+ end$0: function() {
+ return this.get$end().call$0();
+ },
+ $index: function(g) {
+ return this.group$1(g);
+ },
+ group$1: function(group_) {
+ if ($.$$eq(group_, 0) !== true)
+ throw $.$$throw($.RangeError$value(group_));
+ return this.pattern;
+ }
+};
+
+$$.Collection = {"": "Iterable;",
+ removeAll$1: function(elements) {
+ $.IterableMixinWorkaround_removeAll(this, elements);
+ },
+ removeMatching$1: function(test) {
+ $.IterableMixinWorkaround_removeMatching(this, test);
+ },
+ clear$0: function() {
+ $.IterableMixinWorkaround_removeMatching(this, new $.Collection_clear_anon());
+ },
+ $isCollection: function() {
+ return true;
+ }
+};
+
+$$.DateTime = {"": "Object;millisecondsSinceEpoch>,isUtc",
+ $eq: function(other) {
+ if (other == null)
+ return false;
+ if (!(typeof other === "object" && other !== null && !!other.$isDateTime))
+ return false;
+ return $.$$eq(this.millisecondsSinceEpoch, other.millisecondsSinceEpoch);
+ },
+ $lt: function(other) {
+ var t1, t3;
+ t1 = this.millisecondsSinceEpoch;
+ t3 = other.get$millisecondsSinceEpoch();
+ if (typeof t1 !== "number")
+ return this.$$lt$bailout(1, other, t1);
+ if (typeof t3 !== "number")
+ return this.$$lt$bailout(2, null, t1, t3);
+ return t1 < t3;
+ },
+ $$lt$bailout: function(state0, other, t1, t3) {
+ switch (state0) {
+ case 0:
+ t1 = this.millisecondsSinceEpoch;
+ case 1:
+ state0 = 0;
+ t3 = other.get$millisecondsSinceEpoch();
+ case 2:
+ state0 = 0;
+ return $.$$lt(t1, t3);
+ }
+ },
+ $gt: function(other) {
+ var t1, t3;
+ t1 = this.millisecondsSinceEpoch;
+ t3 = other.get$millisecondsSinceEpoch();
+ if (typeof t1 !== "number")
+ return this.$$gt$bailout(1, other, t1);
+ if (typeof t3 !== "number")
+ return this.$$gt$bailout(2, null, t1, t3);
+ return t1 > t3;
+ },
+ $$gt$bailout: function(state0, other, t1, t3) {
+ switch (state0) {
+ case 0:
+ t1 = this.millisecondsSinceEpoch;
+ case 1:
+ state0 = 0;
+ t3 = other.get$millisecondsSinceEpoch();
+ case 2:
+ state0 = 0;
+ return $.$$gt(t1, t3);
+ }
+ },
+ $ge: function(other) {
+ return $.$$ge(this.millisecondsSinceEpoch, other.get$millisecondsSinceEpoch());
+ },
+ compareTo$1: function(other) {
+ return $.compareTo(this.millisecondsSinceEpoch, other.get$millisecondsSinceEpoch());
+ },
+ get$hashCode: function() {
+ return this.millisecondsSinceEpoch;
+ },
+ toString$0: function() {
+ var t1, t2, t3, y, m, d, h, min, sec, ms;
+ t1 = new $.DateTime_toString_fourDigits();
+ t2 = new $.DateTime_toString_threeDigits();
+ t3 = new $.DateTime_toString_twoDigits();
+ y = t1.call$1(this.get$year());
+ m = t3.call$1(this.get$month());
+ d = t3.call$1(this.get$day());
+ h = t3.call$1(this.get$hour());
+ min = t3.call$1(this.get$minute());
+ sec = t3.call$1(this.get$second());
+ ms = t2.call$1(this.get$millisecond());
+ if (this.isUtc === true)
+ return $.S(y) + "-" + $.S(m) + "-" + $.S(d) + " " + $.S(h) + ":" + $.S(min) + ":" + $.S(sec) + "." + $.S(ms) + "Z";
+ else
+ return $.S(y) + "-" + $.S(m) + "-" + $.S(d) + " " + $.S(h) + ":" + $.S(min) + ":" + $.S(sec) + "." + $.S(ms);
+ },
+ add$1: function(duration) {
+ var ms, t2;
+ ms = this.millisecondsSinceEpoch;
+ t2 = duration.get$inMilliseconds();
+ if (typeof ms !== "number")
+ return this.add$1$bailout1(1, duration, ms);
+ if (typeof t2 !== "number")
+ return this.add$1$bailout1(2, null, ms, t2);
+ return $.DateTime$fromMillisecondsSinceEpoch(ms + t2, this.isUtc);
+ },
+ add$1$bailout1: function(state0, duration, ms, t2) {
+ switch (state0) {
+ case 0:
+ ms = this.millisecondsSinceEpoch;
+ case 1:
+ state0 = 0;
+ t2 = duration.get$inMilliseconds();
+ case 2:
+ state0 = 0;
+ return $.DateTime$fromMillisecondsSinceEpoch($.$$add(ms, t2), this.isUtc);
+ }
+ },
+ get$year: function() {
+ return $.Primitives_getYear(this);
+ },
+ get$month: function() {
+ return $.Primitives_getMonth(this);
+ },
+ get$day: function() {
+ return $.Primitives_getDay(this);
+ },
+ get$hour: function() {
+ return $.Primitives_getHours(this);
+ },
+ get$minute: function() {
+ return $.Primitives_getMinutes(this);
+ },
+ get$second: function() {
+ return $.Primitives_getSeconds(this);
+ },
+ get$millisecond: function() {
+ return $.Primitives_getMilliseconds(this);
+ },
+ DateTime$_now$0: function() {
+ $.Primitives_lazyAsJsDate(this);
+ },
+ DateTime$fromMillisecondsSinceEpoch$2$isUtc: function(millisecondsSinceEpoch, isUtc) {
+ if ($.$$gt($.abs(millisecondsSinceEpoch), 8640000000000000) === true)
+ throw $.$$throw($.ArgumentError$(millisecondsSinceEpoch));
+ if (isUtc == null)
+ throw $.$$throw($.ArgumentError$(isUtc));
+ },
+ $isDateTime: true
+};
+
+$$.NullThrownError = {"": "Object;",
+ toString$0: function() {
+ return "Throw of null.";
+ }
+};
+
+$$.ArgumentError = {"": "Object;message>",
+ toString$0: function() {
+ var t1 = this.message;
+ if (!(t1 == null))
+ return "Illegal argument(s): " + $.S(t1);
+ return "Illegal argument(s)";
+ }
+};
+
+$$.RangeError = {"": "ArgumentError;message",
+ toString$0: function() {
+ return "RangeError: " + $.S(this.message);
+ }
+};
+
+$$.NoSuchMethodError = {"": "Object;_receiver,_memberName,_arguments,_namedArguments,_existingArgumentNames",
+ toString$0: function() {
+ var t1, t2, t3, t4, i;
+ t1 = {};
+ t1.sb_0 = $.StringBuffer_StringBuffer("");
+ t1.i_1 = 0;
+ t2 = this._arguments;
+ if (typeof t2 !== "string" && (typeof t2 !== "object" || t2 === null || t2.constructor !== Array && !t2.$isJavaScriptIndexingBehavior()))
+ return this.toString$0$bailout(1, t1, t2);
+ for (; $.$$lt(t1.i_1, t2.length) === true; t1.i_1 = $.$$add(t1.i_1, 1)) {
+ if ($.$$gt(t1.i_1, 0) === true)
+ $.add(t1.sb_0, ", ");
+ t3 = t1.sb_0;
+ t4 = t1.i_1;
+ if (t4 !== (t4 | 0))
+ throw $.iae(t4);
+ if (t4 < 0 || t4 >= t2.length)
+ throw $.ioore(t4);
+ $.add(t3, $.Error_safeToString(t2[t4]));
+ }
+ t2 = this._namedArguments;
+ if (!(t2 == null))
+ $.forEach(t2, new $.NoSuchMethodError_toString_anon(t1));
+ t2 = this._existingArgumentNames;
+ if (typeof t2 !== "string" && (typeof t2 !== "object" || t2 === null || t2.constructor !== Array && !t2.$isJavaScriptIndexingBehavior()))
+ return this.toString$0$bailout(2, t1, t2);
+ t3 = $.toString(t1.sb_0);
+ t1.sb_0 = $.StringBuffer_StringBuffer("");
+ for (i = 0; i < t2.length; ++i) {
+ if (i > 0)
+ $.add(t1.sb_0, ", ");
+ t4 = t1.sb_0;
+ if (i >= t2.length)
+ throw $.ioore(i);
+ $.add(t4, t2[i]);
+ }
+ t2 = $.toString(t1.sb_0);
+ t4 = this._memberName;
+ return "NoSuchMethodError: incorrect number of arguments passed to method named '" + $.S(t4) + "'\n" + "Receiver: " + $.S($.Error_safeToString(this._receiver)) + "\n" + "Tried calling: " + $.S(t4) + "(" + $.S(t3) + ")\n" + "Found: " + $.S(t4) + "(" + $.S(t2) + ")";
+ },
+ toString$0$bailout: function(state0, t1, t2) {
+ switch (state0) {
+ case 0:
+ t1 = {};
+ t1.sb_0 = $.StringBuffer_StringBuffer("");
+ t1.i_1 = 0;
+ t2 = this._arguments;
+ case 1:
+ state0 = 0;
+ if (!(t2 == null))
+ for (t3 = $.getInterceptor$JSStringJSArray(t2); $.$$lt(t1.i_1, t3.get$length(t2)) === true; t1.i_1 = $.$$add(t1.i_1, 1)) {
+ if ($.$$gt(t1.i_1, 0) === true)
+ $.add(t1.sb_0, ", ");
+ $.add(t1.sb_0, $.Error_safeToString(t3.$index(t2, t1.i_1)));
+ }
+ t2 = this._namedArguments;
+ if (!(t2 == null))
+ $.forEach(t2, new $.NoSuchMethodError_toString_anon(t1));
+ t2 = this._existingArgumentNames;
+ case 2:
+ var t3, t4, i;
+ state0 = 0;
+ if (t2 == null)
+ return "NoSuchMethodError : method not found: '" + $.S(this._memberName) + "'\n" + "Receiver: " + $.S($.Error_safeToString(this._receiver)) + "\n" + "Arguments: [" + $.S(t1.sb_0) + "]";
+ else {
+ t3 = $.toString(t1.sb_0);
+ t1.sb_0 = $.StringBuffer_StringBuffer("");
+ for (t4 = $.getInterceptor$JSStringJSArray(t2), i = 0; $.CONSTANT4.$lt(i, t4.get$length(t2)); ++i) {
+ if (i > 0)
+ $.add(t1.sb_0, ", ");
+ $.add(t1.sb_0, t4.$index(t2, i));
+ }
+ t2 = $.toString(t1.sb_0);
+ t4 = this._memberName;
+ return "NoSuchMethodError: incorrect number of arguments passed to method named '" + $.S(t4) + "'\n" + "Receiver: " + $.S($.Error_safeToString(this._receiver)) + "\n" + "Tried calling: " + $.S(t4) + "(" + $.S(t3) + ")\n" + "Found: " + $.S(t4) + "(" + $.S(t2) + ")";
+ }
+ }
+ }
+};
+
+$$.UnsupportedError = {"": "Object;message>",
+ toString$0: function() {
+ return "Unsupported operation: " + $.S(this.get$message());
+ }
+};
+
+$$.UnimplementedError = {"": "Object;message>",
+ toString$0: function() {
+ var t1 = this.message;
+ return !(t1 == null) ? "UnimplementedError: " + $.S(t1) : "UnimplementedError";
+ }
+};
+
+$$.StateError = {"": "Object;message>",
+ toString$0: function() {
+ return "Bad state: " + this.message;
+ }
+};
+
+$$.ConcurrentModificationError = {"": "Object;modifiedObject",
+ toString$0: function() {
+ var t1 = this.modifiedObject;
+ if (t1 == null)
+ return "Concurrent modification during iteration.";
+ return "Concurrent modification during iteration: " + $.S($.Error_safeToString(t1)) + ".";
+ }
+};
+
+$$.StackOverflowError = {"": "Object;",
+ toString$0: function() {
+ return "Stack Overflow";
+ }
+};
+
+$$.RuntimeError = {"": "Object;message>",
+ toString$0: function() {
+ return "RuntimeError: " + this.message;
+ }
+};
+
+$$._ExceptionImplementation = {"": "Object;message>",
+ toString$0: function() {
+ var t1 = this.message;
+ if (t1 == null)
+ return "Exception";
+ return "Exception: " + $.S(t1);
+ }
+};
+
+$$.IllegalJSRegExpException = {"": "Object;_pattern,_errmsg",
+ toString$0: function() {
+ return "IllegalJSRegExpException: '" + $.S(this._pattern) + "' '" + this._errmsg + "'";
+ }
+};
+
+$$.Iterable = {"": "Object;",
+ contains$1: function(element) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ if ($.$$eq(t1.get$current(), element) === true)
+ return true;
+ return false;
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ },
+ toSet$0: function() {
+ return $.Set_Set$from(this);
+ },
+ get$length: function() {
+ var t1, count;
+ t1 = $.iterator(this);
+ for (count = 0; t1.moveNext$0() === true;)
+ ++count;
+ return count;
+ },
+ get$isEmpty: function() {
+ return $.iterator(this).moveNext$0() !== true;
+ }
+};
+
+$$.Object = {"": ";",
+ $eq: function(other) {
+ if (other == null)
+ return false;
+ return this === other;
+ },
+ get$hashCode: function() {
+ return $.Primitives_objectHashCode(this);
+ },
+ toString$0: function() {
+ return "Instance of '" + $.S($.Primitives_objectTypeName(this)) + "'";
+ }
+};
+
+$$._StringBufferImpl = {"": "Object;_buffer,_liblib2$_length",
+ get$length: function() {
+ return this._liblib2$_length;
+ },
+ get$isEmpty: function() {
+ return $.$$eq(this._liblib2$_length, 0);
+ },
+ add$1: function(obj) {
+ var t1, t2, t4;
+ t1 = $.toString(obj);
+ if (!(typeof t1 === "string"))
+ throw $.$$throw($.ArgumentError$("toString() did not return a string"));
+ if ($.CONSTANT1.get$isEmpty(t1) === true)
+ return;
+ $.add(this._buffer, t1);
+ t2 = this._liblib2$_length;
+ t4 = t1.length;
+ if (typeof t2 !== "number")
+ return this.add$1$bailout0(1, t1, t2);
+ this._liblib2$_length = t2 + t4;
+ },
+ add$1$bailout0: function(state0, t1, t2) {
+ this._liblib2$_length = $.$$add(t2, t1.length);
+ },
+ clear$0: function() {
+ this._buffer = $.List_List(0);
+ this._liblib2$_length = 0;
+ },
+ toString$0: function() {
+ if ($.$$eq($.length(this._buffer), 0) === true)
+ return "";
+ if ($.$$eq($.length(this._buffer), 1) === true)
+ return $.$$index(this._buffer, 0);
+ var result = $.Strings__toJsStringArray(this._buffer).join("");
+ $.clear(this._buffer);
+ $.add(this._buffer, result);
+ return result;
+ },
+ _StringBufferImpl$1: function(content) {
+ this.clear$0();
+ this.add$1(content);
+ }
+};
+
+$$._HashMapImpl = {"": "Object;_keys>,_values>,_loadLimit,_numberOfEntries,_numberOfDeleted",
+ _probeForAdding$1: function(key) {
+ var t1, t3, hash, numberOfProbes, insertionIndex, existingKey, numberOfProbes0;
+ if (key == null)
+ throw $.$$throw($.ArgumentError$(null));
+ t1 = $.hashCode(key);
+ t3 = this._keys.length;
+ if (t1 !== (t1 | 0))
+ return this._probeForAdding$1$bailout(1, key, t1);
+ hash = (t1 & t3 - 1) >>> 0;
+ for (numberOfProbes = 1, insertionIndex = -1; true; numberOfProbes = numberOfProbes0) {
+ t1 = this._keys;
+ if (hash < 0 || hash >= t1.length)
+ throw $.ioore(hash);
+ existingKey = t1[hash];
+ if (existingKey == null) {
+ if (insertionIndex < 0)
+ return hash;
+ return insertionIndex;
+ } else if ($.$$eq(existingKey, key) === true)
+ return hash;
+ else if (insertionIndex < 0 && existingKey === $.CONSTANT3)
+ insertionIndex = hash;
+ numberOfProbes0 = numberOfProbes + 1;
+ hash = $._HashMapImpl__nextProbe(hash, numberOfProbes, this._keys.length);
+ if (hash !== (hash | 0))
+ return this._probeForAdding$1$bailout(2, key, null, hash, numberOfProbes0, insertionIndex);
+ }
+ },
+ _probeForAdding$1$bailout: function(state0, key, t1, hash, numberOfProbes0, insertionIndex) {
+ switch (state0) {
+ case 0:
+ if (key == null)
+ throw $.$$throw($.ArgumentError$(null));
+ t1 = $.hashCode(key);
+ case 1:
+ state0 = 0;
+ hash = $.$$and(t1, this._keys.length - 1);
+ numberOfProbes = 1;
+ insertionIndex = -1;
+ case 2:
+ var numberOfProbes, existingKey;
+ L0:
+ while (true)
+ switch (state0) {
+ case 0:
+ if (!true)
+ break L0;
+ t1 = this._keys;
+ if (hash !== (hash | 0))
+ throw $.iae(hash);
+ if (hash < 0 || hash >= t1.length)
+ throw $.ioore(hash);
+ existingKey = t1[hash];
+ if (existingKey == null) {
+ if (insertionIndex < 0)
+ return hash;
+ return insertionIndex;
+ } else if ($.$$eq(existingKey, key) === true)
+ return hash;
+ else if (insertionIndex < 0 && existingKey === $.CONSTANT3)
+ insertionIndex = hash;
+ numberOfProbes0 = numberOfProbes + 1;
+ hash = $._HashMapImpl__nextProbe(hash, numberOfProbes, this._keys.length);
+ case 2:
+ state0 = 0;
+ numberOfProbes = numberOfProbes0;
+ }
+ }
+ },
+ _probeForLookup$1: function(key) {
+ var t1, hash, numberOfProbes, existingKey, numberOfProbes0;
+ if (key == null)
+ throw $.$$throw($.ArgumentError$(null));
+ t1 = $.$$and($.hashCode(key), this._keys.length - 1);
+ if (t1 !== (t1 | 0))
+ return this._probeForLookup$1$bailout(1, key, t1);
+ for (hash = t1, numberOfProbes = 1; true; numberOfProbes = numberOfProbes0) {
+ t1 = this._keys;
+ if (hash !== (hash | 0))
+ throw $.iae(hash);
+ if (hash < 0 || hash >= t1.length)
+ throw $.ioore(hash);
+ existingKey = t1[hash];
+ if (existingKey == null)
+ return -1;
+ if ($.$$eq(existingKey, key) === true)
+ return hash;
+ numberOfProbes0 = numberOfProbes + 1;
+ hash = $._HashMapImpl__nextProbe(hash, numberOfProbes, this._keys.length);
+ }
+ },
+ _probeForLookup$1$bailout: function(state0, key, t1) {
+ var hash, numberOfProbes, existingKey, numberOfProbes0;
+ for (hash = t1, numberOfProbes = 1; true; numberOfProbes = numberOfProbes0) {
+ t1 = this._keys;
+ if (hash !== (hash | 0))
+ throw $.iae(hash);
+ if (hash < 0 || hash >= t1.length)
+ throw $.ioore(hash);
+ existingKey = t1[hash];
+ if (existingKey == null)
+ return -1;
+ if ($.$$eq(existingKey, key) === true)
+ return hash;
+ numberOfProbes0 = numberOfProbes + 1;
+ hash = $._HashMapImpl__nextProbe(hash, numberOfProbes, this._keys.length);
+ }
+ },
+ _ensureCapacity$0: function() {
+ var t1, capacity, t2;
+ t1 = $.$$add(this._numberOfEntries, 1);
+ if ($.$$ge(t1, this._loadLimit) === true) {
+ this._grow$1(this._keys.length * 2);
+ return;
+ }
+ capacity = this._keys.length;
+ if (typeof t1 !== "number")
+ throw $.iae(t1);
+ t2 = this._numberOfDeleted;
+ if (typeof t2 !== "number")
+ throw $.iae(t2);
+ if (t2 > capacity - t1 - t2)
+ this._grow$1(this._keys.length);
+ },
+ _grow$1: function(newCapacity) {
+ var capacity, oldKeys, oldValues, i, key, value, newIndex, t1;
+ capacity = this._keys.length;
+ this._loadLimit = $.$$tdiv($.$$mul(newCapacity, 3), 4);
+ oldKeys = this._keys;
+ oldValues = this._values;
+ this._keys = $.List_List$fixedLength(newCapacity, null);
+ this._values = $.List_List$fixedLength(newCapacity, null);
+ for (i = 0; i < capacity; ++i) {
+ if (i >= oldKeys.length)
+ throw $.ioore(i);
+ key = oldKeys[i];
+ if (key == null || key === $.CONSTANT3)
+ continue;
+ if (i >= oldValues.length)
+ throw $.ioore(i);
+ value = oldValues[i];
+ newIndex = this._probeForAdding$1(key);
+ t1 = this._keys;
+ if (newIndex !== (newIndex | 0))
+ throw $.iae(newIndex);
+ if (newIndex < 0 || newIndex >= t1.length)
+ throw $.ioore(newIndex);
+ t1[newIndex] = key;
+ t1 = this._values;
+ if (newIndex >= t1.length)
+ throw $.ioore(newIndex);
+ t1[newIndex] = value;
+ }
+ this._numberOfDeleted = 0;
+ },
+ clear$0: function() {
+ var t1, length, t2, t3, i;
+ this._numberOfEntries = 0;
+ this._numberOfDeleted = 0;
+ t1 = this._keys;
+ length = t1.length;
+ for (t2 = this._values, t3 = t2.length, i = 0; i < length; ++i) {
+ t1[i] = null;
+ if (i >= t3)
+ throw $.ioore(i);
+ t2[i] = null;
+ }
+ },
+ $indexSet: function(key, value) {
+ var index, t1;
+ this._ensureCapacity$0();
+ index = this._probeForAdding$1(key);
+ t1 = this._keys;
+ if (index !== (index | 0))
+ throw $.iae(index);
+ if (index < 0 || index >= t1.length)
+ throw $.ioore(index);
+ t1 = t1[index];
+ if (t1 == null || t1 === $.CONSTANT3) {
+ t1 = this._numberOfEntries;
+ if (typeof t1 !== "number")
+ return this.$$indexSet$bailout(1, key, value, t1, index);
+ this._numberOfEntries = t1 + 1;
+ }
+ t1 = this._keys;
+ if (index >= t1.length)
+ throw $.ioore(index);
+ t1[index] = key;
+ t1 = this._values;
+ if (index >= t1.length)
+ throw $.ioore(index);
+ t1[index] = value;
+ },
+ $$indexSet$bailout: function(state0, key, value, t1, index) {
+ switch (state0) {
+ case 0:
+ this._ensureCapacity$0();
+ index = this._probeForAdding$1(key);
+ t1 = this._keys;
+ if (index !== (index | 0))
+ throw $.iae(index);
+ if (index < 0 || index >= t1.length)
+ throw $.ioore(index);
+ t1 = t1[index];
+ case 1:
+ if (state0 === 1 || state0 === 0 && (t1 == null || t1 === $.CONSTANT3))
+ switch (state0) {
+ case 0:
+ t1 = this._numberOfEntries;
+ case 1:
+ state0 = 0;
+ this._numberOfEntries = $.$$add(t1, 1);
+ }
+ t1 = this._keys;
+ if (index >= t1.length)
+ throw $.ioore(index);
+ t1[index] = key;
+ t1 = this._values;
+ if (index >= t1.length)
+ throw $.ioore(index);
+ t1[index] = value;
+ }
+ },
+ $index: function(key) {
+ var index, t1;
+ index = this._probeForLookup$1(key);
+ if (typeof index !== "number")
+ return this.$$index$bailout(1, index);
+ if (index < 0)
+ return;
+ t1 = this._values;
+ if (index !== (index | 0))
+ throw $.iae(index);
+ if (index < 0 || index >= t1.length)
+ throw $.ioore(index);
+ return t1[index];
+ },
+ $$index$bailout: function(state0, index) {
+ var t1;
+ if ($.$$lt(index, 0) === true)
+ return;
+ t1 = this._values;
+ if (index !== (index | 0))
+ throw $.iae(index);
+ if (index < 0 || index >= t1.length)
+ throw $.ioore(index);
+ return t1[index];
+ },
+ remove$1: function(key) {
+ var index, t1, t3, value;
+ index = this._probeForLookup$1(key);
+ if (typeof index !== "number")
+ return this.remove$1$bailout(1, index);
+ if (index >= 0) {
+ t1 = this._numberOfEntries;
+ if (typeof t1 !== "number")
+ return this.remove$1$bailout(2, index, t1);
+ this._numberOfEntries = t1 - 1;
+ t3 = this._values;
+ if (index !== (index | 0))
+ throw $.iae(index);
+ if (index < 0 || index >= t3.length)
+ throw $.ioore(index);
+ value = t3[index];
+ t3[index] = null;
+ t3 = this._keys;
+ if (index >= t3.length)
+ throw $.ioore(index);
+ t3[index] = $.CONSTANT3;
+ t3 = this._numberOfDeleted;
+ if (typeof t3 !== "number")
+ return this.remove$1$bailout(3, null, null, t3, value);
+ this._numberOfDeleted = t3 + 1;
+ return value;
+ }
+ return;
+ },
+ remove$1$bailout: function(state0, index, t1, t3, value) {
+ switch (state0) {
+ case 0:
+ index = this._probeForLookup$1(key);
+ case 1:
+ state0 = 0;
+ default:
+ if (state0 === 3 || state0 === 2 || state0 === 0 && $.$$ge(index, 0) === true)
+ switch (state0) {
+ case 0:
+ t1 = this._numberOfEntries;
+ case 2:
+ state0 = 0;
+ this._numberOfEntries = $.$$sub(t1, 1);
+ t3 = this._values;
+ if (index !== (index | 0))
+ throw $.iae(index);
+ if (index < 0 || index >= t3.length)
+ throw $.ioore(index);
+ value = t3[index];
+ t3[index] = null;
+ t3 = this._keys;
+ if (index >= t3.length)
+ throw $.ioore(index);
+ t3[index] = $.CONSTANT3;
+ t3 = this._numberOfDeleted;
+ case 3:
+ state0 = 0;
+ this._numberOfDeleted = $.$$add(t3, 1);
+ return value;
+ }
+ return;
+ }
+ },
+ get$isEmpty: function() {
+ return $.$$eq(this._numberOfEntries, 0);
+ },
+ get$length: function() {
+ return this._numberOfEntries;
+ },
+ forEach$1: function(f) {
+ var it, t1, t2, t3;
+ it = $._HashMapImplIndexIterator$(this);
+ for (; it.moveNext$0() === true;) {
+ t1 = this._keys;
+ t2 = it.get$current();
+ if (t2 !== (t2 | 0))
+ throw $.iae(t2);
+ if (t2 < 0 || t2 >= t1.length)
+ throw $.ioore(t2);
+ t2 = t1[t2];
+ t1 = this._values;
+ t3 = it.get$current();
+ if (t3 !== (t3 | 0))
+ throw $.iae(t3);
+ if (t3 < 0 || t3 >= t1.length)
+ throw $.ioore(t3);
+ f.call$2(t2, t1[t3]);
+ }
+ },
+ containsKey$1: function(key) {
+ return $.$$eq(this._probeForLookup$1(key), -1) !== true;
+ },
+ toString$0: function() {
+ return $.Maps_mapToString(this);
+ },
+ _HashMapImpl$0: function() {
+ this._numberOfEntries = 0;
+ this._numberOfDeleted = 0;
+ this._loadLimit = $._HashMapImpl__computeLoadLimit(8);
+ this._keys = $.List_List$fixedLength(8, null);
+ this._values = $.List_List$fixedLength(8, null);
+ },
+ $isMap: true
+};
+
+$$._HashMapImplIterator = {"": "Object;",
+ moveNext$0: function() {
+ var t1, t2, length, t3, newIndex, key;
+ t1 = this._map;
+ t2 = t1._keys;
+ length = t2.length;
+ t3 = this._index;
+ if (t3 !== (t3 | 0))
+ return this.moveNext$0$bailout1(1, length, t3, t1);
+ newIndex = t3 + 1;
+ for (; newIndex < length;) {
+ if (newIndex < 0)
+ throw $.ioore(newIndex);
+ key = t2[newIndex];
+ if (!(key == null) && !(key === $.CONSTANT3)) {
+ this._liblib0$_current = this._computeCurrentFromIndex$3(newIndex, t2, t1._values);
+ this._index = newIndex;
+ return true;
+ }
+ ++newIndex;
+ }
+ this._index = length;
+ this._liblib0$_current = null;
+ return false;
+ },
+ moveNext$0$bailout1: function(state0, length, t2, t1) {
+ var newIndex, key;
+ newIndex = $.$$add(t2, 1);
+ for (; $.$$lt(newIndex, length) === true;) {
+ t2 = t1._keys;
+ if (newIndex !== (newIndex | 0))
+ throw $.iae(newIndex);
+ if (newIndex < 0 || newIndex >= t2.length)
+ throw $.ioore(newIndex);
+ key = t2[newIndex];
+ if (!(key == null) && !(key === $.CONSTANT3)) {
+ this._liblib0$_current = this._computeCurrentFromIndex$3(newIndex, t2, t1._values);
+ this._index = newIndex;
+ return true;
+ }
+ ++newIndex;
+ }
+ this._index = length;
+ this._liblib0$_current = null;
+ return false;
+ },
+ get$current: function() {
+ return this._liblib0$_current;
+ }
+};
+
+$$._HashMapImplIndexIterator = {"": "_HashMapImplIterator;_map,_index,_liblib0$_current",
+ _computeCurrentFromIndex$3: function(index, keys, values) {
+ return index;
+ }
+};
+
+$$._DeletedKeySentinel = {"": "Object;"};
+
+$$._KeyValuePair = {"": "Object;key>,value="};
+
+$$._LinkedHashMapImpl = {"": "Object;_liblib0$_list,_map",
+ $indexSet: function(key, value) {
+ var t1, t3;
+ if (this._map.containsKey$1(key) === true) {
+ t1 = this._map;
+ if (typeof t1 !== "string" && (typeof t1 !== "object" || t1 === null || t1.constructor !== Array && !t1.$isJavaScriptIndexingBehavior()))
+ return this.$$indexSet$bailout0(1, key, value, t1);
+ if (key !== (key | 0))
+ throw $.iae(key);
+ if (key < 0 || key >= t1.length)
+ throw $.ioore(key);
+ t1[key].get$element().set$value(value);
+ } else {
+ this._liblib0$_list.addLast$1($._KeyValuePair$(key, value));
+ t1 = this._map;
+ t3 = this._liblib0$_list.lastEntry$0();
+ if (typeof t1 !== "object" || t1 === null || (t1.constructor !== Array || !!t1.immutable$list) && !t1.$isJavaScriptIndexingBehavior())
+ return this.$$indexSet$bailout0(2, key, null, t1);
+ if (key !== (key | 0))
+ throw $.iae(key);
+ if (key < 0 || key >= t1.length)
+ throw $.ioore(key);
+ t1[key] = t3;
+ }
+ },
+ $$indexSet$bailout0: function(state0, key, value, t1) {
+ switch (state0) {
+ case 0:
+ default:
+ if (state0 === 1 || state0 === 0 && this._map.containsKey$1(key) === true)
+ switch (state0) {
+ case 0:
+ t1 = this._map;
+ case 1:
+ state0 = 0;
+ $.$$index(t1, key).get$element().set$value(value);
+ }
+ else
+ switch (state0) {
+ case 0:
+ this._liblib0$_list.addLast$1($._KeyValuePair$(key, value));
+ t1 = this._map;
+ case 2:
+ state0 = 0;
+ $.$$indexSet(t1, key, this._liblib0$_list.lastEntry$0());
+ }
+ }
+ },
+ $index: function(key) {
+ var t1 = this._map;
+ if (typeof t1 !== "string" && (typeof t1 !== "object" || t1 === null || t1.constructor !== Array && !t1.$isJavaScriptIndexingBehavior()))
+ return this.$$index$bailout0(1, key, t1);
+ if (key !== (key | 0))
+ throw $.iae(key);
+ if (key < 0 || key >= t1.length)
+ throw $.ioore(key);
+ t1 = t1[key];
+ if (t1 == null)
+ return;
+ return t1.get$element().get$value();
+ },
+ $$index$bailout0: function(state0, key, t1) {
+ t1 = $.$$index(t1, key);
+ if (t1 == null)
+ return;
+ return t1.get$element().get$value();
+ },
+ remove$1: function(key) {
+ var t1 = $.remove(this._map, key);
+ if (t1 == null)
+ return;
+ t1.remove$0();
+ return t1.get$element().get$value();
+ },
+ forEach$1: function(f) {
+ this._liblib0$_list.forEach$1(new $._LinkedHashMapImpl_forEach_anon(f));
+ },
+ containsKey$1: function(key) {
+ return this._map.containsKey$1(key);
+ },
+ get$length: function() {
+ return $.length(this._map);
+ },
+ get$isEmpty: function() {
+ return $.$$eq($.length(this), 0);
+ },
+ clear$0: function() {
+ $.clear(this._map);
+ this._liblib0$_list.clear$0();
+ },
+ toString$0: function() {
+ return $.Maps_mapToString(this);
+ },
+ _LinkedHashMapImpl$0: function() {
+ this._map = $.HashMap_HashMap();
+ this._liblib0$_list = $.DoubleLinkedQueue$();
+ },
+ $isMap: true
+};
+
+$$.DoubleLinkedQueueEntry = {"": "Object;_previous=,_next=,_element",
+ _link$2: function(p, n) {
+ this._next = n;
+ this._previous = p;
+ p.set$_next(this);
+ n.set$_previous(this);
+ },
+ prepend$1: function(e) {
+ $.DoubleLinkedQueueEntry$(e)._link$2(this._previous, this);
+ },
+ remove$0: function() {
+ var t1 = this._next;
+ this._previous.set$_next(t1);
+ t1 = this._previous;
+ this._next.set$_previous(t1);
+ this._next = null;
+ this._previous = null;
+ return this._element;
+ },
+ _asNonSentinelEntry$0: function() {
+ return this;
+ },
+ previousEntry$0: function() {
+ return this._previous._asNonSentinelEntry$0();
+ },
+ nextEntry$0: function() {
+ return this._next._asNonSentinelEntry$0();
+ },
+ get$element: function() {
+ return this._element;
+ },
+ DoubleLinkedQueueEntry$1: function(e) {
+ this._element = e;
+ }
+};
+
+$$._DoubleLinkedQueueEntrySentinel = {"": "DoubleLinkedQueueEntry;_previous,_next,_element",
+ remove$0: function() {
+ throw $.$$throw($.StateError$("Empty queue"));
+ },
+ _asNonSentinelEntry$0: function() {
+ return;
+ },
+ get$element: function() {
+ throw $.$$throw($.StateError$("Empty queue"));
+ },
+ _DoubleLinkedQueueEntrySentinel$0: function() {
+ this._link$2(this, this);
+ }
+};
+
+$$.DoubleLinkedQueue = {"": "Iterable;_sentinel",
+ addLast$1: function(value) {
+ this._sentinel.prepend$1(value);
+ },
+ add$1: function(value) {
+ this._sentinel.prepend$1(value);
+ },
+ removeLast$0: function() {
+ return this._sentinel._previous.remove$0();
+ },
+ remove$1: function(o) {
+ var entry = this._sentinel.nextEntry$0();
+ for (; !(entry === this._sentinel);) {
+ if ($.$$eq(entry.get$element(), o) === true) {
+ entry.remove$0();
+ return;
+ }
+ entry = entry.get$_next();
+ }
+ },
+ removeAll$1: function(elements) {
+ $.IterableMixinWorkaround_removeAllList(this, elements);
+ },
+ removeMatching$1: function(test) {
+ var entry, next;
+ entry = this._sentinel.nextEntry$0();
+ for (; !(entry === this._sentinel); entry = next) {
+ next = entry.get$_next();
+ if (test.call$1(entry.get$element()) === true)
+ entry.remove$0();
+ }
+ },
+ lastEntry$0: function() {
+ return this._sentinel.previousEntry$0();
+ },
+ get$isEmpty: function() {
+ var t1 = this._sentinel;
+ return t1._next === t1;
+ },
+ clear$0: function() {
+ var t1 = this._sentinel;
+ t1._next = t1;
+ t1 = this._sentinel;
+ t1._previous = t1;
+ },
+ get$iterator: function() {
+ return $._DoubleLinkedQueueIterator$(this._sentinel);
+ },
+ toString$0: function() {
+ return $.Collections_collectionToString(this);
+ },
+ DoubleLinkedQueue$0: function() {
+ this._sentinel = $._DoubleLinkedQueueEntrySentinel$();
+ },
+ $isCollection: function() {
+ return true;
+ }
+};
+
+$$._DoubleLinkedQueueIterator = {"": "Object;_sentinel,_currentEntry,_liblib0$_current",
+ moveNext$0: function() {
+ var t1, t2;
+ t1 = this._currentEntry;
+ if (t1 == null)
+ return false;
+ this._currentEntry = t1.get$_next();
+ t1 = this._currentEntry;
+ t2 = this._sentinel;
+ if (t1 == null ? t2 == null : t1 === t2) {
+ this._currentEntry = null;
+ this._liblib0$_current = null;
+ this._sentinel = null;
+ return false;
+ }
+ this._liblib0$_current = t1.get$element();
+ return true;
+ },
+ get$current: function() {
+ return this._liblib0$_current;
+ }
+};
+
+$$.HashSet = {"": "Collection;_backingMap",
+ clear$0: function() {
+ this._backingMap.clear$0();
+ },
+ add$1: function(value) {
+ this._backingMap.$indexSet(value, value);
+ },
+ remove$1: function(value) {
+ var t1 = this._backingMap;
+ if (t1.containsKey$1(value) !== true)
+ return false;
+ t1.remove$1(value);
+ return true;
+ },
+ contains$1: function(value) {
+ return this._backingMap.containsKey$1(value);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ this._backingMap.forEach$1(new $.HashSet_forEach_anon(f));
+ },
+ get$isEmpty: function() {
+ return $.isEmpty(this._backingMap);
+ },
+ get$length: function() {
+ return $.length(this._backingMap);
+ },
+ get$iterator: function() {
+ return $._HashSetIterator$(this);
+ },
+ toString$0: function() {
+ return $.Collections_collectionToString(this);
+ },
+ $isSet: true,
+ $isCollection: function() {
+ return true;
+ }
+};
+
+$$._HashSetIterator = {"": "Object;_keysIterator",
+ get$current: function() {
+ var result = this._keysIterator.get$current();
+ if (result === $.CONSTANT3)
+ throw $.$$throw($.StateError$("Concurrent modification."));
+ return result;
+ },
+ moveNext$0: function() {
+ var t1, result, t2;
+ t1 = this._keysIterator;
+ do {
+ result = t1.moveNext$0();
+ if (result === true)
+ t2 = t1.get$current() == null || t1.get$current() === $.CONSTANT3;
+ else
+ t2 = false;
+ } while (t2);
+ return result;
+ }
+};
+
+$$.ListIterator = {"": "Object;_list,_liblib$_length,_liblib$_position,_liblib$_current",
+ moveNext$0: function() {
+ var t1, t2, t3;
+ t1 = this._list;
+ t2 = t1.length;
+ t3 = this._liblib$_length;
+ if (t2 !== t3)
+ throw $.$$throw($.ConcurrentModificationError$(t1));
+ t2 = this._liblib$_position;
+ if (t2 !== (t2 | 0))
+ return this.moveNext$0$bailout0(1, t2, t1, t3);
+ ++t2;
+ if (t2 < t3) {
+ this._liblib$_position = t2;
+ if (t2 < 0 || t2 >= t1.length)
+ throw $.ioore(t2);
+ this._liblib$_current = t1[t2];
+ return true;
+ }
+ this._liblib$_current = null;
+ return false;
+ },
+ moveNext$0$bailout0: function(state0, t2, t1, t3) {
+ t2 = $.$$add(t2, 1);
+ if ($.$$lt(t2, t3) === true) {
+ this._liblib$_position = t2;
+ if (t2 !== (t2 | 0))
+ throw $.iae(t2);
+ if (t2 < 0 || t2 >= t1.length)
+ throw $.ioore(t2);
+ this._liblib$_current = t1[t2];
+ return true;
+ }
+ this._liblib$_current = null;
+ return false;
+ },
+ get$current: function() {
+ return this._liblib$_current;
+ }
+};
+
+$$.ObjectInterceptor = {"": "Object;",
+ toString$0: function(receiver) {
+ return receiver.toString$0();
+ },
+ $eq: function(receiver, a0) {
+ return receiver.$eq(a0);
+ },
+ $indexSet: function(receiver, a0, a1) {
+ return receiver.$indexSet(a0, a1);
+ },
+ get$iterator: function(receiver) {
+ return receiver.get$iterator();
+ },
+ charCodeAt$1: function(receiver, a0) {
+ return receiver.charCodeAt$1(a0);
+ },
+ replaceAll$2: function(receiver, a0, a1) {
+ return receiver.replaceAll$2(a0, a1);
+ },
+ removeLast$0: function(receiver) {
+ return receiver.removeLast$0();
+ },
+ $index: function(receiver, a0) {
+ return receiver.$index(a0);
+ },
+ indexOf$2: function(receiver, a0, a1) {
+ return receiver.indexOf$2(a0, a1);
+ },
+ $ge: function(receiver, a0) {
+ return receiver.$ge(a0);
+ },
+ get$length: function(receiver) {
+ return receiver.get$length();
+ },
+ $add: function(receiver, a0) {
+ return receiver.$add(a0);
+ },
+ ceil$0: function(receiver) {
+ return receiver.ceil$0();
+ },
+ clear$0: function(receiver) {
+ return receiver.clear$0();
+ },
+ set$length: function(receiver, value) {
+ return receiver.set$length(value);
+ },
+ abs$0: function(receiver) {
+ return receiver.abs$0();
+ },
+ $mul: function(receiver, a0) {
+ return receiver.$mul(a0);
+ },
+ toSet$0: function(receiver) {
+ return receiver.toSet$0();
+ },
+ $gt: function(receiver, a0) {
+ return receiver.$gt(a0);
+ },
+ sort$1: function(receiver, a0) {
+ return receiver.sort$1(a0);
+ },
+ get$isNegative: function(receiver) {
+ return receiver.get$isNegative();
+ },
+ remove$1: function(receiver, a0) {
+ return receiver.remove$1(a0);
+ },
+ floor$0: function(receiver) {
+ return receiver.floor$0();
+ },
+ removeMatching$1: function(receiver, a0) {
+ return receiver.removeMatching$1(a0);
+ },
+ endsWith$1: function(receiver, a0) {
+ return receiver.endsWith$1(a0);
+ },
+ $shr: function(receiver, a0) {
+ return receiver.$shr(a0);
+ },
+ get$contains: function(receiver) {
+ return receiver.get$contains();
+ },
+ substring$1: function(receiver, a0) {
+ return receiver.substring$1(a0);
+ },
+ $tdiv: function(receiver, a0) {
+ return receiver.$tdiv(a0);
+ },
+ get$isEmpty: function(receiver) {
+ return receiver.get$isEmpty();
+ },
+ allMatches$1: function(receiver, a0) {
+ return receiver.allMatches$1(a0);
+ },
+ get$isNaN: function(receiver) {
+ return receiver.get$isNaN();
+ },
+ $sub: function(receiver, a0) {
+ return receiver.$sub(a0);
+ },
+ get$hashCode: function(receiver) {
+ return receiver.get$hashCode();
+ },
+ $lt: function(receiver, a0) {
+ return receiver.$lt(a0);
+ },
+ compareTo$1: function(receiver, a0) {
+ return receiver.compareTo$1(a0);
+ },
+ truncate$0: function(receiver) {
+ return receiver.truncate$0();
+ },
+ forEach$1: function(receiver, a0) {
+ return receiver.forEach$1(a0);
+ },
+ add$1: function(receiver, a0) {
+ return receiver.add$1(a0);
+ },
+ $div: function(receiver, a0) {
+ return receiver.$div(a0);
+ },
+ addLast$1: function(receiver, a0) {
+ return receiver.addLast$1(a0);
+ },
+ $and: function(receiver, a0) {
+ return receiver.$and(a0);
+ }
+};
+
+$$.JSFunction = {"": "Object;",
+ toString$0: function(receiver) {
+ return "Closure";
+ },
+ $eq: function(receiver, a) {
+ return receiver === a;
+ }
+};
+
+$$.JSBool = {"": "Object;",
+ toString$0: function(receiver) {
+ return String(receiver);
+ },
+ get$hashCode: function(receiver) {
+ return receiver ? 519018 : 218159;
+ },
+ $isbool: true,
+ $eq: function(receiver, a) {
+ return receiver === a;
+ }
+};
+
+$$.JSNull = {"": "Object;",
+ toString$0: function(receiver) {
+ return "null";
+ },
+ get$hashCode: function(receiver) {
+ return 0;
+ },
+ $eq: function(receiver, a) {
+ return receiver == a;
+ }
+};
+
+$$.JSArray = {"": "Object;",
+ add$1: function(receiver, value) {
+ $.checkGrowable(receiver, "add");
+ receiver.push(value);
+ },
+ removeLast$0: function(receiver) {
+ $.checkGrowable(receiver, "removeLast");
+ if (receiver.length === 0)
+ throw $.$$throw($.RangeError$value(-1));
+ return receiver.pop();
+ },
+ remove$1: function(receiver, element) {
+ var i;
+ $.checkGrowable(receiver, "remove");
+ for (i = 0; i < receiver.length; ++i)
+ if ($.$$eq(receiver[i], element) === true) {
+ receiver.splice(i, 1);
+ return;
+ }
+ },
+ removeAll$1: function(receiver, elements) {
+ $.IterableMixinWorkaround_removeAllList(receiver, elements);
+ },
+ removeMatching$1: function(receiver, test) {
+ $.IterableMixinWorkaround_removeMatchingList(receiver, test);
+ },
+ addLast$1: function(receiver, value) {
+ $.checkGrowable(receiver, "addLast");
+ receiver.push(value);
+ },
+ clear$0: function(receiver) {
+ this.set$length(receiver, 0);
+ },
+ forEach$1: function(receiver, f) {
+ var t1;
+ for (t1 = this.get$iterator(receiver); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ },
+ sort$1: function(receiver, compare) {
+ $.checkMutable(receiver, "sort");
+ $.IterableMixinWorkaround_sortList(receiver, compare);
+ },
+ indexOf$2: function(receiver, element, start) {
+ if (!(typeof start === "number" && Math.floor(start) === start))
+ throw $.$$throw($.ArgumentError$(start));
+ return $.Arrays_indexOf(receiver, element, start, receiver.length);
+ },
+ contains$1: function(receiver, other) {
+ var t1, i;
+ for (t1 = $.getInterceptor(other), i = 0; i < receiver.length; ++i)
+ if (t1.$eq(other, receiver[i]) === true)
+ return true;
+ return false;
+ },
+ get$contains: function(receiver) {
+ return new $.BoundClosure0(this, "contains$1", receiver);
+ },
+ get$isEmpty: function(receiver) {
+ return receiver.length === 0;
+ },
+ toString$0: function(receiver) {
+ return $.Collections_collectionToString(receiver);
+ },
+ toSet$0: function(receiver) {
+ return $.Set_Set$from(receiver);
+ },
+ get$iterator: function(receiver) {
+ return $.ListIterator$(receiver);
+ },
+ get$hashCode: function(receiver) {
+ return $.Primitives_objectHashCode(receiver);
+ },
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ set$length: function(receiver, newLength) {
+ if (!(typeof newLength === "number" && Math.floor(newLength) === newLength))
+ throw $.$$throw($.ArgumentError$(newLength));
+ if (newLength < 0)
+ throw $.$$throw($.RangeError$value(newLength));
+ $.checkGrowable(receiver, "set length");
+ receiver.length = newLength;
+ },
+ $index: function(receiver, index) {
+ if (!(typeof index === "number" && Math.floor(index) === index))
+ throw $.$$throw($.ArgumentError$(index));
+ if (index >= receiver.length || index < 0)
+ throw $.$$throw($.RangeError$value(index));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ $.checkMutable(receiver, "indexed set");
+ if (!(typeof index === "number" && Math.floor(index) === index))
+ throw $.$$throw($.ArgumentError$(index));
+ if (index >= receiver.length || index < 0)
+ throw $.$$throw($.RangeError$value(index));
+ receiver[index] = value;
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $eq: function(receiver, a) {
+ return receiver === a;
+ }
+};
+
+$$.JSNumber = {"": "Object;",
+ compareTo$1: function(receiver, b) {
+ var bIsNegative;
+ if (!(typeof b === "number"))
+ throw $.$$throw($.ArgumentError$(b));
+ if (receiver < b)
+ return -1;
+ else if (receiver > b)
+ return 1;
+ else if (receiver === b) {
+ if (receiver === 0) {
+ bIsNegative = this.get$isNegative(b);
+ if ($.$$eq(this.get$isNegative(receiver), bIsNegative) === true)
+ return 0;
+ if (this.get$isNegative(receiver) === true)
+ return -1;
+ return 1;
+ }
+ return 0;
+ } else if (this.get$isNaN(receiver) === true) {
+ if (this.get$isNaN(b) === true)
+ return 0;
+ return 1;
+ } else
+ return -1;
+ },
+ get$isNegative: function(receiver) {
+ return receiver === 0 ? 1 / receiver < 0 : receiver < 0;
+ },
+ get$isNaN: function(receiver) {
+ return isNaN(receiver);
+ },
+ abs$0: function(receiver) {
+ return Math.abs(receiver);
+ },
+ ceil$0: function(receiver) {
+ return Math.ceil(receiver);
+ },
+ floor$0: function(receiver) {
+ return Math.floor(receiver);
+ },
+ truncate$0: function(receiver) {
+ return receiver < 0 ? this.ceil$0(receiver) : this.floor$0(receiver);
+ },
+ toString$0: function(receiver) {
+ if (receiver === 0 && (1 / receiver) < 0)
+ return "-0.0";
+ else
+ return String(receiver);
+ },
+ get$hashCode: function(receiver) {
+ return receiver & 0x1FFFFFFF;
+ },
+ $add: function(receiver, other) {
+ if (!(typeof other === "number"))
+ throw $.$$throw($.ArgumentError$(other));
+ return receiver + other;
+ },
+ $sub: function(receiver, other) {
+ if (!(typeof other === "number"))
+ throw $.$$throw($.ArgumentError$(other));
+ return receiver - other;
+ },
+ $div: function(receiver, other) {
+ if (!(typeof other === "number"))
+ throw $.$$throw($.ArgumentError$(other));
+ return receiver / other;
+ },
+ $mul: function(receiver, other) {
+ return receiver * other;
+ },
+ $tdiv: function(receiver, other) {
+ return this.truncate$0(receiver / other);
+ },
+ $shr: function(receiver, other) {
+ if (other < 0)
+ throw $.$$throw($.ArgumentError$(other));
+ if (receiver > 0) {
+ if (other > 31)
+ return 0;
+ return receiver >>> other;
+ }
+ if (other > 31)
+ other = 31;
+ return (receiver >> other) >>> 0;
+ },
+ $and: function(receiver, other) {
+ if (!(typeof other === "number"))
+ throw $.$$throw($.ArgumentError$(other));
+ return (receiver & other) >>> 0;
+ },
+ $lt: function(receiver, other) {
+ if (!(typeof other === "number"))
+ throw $.$$throw($.ArgumentError$(other));
+ return receiver < other;
+ },
+ $gt: function(receiver, other) {
+ if (!(typeof other === "number"))
+ throw $.$$throw($.ArgumentError$(other));
+ return receiver > other;
+ },
+ $ge: function(receiver, other) {
+ if (!(typeof other === "number"))
+ throw $.$$throw($.ArgumentError$(other));
+ return receiver >= other;
+ },
+ $eq: function(receiver, a) {
+ return receiver === a;
+ }
+};
+
+$$.JSInt = {"": "JSNumber;",
+ $eq: function(receiver, a) {
+ return receiver === a;
+ }
+};
+
+$$.JSDouble = {"": "JSNumber;",
+ $eq: function(receiver, a) {
+ return receiver === a;
+ }
+};
+
+$$.JSString = {"": "Object;",
+ charCodeAt$1: function(receiver, index) {
+ if (index < 0)
+ throw $.$$throw($.RangeError$value(index));
+ if (index >= receiver.length)
+ throw $.$$throw($.RangeError$value(index));
+ return receiver.charCodeAt(index);
+ },
+ allMatches$1: function(receiver, str) {
+ $.checkString(str);
+ return $.allMatchesInStringUnchecked(receiver, str);
+ },
+ endsWith$1: function(receiver, other) {
+ var otherLength, t1;
+ $.checkString(other);
+ otherLength = other.length;
+ t1 = receiver.length;
+ if (otherLength > t1)
+ return false;
+ return other === this.substring$1(receiver, t1 - otherLength);
+ },
+ replaceAll$2: function(receiver, from, to) {
+ $.checkString(to);
+ return $.stringReplaceAllUnchecked(receiver, from, to);
+ },
+ substring$2: function(receiver, startIndex, endIndex) {
+ var t1;
+ $.checkNum(startIndex);
+ if (endIndex == null)
+ endIndex = receiver.length;
+ $.checkNum(endIndex);
+ t1 = $.getInterceptor$JSNumber(startIndex);
+ if (t1.$lt(startIndex, 0) === true)
+ throw $.$$throw($.RangeError$value(startIndex));
+ if (t1.$gt(startIndex, endIndex) === true)
+ throw $.$$throw($.RangeError$value(startIndex));
+ if ($.$$gt(endIndex, receiver.length) === true)
+ throw $.$$throw($.RangeError$value(endIndex));
+ return receiver.substring(startIndex, endIndex);
+ },
+ substring$1: function($receiver, startIndex) {
+ return this.substring$2($receiver, startIndex, null);
+ },
+ indexOf$2: function(receiver, other, start) {
+ $.checkNull(other);
+ if (!(typeof start === "number" && Math.floor(start) === start))
+ throw $.$$throw($.ArgumentError$(start));
+ if (!(typeof other === "string"))
+ throw $.$$throw($.ArgumentError$(other));
+ if (start < 0)
+ return -1;
+ return receiver.indexOf(other, start);
+ },
+ contains$2: function(receiver, other, startIndex) {
+ $.checkNull(other);
+ return $.stringContainsUnchecked(receiver, other, startIndex);
+ },
+ get$contains: function(receiver) {
+ return new $.BoundClosure1(this, "contains$2", receiver);
+ },
+ get$isEmpty: function(receiver) {
+ return receiver.length === 0;
+ },
+ compareTo$1: function(receiver, other) {
+ var t1;
+ if (!(typeof other === "string"))
+ throw $.$$throw($.ArgumentError$(other));
+ if (receiver === other)
+ t1 = 0;
+ else
+ t1 = receiver < other ? -1 : 1;
+ return t1;
+ },
+ toString$0: function(receiver) {
+ return receiver;
+ },
+ get$hashCode: function(receiver) {
+ var hash, i, hash0, hash1;
+ for (hash = 0, i = 0; i < receiver.length; ++i, hash = hash1) {
+ hash0 = 536870911 & hash + receiver.charCodeAt(i);
+ hash1 = 536870911 & hash0 + ((524287 & hash0) << 10 >>> 0);
+ hash1 = hash1 ^ (hash1 >> 6);
+ }
+ hash0 = 536870911 & hash + ((67108863 & hash) << 3 >>> 0);
+ hash0 = hash0 ^ (hash0 >> 11);
+ return 536870911 & hash0 + ((16383 & hash0) << 15 >>> 0);
+ },
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (!(typeof index === "number" && Math.floor(index) === index))
+ throw $.$$throw($.ArgumentError$(index));
+ if (index >= receiver.length || index < 0)
+ throw $.$$throw($.RangeError$value(index));
+ return receiver[index];
+ },
+ $isString: true,
+ $eq: function(receiver, a) {
+ return receiver === a;
+ }
+};
+
+$$.Result = {"": "Object;_sorted",
+ get$runs: function() {
+ return $.length(this._sorted);
+ },
+ get$sum: function() {
+ var t1 = {};
+ t1.result_0 = 0;
+ $.forEach(this._sorted, new $.Result_sum_anon(t1));
+ return t1.result_0;
+ },
+ get$mean: function() {
+ return $.$$div(this.get$sum(), this.get$runs());
+ },
+ get$variance: function() {
+ var t1, m;
+ t1 = {};
+ m = this.get$mean();
+ t1.result_0 = 0;
+ $.forEach(this._sorted, new $.Result_variance_anon(t1, m));
+ return $.$$div(t1.result_0, $.$$sub(this.get$runs(), 1));
+ },
+ get$deviation: function() {
+ return $.sqrt(this.get$variance());
+ },
+ get$sem: function() {
+ return $.$$mul($.$$div(this.get$deviation(), $.sqrt(this.get$runs())), 2.776);
+ },
+ get$error: function() {
+ return $.$$mul($.$$div(this.get$sem(), this.get$mean()), 100);
+ },
+ toString$0: function() {
+ return "[Result: mean = " + $.S(this.get$mean()) + "]";
+ }
+};
+
+$$.Suite = {"": "Object;_window>,_name>,_operations>,_nTests,_nRanTests",
+ prep$1: function(operation) {
+ this._operations.push(operation);
+ return this;
+ },
+ test$2: function(name, test_) {
+ var t1;
+ this._nTests = this._nTests + 1;
+ t1 = new $.Suite_test_anon(this, name, test_);
+ this._operations.push(t1);
+ return this;
+ },
+ end$0: function() {
+ this._postMessage$2("inited", $.makeLiteralMap(["nTests", this._nTests]));
+ },
+ _run$0: function() {
+ var t1 = {};
+ t1.currentOperation_0 = 0;
+ t1 = new $.Suite__run_handler(t1, this);
+ this._window.setTimeout$2(t1, 0);
+ },
+ _reportTestResults$2: function(name, result) {
+ this._nRanTests = this._nRanTests + 1;
+ this._postMessage$2("result", $.makeLiteralMap(["testName", name, "mean", result.get$mean(), "error", result.get$error(), "percent", 100 * this._nRanTests / this._nTests]));
+ },
+ _postMessage$2: function(command, data) {
+ var payload = $.makeLiteralMap(["command", command]);
+ if (!(data == null))
+ $.$$indexSet(payload, "data", data);
+ this._window.get$top().postMessage$2($._JsonStringifier_stringify(payload), "*");
+ },
+ _postMessage$1: function(command) {
+ return this._postMessage$2(command, null);
+ },
+ Suite$2: function(_window, _name) {
+ var t1 = new $.starter(this);
+ $.add(this._window.get$on().get$message(), t1);
+ }
+};
+
+$$.Events = {"": "Object;_ptr",
+ $index: function(type) {
+ return $.EventListenerList$(this._ptr, type);
+ }
+};
+
+$$.EventListenerList = {"": "Object;_ptr,_type",
+ add$2: function(listener, useCapture) {
+ this._ptr.$$dom_addEventListener$3(this._type, listener, useCapture);
+ return this;
+ },
+ add$1: function(listener) {
+ return this.add$2(listener, false);
+ },
+ remove$2: function(listener, useCapture) {
+ this._ptr.$$dom_removeEventListener$3(this._type, listener, useCapture);
+ return this;
+ },
+ remove$1: function(listener) {
+ return this.remove$2(listener, false);
+ }
+};
+
+$$.WindowEvents = {"": "Events;_ptr",
+ get$error: function() {
+ return this.$index("error");
+ },
+ get$message: function() {
+ return this.$index("message");
+ }
+};
+
+$$._DOMWindowCrossFrame = {"": "Object;_liblib3$_window",
+ get$top: function() {
+ return $._DOMWindowCrossFrame__createSafe(this._liblib3$_window.top);
+ },
+ postMessage$3: function(message, targetOrigin, messagePorts) {
+ var t1 = this._liblib3$_window;
+ if (messagePorts == null)
+ t1.postMessage(message,targetOrigin);
+ else
+ t1.postMessage(message,targetOrigin,messagePorts);
+ },
+ postMessage$2: function(message, targetOrigin) {
+ return this.postMessage$3(message, targetOrigin, null);
+ }
+};
+
+$$.FixedSizeListIterator = {"": "Object;_array,_length,_position,_current",
+ moveNext$0: function() {
+ var t1, t2;
+ t1 = this._position;
+ if (typeof t1 !== "number")
+ return this.moveNext$0$bailout(1, t1);
+ ++t1;
+ t2 = this._length;
+ if (typeof t2 !== "number")
+ return this.moveNext$0$bailout(2, t1, t2);
+ if (t1 < t2) {
+ t2 = this._array;
+ if (typeof t2 !== "string" && (typeof t2 !== "object" || t2 === null || t2.constructor !== Array && !t2.$isJavaScriptIndexingBehavior()))
+ return this.moveNext$0$bailout(3, t1, t2);
+ if (t1 !== (t1 | 0))
+ throw $.iae(t1);
+ if (t1 < 0 || t1 >= t2.length)
+ throw $.ioore(t1);
+ this._current = t2[t1];
+ this._position = t1;
+ return true;
+ }
+ this._current = null;
+ this._position = t2;
+ return false;
+ },
+ moveNext$0$bailout: function(state0, t1, t2) {
+ switch (state0) {
+ case 0:
+ t1 = this._position;
+ case 1:
+ state0 = 0;
+ t1 = $.$$add(t1, 1);
+ t2 = this._length;
+ case 2:
+ state0 = 0;
+ case 3:
+ if (state0 === 3 || state0 === 0 && $.$$lt(t1, t2) === true)
+ switch (state0) {
+ case 0:
+ t2 = this._array;
+ case 3:
+ state0 = 0;
+ this._current = $.$$index(t2, t1);
+ this._position = t1;
+ return true;
+ }
+ this._current = null;
+ this._position = t2;
+ return false;
+ }
+ },
+ get$current: function() {
+ return this._current;
+ }
+};
+
+$$.JsonUnsupportedObjectError = {"": "Object;unsupportedObject,cause",
+ toString$0: function() {
+ if (!(this.cause == null))
+ return "Calling toJson method on object failed.";
+ else
+ return "Object toJson method returns non-serializable value.";
+ }
+};
+
+$$._JsonStringifier = {"": "Object;sb>,seen",
+ checkCycle$1: function(object) {
+ var t1, t2, i, t3;
+ for (t1 = this.seen, t2 = t1.length, i = 0; i < t2; ++i) {
+ t3 = t1[i];
+ if (t3 == null ? object == null : t3 === object)
+ throw $.$$throw("Cyclic structure");
+ }
+ t1.push(object);
+ },
+ stringifyValue$1: function(object) {
+ var customJson, e, t1, exception;
+ if (this.stringifyJsonValue$1(object) !== true) {
+ this.checkCycle$1(object);
+ try {
+ customJson = object.toJson$0();
+ if (this.stringifyJsonValue$1(customJson) !== true)
+ throw $.$$throw($.JsonUnsupportedObjectError$(object));
+ t1 = this.seen;
+ if (0 >= t1.length)
+ throw $.ioore(0);
+ t1.pop();
+ } catch (exception) {
+ t1 = $.unwrapException(exception);
+ e = t1;
+ throw $.$$throw($.JsonUnsupportedObjectError$withCause(object, e));
+ }
+
+ }
+ },
+ stringifyJsonValue$1: function(object) {
+ var t1, t2, t3, i;
+ t1 = {};
+ if (typeof object === "number") {
+ $.add(this.sb, $.CONSTANT2.toString$0(object));
+ return true;
+ } else if (object === true) {
+ $.add(this.sb, "true");
+ return true;
+ } else if (object === false) {
+ $.add(this.sb, "false");
+ return true;
+ } else if (object == null) {
+ $.add(this.sb, "null");
+ return true;
+ } else if (typeof object === "string") {
+ t1 = this.sb;
+ t2 = $.getInterceptor$JSArray(t1);
+ t2.add$1(t1, "\"");
+ $._JsonStringifier_escape(t1, object);
+ t2.add$1(t1, "\"");
+ return true;
+ } else if (typeof object === "object" && object !== null && (object.constructor === Array || object.$isList())) {
+ if (typeof object !== "object" || object === null || object.constructor !== Array && !object.$isJavaScriptIndexingBehavior())
+ return this.stringifyJsonValue$1$bailout(1, object);
+ this.checkCycle$1(object);
+ t2 = this.sb;
+ t3 = $.getInterceptor$JSArray(t2);
+ t3.add$1(t2, "[");
+ if (object.length > 0) {
+ this.stringifyValue$1(object[0]);
+ for (i = 1; i < object.length; ++i) {
+ t3.add$1(t2, ",");
+ if (i >= object.length)
+ throw $.ioore(i);
+ this.stringifyValue$1(object[i]);
+ }
+ }
+ t3.add$1(t2, "]");
+ t1 = this.seen;
+ if (0 >= t1.length)
+ throw $.ioore(0);
+ t1.pop();
+ return true;
+ } else if (typeof object === "object" && object !== null && !!object.$isMap) {
+ this.checkCycle$1(object);
+ t2 = this.sb;
+ t3 = $.getInterceptor$JSArray(t2);
+ t3.add$1(t2, "{");
+ t1.first_0 = true;
+ object.forEach$1(new $._JsonStringifier_stringifyJsonValue_anon(t1, this));
+ t3.add$1(t2, "}");
+ t2 = this.seen;
+ if (0 >= t2.length)
+ throw $.ioore(0);
+ t2.pop();
+ return true;
+ } else
+ return false;
+ },
+ stringifyJsonValue$1$bailout: function(state0, object) {
+ switch (state0) {
+ case 0:
+ t1 = {};
+ case 1:
+ var t1, t2, t3, i;
+ if (state0 === 0 && typeof object === "number") {
+ $.add(this.sb, $.CONSTANT2.toString$0(object));
+ return true;
+ } else
+ switch (state0) {
+ case 0:
+ case 1:
+ if (state0 === 0 && object === true) {
+ $.add(this.sb, "true");
+ return true;
+ } else
+ switch (state0) {
+ case 0:
+ case 1:
+ if (state0 === 0 && object === false) {
+ $.add(this.sb, "false");
+ return true;
+ } else
+ switch (state0) {
+ case 0:
+ case 1:
+ if (state0 === 0 && object == null) {
+ $.add(this.sb, "null");
+ return true;
+ } else
+ switch (state0) {
+ case 0:
+ case 1:
+ if (state0 === 0 && typeof object === "string") {
+ t1 = this.sb;
+ t2 = $.getInterceptor$JSArray(t1);
+ t2.add$1(t1, "\"");
+ $._JsonStringifier_escape(t1, object);
+ t2.add$1(t1, "\"");
+ return true;
+ } else
+ switch (state0) {
+ case 0:
+ case 1:
+ if (state0 === 1 || state0 === 0 && typeof object === "object" && object !== null && (object.constructor === Array || object.$isList()))
+ switch (state0) {
+ case 0:
+ case 1:
+ state0 = 0;
+ this.checkCycle$1(object);
+ t2 = this.sb;
+ t3 = $.getInterceptor$JSArray(t2);
+ t3.add$1(t2, "[");
+ t1 = $.getInterceptor$JSStringJSArray(object);
+ if ($.$$gt(t1.get$length(object), 0) === true) {
+ this.stringifyValue$1(t1.$index(object, 0));
+ for (i = 1; $.CONSTANT4.$lt(i, t1.get$length(object)); ++i) {
+ t3.add$1(t2, ",");
+ this.stringifyValue$1(t1.$index(object, i));
+ }
+ }
+ t3.add$1(t2, "]");
+ t1 = this.seen;
+ if (0 >= t1.length)
+ throw $.ioore(0);
+ t1.pop();
+ return true;
+ }
+ else if (typeof object === "object" && object !== null && !!object.$isMap) {
+ this.checkCycle$1(object);
+ t2 = this.sb;
+ t3 = $.getInterceptor$JSArray(t2);
+ t3.add$1(t2, "{");
+ t1.first_0 = true;
+ object.forEach$1(new $._JsonStringifier_stringifyJsonValue_anon(t1, this));
+ t3.add$1(t2, "}");
+ t2 = this.seen;
+ if (0 >= t2.length)
+ throw $.ioore(0);
+ t2.pop();
+ return true;
+ } else
+ return false;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+$$.main_anon = {"": "Closure;",
+ call$0: function() {
+ }
+};
+
+$$.main_anon0 = {"": "Closure;",
+ call$0: function() {
+ }
+};
+
+$$.Maps__emitMap_anon = {"": "Closure;box_0,result_1,visiting_2",
+ call$2: function(k, v) {
+ var t1, t2;
+ t1 = this.box_0;
+ if (t1.first_0 !== true)
+ $.add(this.result_1, ", ");
+ t1.first_0 = false;
+ t1 = this.result_1;
+ t2 = this.visiting_2;
+ $.Collections__emitObject(k, t1, t2);
+ $.add(t1, ": ");
+ $.Collections__emitObject(v, t1, t2);
+ }
+};
+
+$$._LinkedHashMapImpl_forEach_anon = {"": "Closure;f_0",
+ call$1: function(entry) {
+ this.f_0.call$2(entry.get$key(), entry.get$value());
+ }
+};
+
+$$.Collection_clear_anon = {"": "Closure;",
+ call$1: function(e) {
+ return true;
+ }
+};
+
+$$.HashSet_forEach_anon = {"": "Closure;f_0",
+ call$2: function(key, value) {
+ this.f_0.call$1(key);
+ }
+};
+
+$$.NoSuchMethodError_toString_anon = {"": "Closure;box_0",
+ call$2: function(key, value) {
+ var t1 = this.box_0;
+ if ($.$$gt(t1.i_1, 0) === true)
+ $.add(t1.sb_0, ", ");
+ $.add(t1.sb_0, key);
+ $.add(t1.sb_0, ": ");
+ $.add(t1.sb_0, $.Error_safeToString(value));
+ t1.i_1 = $.$$add(t1.i_1, 1);
+ }
+};
+
+$$._convertDartToNative_PrepareForStructuredClone_findSlot = {"": "Closure;values_1,copies_2",
+ call$1: function(value) {
+ var t1, length, i, t2;
+ t1 = this.values_1;
+ if (typeof t1 !== "string" && (typeof t1 !== "object" || t1 === null || t1.constructor !== Array && !t1.$isJavaScriptIndexingBehavior()))
+ return this.call$1$bailout0(1, value, t1);
+ length = t1.length;
+ for (i = 0; i < length; ++i) {
+ t2 = t1[i];
+ if (t2 == null ? value == null : t2 === value)
+ return i;
+ }
+ $.add(t1, value);
+ $.add(this.copies_2, null);
+ return length;
+ },
+ call$1$bailout0: function(state0, value, t1, t3, length) {
+ switch (state0) {
+ case 0:
+ t1 = this.values_1;
+ case 1:
+ state0 = 0;
+ t3 = $.getInterceptor$JSStringJSArray(t1);
+ length = t3.get$length(t1);
+ case 2:
+ var i, t2;
+ state0 = 0;
+ for (i = 0; $.CONSTANT4.$lt(i, length); ++i) {
+ t2 = t3.$index(t1, i);
+ if (t2 == null ? value == null : t2 === value)
+ return i;
+ }
+ $.add(t1, value);
+ $.add(this.copies_2, null);
+ return length;
+ }
+ }
+};
+
+$$._convertDartToNative_PrepareForStructuredClone_readSlot = {"": "Closure;copies_3",
+ call$1: function(i) {
+ return $.$$index(this.copies_3, i);
+ }
+};
+
+$$._convertDartToNative_PrepareForStructuredClone_writeSlot = {"": "Closure;copies_4",
+ call$2: function(i, x) {
+ $.$$indexSet(this.copies_4, i, x);
+ }
+};
+
+$$._convertDartToNative_PrepareForStructuredClone_cleanupSlots = {"": "Closure;",
+ call$0: function() {
+ }
+};
+
+$$._convertDartToNative_PrepareForStructuredClone_walk = {"": "Closure;findSlot_5,readSlot_6,writeSlot_7",
+ call$1: function(e) {
+ var t1, slot, t2, length, copy, t3, i, element, elementCopy, copy0, j, t4;
+ t1 = {};
+ if (e == null)
+ return e;
+ if (typeof e === "boolean")
+ return e;
+ if (typeof e === "number")
+ return e;
+ if (typeof e === "string")
+ return e;
+ if (typeof e === "object" && e !== null && !!e.$isDateTime)
+ throw $.$$throw($.UnimplementedError$("structured clone of DateTime"));
+ if (typeof e === "object" && e !== null && !!e.$isRegExp)
+ throw $.$$throw($.UnimplementedError$("structured clone of RegExp"));
+ if (typeof e === "object" && e !== null && e.$isFile())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isBlob())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isFileList())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isImageData())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isArrayBuffer())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isArrayBufferView())
+ return e;
+ if (typeof e === "object" && e !== null && !!e.$isMap) {
+ slot = this.findSlot_5.call$1(e);
+ t1.copy_0 = this.readSlot_6.call$1(slot);
+ t2 = t1.copy_0;
+ if (!(t2 == null))
+ return t2;
+ t1.copy_0 = {};
+ this.writeSlot_7.call$2(slot, t1.copy_0);
+ e.forEach$1(new $._convertDartToNative_PrepareForStructuredClone_walk_anon(t1, this));
+ return t1.copy_0;
+ }
+ if (typeof e === "object" && e !== null && (e.constructor === Array || e.$isList())) {
+ if (typeof e !== "object" || e === null || (e.constructor !== Array || !!e.immutable$list) && !e.$isJavaScriptIndexingBehavior())
+ return this.call$1$bailout(1, e);
+ length = e.length;
+ slot = this.findSlot_5.call$1(e);
+ t2 = this.readSlot_6;
+ copy = t2.call$1(slot);
+ if (!(copy == null)) {
+ if (true === copy) {
+ copy = new Array(length);
+ this.writeSlot_7.call$2(slot, copy);
+ }
+ return copy;
+ }
+ t1 = e instanceof Array && !!!(e.immutable$list);
+ t3 = this.writeSlot_7;
+ if (t1) {
+ t3.call$2(slot, true);
+ for (i = 0; i < length; ++i) {
+ if (i >= e.length)
+ throw $.ioore(i);
+ element = e[i];
+ elementCopy = this.call$1(element);
+ if (!(elementCopy == null ? element == null : elementCopy === element)) {
+ copy0 = t2.call$1(slot);
+ if (true === copy0) {
+ copy0 = new Array(length);
+ t3.call$2(slot, copy0);
+ }
+ if (typeof copy0 !== "object" || copy0 === null || (copy0.constructor !== Array || !!copy0.immutable$list) && !copy0.$isJavaScriptIndexingBehavior())
+ return this.call$1$bailout(3, e, length, $.CONSTANT0, t3, elementCopy, copy0, slot, t2, i, copy);
+ for (t1 = e.length, t2 = copy0.length, j = 0; j < i; ++j) {
+ if (j >= t1)
+ throw $.ioore(j);
+ t4 = e[j];
+ if (j >= t2)
+ throw $.ioore(j);
+ copy0[j] = t4;
+ }
+ if (i >= t2)
+ throw $.ioore(i);
+ copy0[i] = elementCopy;
+ ++i;
+ copy = copy0;
+ break;
+ }
+ }
+ if (copy == null) {
+ t3.call$2(slot, e);
+ copy = e;
+ }
+ } else {
+ copy = new Array(length);
+ t3.call$2(slot, copy);
+ i = 0;
+ }
+ if (typeof copy !== "object" || copy === null || (copy.constructor !== Array || !!copy.immutable$list) && !copy.$isJavaScriptIndexingBehavior())
+ return this.call$1$bailout(4, e, length, $.CONSTANT0, null, null, null, null, null, i, copy);
+ for (; i < length; ++i) {
+ if (i >= e.length)
+ throw $.ioore(i);
+ t1 = this.call$1(e[i]);
+ if (i >= copy.length)
+ throw $.ioore(i);
+ copy[i] = t1;
+ }
+ return copy;
+ }
+ throw $.$$throw($.UnimplementedError$("structured clone of other type"));
+ },
+ call$1$bailout: function(state0, e, length, t2, t3, elementCopy, copy0, slot, t4, i, copy) {
+ switch (state0) {
+ case 0:
+ t1 = {};
+ if (e == null)
+ return e;
+ if (typeof e === "boolean")
+ return e;
+ if (typeof e === "number")
+ return e;
+ if (typeof e === "string")
+ return e;
+ if (typeof e === "object" && e !== null && !!e.$isDateTime)
+ throw $.$$throw($.UnimplementedError$("structured clone of DateTime"));
+ if (typeof e === "object" && e !== null && !!e.$isRegExp)
+ throw $.$$throw($.UnimplementedError$("structured clone of RegExp"));
+ if (typeof e === "object" && e !== null && e.$isFile())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isBlob())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isFileList())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isImageData())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isArrayBuffer())
+ return e;
+ if (typeof e === "object" && e !== null && e.$isArrayBufferView())
+ return e;
+ if (typeof e === "object" && e !== null && !!e.$isMap) {
+ slot = this.findSlot_5.call$1(e);
+ t1.copy_0 = this.readSlot_6.call$1(slot);
+ t2 = t1.copy_0;
+ if (!(t2 == null))
+ return t2;
+ t1.copy_0 = {};
+ this.writeSlot_7.call$2(slot, t1.copy_0);
+ e.forEach$1(new $._convertDartToNative_PrepareForStructuredClone_walk_anon(t1, this));
+ return t1.copy_0;
+ }
+ default:
+ var t1, element, j;
+ if (state0 === 4 || state0 === 3 || state0 === 2 || state0 === 1 || state0 === 0 && typeof e === "object" && e !== null && (e.constructor === Array || e.$isList()))
+ switch (state0) {
+ case 0:
+ case 1:
+ state0 = 0;
+ t2 = $.getInterceptor$JSStringJSArray(e);
+ length = t2.get$length(e);
+ case 2:
+ state0 = 0;
+ slot = this.findSlot_5.call$1(e);
+ t4 = this.readSlot_6;
+ copy = t4.call$1(slot);
+ if (!(copy == null)) {
+ if (true === copy) {
+ copy = new Array(length);
+ this.writeSlot_7.call$2(slot, copy);
+ }
+ return copy;
+ }
+ t1 = e instanceof Array && !!!(e.immutable$list);
+ t3 = this.writeSlot_7;
+ case 3:
+ if (state0 === 3 || state0 === 0 && t1)
+ switch (state0) {
+ case 0:
+ t3.call$2(slot, true);
+ i = 0;
+ case 3:
+ L0:
+ while (true)
+ switch (state0) {
+ case 0:
+ if (!$.CONSTANT4.$lt(i, length))
+ break L0;
+ element = t2.$index(e, i);
+ elementCopy = this.call$1(element);
+ case 3:
+ if (state0 === 3 || state0 === 0 && !(elementCopy == null ? element == null : elementCopy === element))
+ switch (state0) {
+ case 0:
+ copy0 = t4.call$1(slot);
+ if (true === copy0) {
+ copy0 = new Array(length);
+ t3.call$2(slot, copy0);
+ }
+ case 3:
+ state0 = 0;
+ for (t1 = $.getInterceptor$JSArray(copy0), j = 0; j < i; ++j)
+ t1.$indexSet(copy0, j, t2.$index(e, j));
+ t1.$indexSet(copy0, i, elementCopy);
+ ++i;
+ copy = copy0;
+ break L0;
+ }
+ ++i;
+ }
+ if (copy == null) {
+ t3.call$2(slot, e);
+ copy = e;
+ }
+ }
+ else {
+ copy = new Array(length);
+ t3.call$2(slot, copy);
+ i = 0;
+ }
+ case 4:
+ state0 = 0;
+ for (t1 = $.getInterceptor$JSArray(copy); $.CONSTANT4.$lt(i, length); ++i)
+ t1.$indexSet(copy, i, this.call$1(t2.$index(e, i)));
+ return copy;
+ }
+ throw $.$$throw($.UnimplementedError$("structured clone of other type"));
+ }
+ }
+};
+
+$$._convertDartToNative_PrepareForStructuredClone_walk_anon = {"": "Closure;box_0,walk_8",
+ call$2: function(key, value) {
+ this.box_0.copy_0[key] = this.walk_8.call$1(value);
+ }
+};
+
+$$._JsonStringifier_stringifyJsonValue_anon = {"": "Closure;box_0,this_1",
+ call$2: function(key, value) {
+ var t1, t2, t3;
+ t1 = this.box_0;
+ t2 = t1.first_0;
+ t3 = this.this_1;
+ if (t2 !== true)
+ $.add(t3.get$sb(), ",\"");
+ else
+ $.add(t3.get$sb(), "\"");
+ t2 = this.this_1;
+ $._JsonStringifier_escape(t2.get$sb(), key);
+ $.add(t2.get$sb(), "\":");
+ t2.stringifyValue$1(value);
+ t1.first_0 = false;
+ }
+};
+
+$$.Suite_test_anon = {"": "Closure;this_0,name_1,test__2",
+ call$0: function() {
+ var runsPerSecond, i, runs, start, cur, exception, stacktrace, t1, exception0;
+ runsPerSecond = $.List_List(0);
+ try {
+ for (i = 0, t1 = this.test__2; $.$$lt(i, 5) === true; i = $.$$add(i, 1)) {
+ runs = 0;
+ start = $.DateTime_DateTime$now().get$millisecondsSinceEpoch();
+ cur = $.DateTime_DateTime$now().get$millisecondsSinceEpoch();
+ for (; $.$$lt($.$$sub(cur, start), 1000) === true;) {
+ t1.call$0();
+ cur = $.DateTime_DateTime$now().get$millisecondsSinceEpoch();
+ runs = $.$$add(runs, 1);
+ }
+ $.add(runsPerSecond, $.$$div($.$$mul(runs, 1000), $.$$sub(cur, start)));
+ }
+ } catch (exception0) {
+ t1 = $.unwrapException(exception0);
+ exception = t1;
+ stacktrace = $.getTraceFromException(exception0);
+ this.this_0.get$_window().alert$1("Exception " + $.S(exception) + ": " + $.S(stacktrace));
+ return;
+ }
+
+ this.this_0._reportTestResults$2(this.name_1, $.Result_Result(runsPerSecond));
+ }
+};
+
+$$.Result_Result_anon = {"": "Closure;",
+ call$2: function(a, b) {
+ return $.compareTo(a, b);
+ }
+};
+
+$$.Result_sum_anon = {"": "Closure;box_0",
+ call$1: function(e) {
+ var t1 = this.box_0;
+ t1.result_0 = $.$$add(t1.result_0, e);
+ }
+};
+
+$$.Result_variance_anon = {"": "Closure;box_0,m_1",
+ call$1: function(e) {
+ var t1, t2, t3;
+ t1 = this.box_0;
+ t2 = t1.result_0;
+ t3 = $.$$sub(e, this.m_1);
+ $.checkNum(t3);
+ $.checkNum(2);
+ t1.result_0 = $.$$add(t2, Math.pow(t3, 2));
+ }
+};
+
+$$.DateTime_toString_fourDigits = {"": "Closure;",
+ call$1: function(n) {
+ var t1, absN, sign;
+ t1 = $.getInterceptor$JSNumber(n);
+ absN = t1.abs$0(n);
+ sign = t1.$lt(n, 0) === true ? "-" : "";
+ t1 = $.getInterceptor$JSNumber(absN);
+ if (t1.$ge(absN, 1000) === true)
+ return $.S(n);
+ if (t1.$ge(absN, 100) === true)
+ return sign + "0" + $.S(absN);
+ if (t1.$ge(absN, 10) === true)
+ return sign + "00" + $.S(absN);
+ return sign + "000" + $.S(absN);
+ }
+};
+
+$$.DateTime_toString_threeDigits = {"": "Closure;",
+ call$1: function(n) {
+ var t1 = $.getInterceptor$JSNumber(n);
+ if (t1.$ge(n, 100) === true)
+ return $.S(n);
+ if (t1.$ge(n, 10) === true)
+ return "0" + $.S(n);
+ return "00" + $.S(n);
+ }
+};
+
+$$.DateTime_toString_twoDigits = {"": "Closure;",
+ call$1: function(n) {
+ if ($.$$ge(n, 10) === true)
+ return $.S(n);
+ return "0" + $.S(n);
+ }
+};
+
+$$.starter = {"": "Closure;this_0",
+ call$1: function(event) {
+ var command, t1;
+ command = event.get$data();
+ t1 = this.this_0;
+ switch (command) {
+ case "start":
+ t1._run$0();
+ return;
+ default:
+ t1.get$_window().alert$1("[" + $.S(t1.get$_name()) + "]: unknown command " + $.S(command));
+ }
+ }
+};
+
+$$.invokeClosure_anon = {"": "Closure;closure_0",
+ call$0: function() {
+ return this.closure_0.call$0();
+ }
+};
+
+$$.invokeClosure_anon0 = {"": "Closure;closure_1,arg1_2",
+ call$0: function() {
+ return this.closure_1.call$1(this.arg1_2);
+ }
+};
+
+$$.invokeClosure_anon1 = {"": "Closure;closure_3,arg1_4,arg2_5",
+ call$0: function() {
+ return this.closure_3.call$2(this.arg1_4, this.arg2_5);
+ }
+};
+
+$$.Suite__run_handler = {"": "Closure;box_0,this_1",
+ call$0: function() {
+ var t1, t2, t3;
+ t1 = this.box_0;
+ t2 = t1.currentOperation_0;
+ t3 = this.this_1;
+ if ($.$$lt(t2, $.length(t3.get$_operations())) === true) {
+ $.$$index(t3.get$_operations(), t1.currentOperation_0).call$0();
+ t1.currentOperation_0 = $.$$add(t1.currentOperation_0, 1);
+ t3.get$_window().setTimeout$2(this, 1);
+ } else
+ t3._postMessage$1("over");
+ }
+};
+
+$$.convertNativeToDart_AcceptStructuredClone_findSlot = {"": "Closure;values_0,copies_1",
+ call$1: function(value) {
+ var t1, length, i, t2;
+ t1 = this.values_0;
+ if (typeof t1 !== "string" && (typeof t1 !== "object" || t1 === null || t1.constructor !== Array && !t1.$isJavaScriptIndexingBehavior()))
+ return this.call$1$bailout2(1, value, t1);
+ length = t1.length;
+ for (i = 0; i < length; ++i) {
+ t2 = t1[i];
+ if (t2 == null ? value == null : t2 === value)
+ return i;
+ }
+ $.add(t1, value);
+ $.add(this.copies_1, null);
+ return length;
+ },
+ call$1$bailout2: function(state0, value, t1, t3, length) {
+ switch (state0) {
+ case 0:
+ t1 = this.values_0;
+ case 1:
+ state0 = 0;
+ t3 = $.getInterceptor$JSStringJSArray(t1);
+ length = t3.get$length(t1);
+ case 2:
+ var i, t2;
+ state0 = 0;
+ for (i = 0; $.CONSTANT4.$lt(i, length); ++i) {
+ t2 = t3.$index(t1, i);
+ if (t2 == null ? value == null : t2 === value)
+ return i;
+ }
+ $.add(t1, value);
+ $.add(this.copies_1, null);
+ return length;
+ }
+ }
+};
+
+$$.convertNativeToDart_AcceptStructuredClone_readSlot = {"": "Closure;copies_2",
+ call$1: function(i) {
+ return $.$$index(this.copies_2, i);
+ }
+};
+
+$$.convertNativeToDart_AcceptStructuredClone_writeSlot = {"": "Closure;copies_3",
+ call$2: function(i, x) {
+ $.$$indexSet(this.copies_3, i, x);
+ }
+};
+
+$$.convertNativeToDart_AcceptStructuredClone_walk = {"": "Closure;mustCopy_4,findSlot_5,readSlot_6,writeSlot_7",
+ call$1: function(e) {
+ var slot, copy, t1, t2, t3, length, i;
+ if (typeof e !== "object" || e === null || (e.constructor !== Array || !!e.immutable$list) && !e.$isJavaScriptIndexingBehavior())
+ return this.call$1$bailout1(1, e);
+ if (e instanceof Date)
+ throw $.$$throw($.UnimplementedError$("structured clone of DateTime"));
+ if (e instanceof RegExp)
+ throw $.$$throw($.UnimplementedError$("structured clone of RegExp"));
+ if (Object.getPrototypeOf(e) === Object.prototype) {
+ slot = this.findSlot_5.call$1(e);
+ copy = this.readSlot_6.call$1(slot);
+ if (!(copy == null))
+ return copy;
+ copy = $.makeLiteralMap([]);
+ if (typeof copy !== "object" || copy === null || (copy.constructor !== Array || !!copy.immutable$list) && !copy.$isJavaScriptIndexingBehavior())
+ return this.call$1$bailout1(2, e, copy, slot);
+ this.writeSlot_7.call$2(slot, copy);
+ for (t1 = $.CONSTANT0.get$iterator(Object.keys(e)); t1.moveNext$0() === true;) {
+ t2 = t1.get$current();
+ t3 = this.call$1(e[t2]);
+ if (t2 !== (t2 | 0))
+ throw $.iae(t2);
+ if (t2 < 0 || t2 >= copy.length)
+ throw $.ioore(t2);
+ copy[t2] = t3;
+ }
+ return copy;
+ }
+ if (e instanceof Array) {
+ slot = this.findSlot_5.call$1(e);
+ copy = this.readSlot_6.call$1(slot);
+ if (!(copy == null))
+ return copy;
+ length = e.length;
+ if (this.mustCopy_4 === true)
+ copy = new Array(length);
+ else
+ copy = e;
+ if (typeof copy !== "object" || copy === null || (copy.constructor !== Array || !!copy.immutable$list) && !copy.$isJavaScriptIndexingBehavior())
+ return this.call$1$bailout1(4, e, copy, slot, length, $.CONSTANT0);
+ this.writeSlot_7.call$2(slot, copy);
+ for (i = 0; i < length; ++i) {
+ if (i >= e.length)
+ throw $.ioore(i);
+ t1 = this.call$1(e[i]);
+ if (i >= copy.length)
+ throw $.ioore(i);
+ copy[i] = t1;
+ }
+ return copy;
+ }
+ return e;
+ },
+ call$1$bailout1: function(state0, e, copy, slot, length, t1) {
+ switch (state0) {
+ case 0:
+ case 1:
+ state0 = 0;
+ t1 = $.getInterceptor(e);
+ if (e == null)
+ return e;
+ if (typeof e === "boolean")
+ return e;
+ if (typeof e === "number")
+ return e;
+ if (typeof e === "string")
+ return e;
+ if (e instanceof Date)
+ throw $.$$throw($.UnimplementedError$("structured clone of DateTime"));
+ if (e instanceof RegExp)
+ throw $.$$throw($.UnimplementedError$("structured clone of RegExp"));
+ case 2:
+ if (state0 === 2 || state0 === 0 && Object.getPrototypeOf(e) === Object.prototype)
+ switch (state0) {
+ case 0:
+ slot = this.findSlot_5.call$1(e);
+ copy = this.readSlot_6.call$1(slot);
+ if (!(copy == null))
+ return copy;
+ copy = $.makeLiteralMap([]);
+ case 2:
+ state0 = 0;
+ this.writeSlot_7.call$2(slot, copy);
+ for (t1 = $.CONSTANT0.get$iterator(Object.keys(e)), t2 = $.getInterceptor$JSArray(copy); t1.moveNext$0() === true;) {
+ t3 = t1.get$current();
+ t2.$indexSet(copy, t3, this.call$1(e[t3]));
+ }
+ return copy;
+ }
+ default:
+ var t2, t3, i;
+ if (state0 === 4 || state0 === 3 || state0 === 0 && e instanceof Array)
+ switch (state0) {
+ case 0:
+ slot = this.findSlot_5.call$1(e);
+ copy = this.readSlot_6.call$1(slot);
+ if (!(copy == null))
+ return copy;
+ length = t1.get$length(e);
+ case 3:
+ state0 = 0;
+ copy = this.mustCopy_4 === true ? new Array(length) : e;
+ case 4:
+ state0 = 0;
+ this.writeSlot_7.call$2(slot, copy);
+ for (t2 = $.getInterceptor$JSArray(copy), i = 0; $.CONSTANT4.$lt(i, length); ++i)
+ t2.$indexSet(copy, i, this.call$1(t1.$index(e, i)));
+ return copy;
+ }
+ return e;
+ }
+ }
+};
+
+$$.BoundClosure = {"": "Closure;self,target",
+ call$1: function(p0) {
+ return this.self[this.target](p0);
+ }
+};
+$$.BoundClosure0 = {"": "Closure;self,target,receiver",
+ call$1: function(p0) {
+ return this.self[this.target](this.receiver, p0);
+ }
+};
+$$.BoundClosure1 = {"": "Closure;self,target,receiver",
+ call$2: function(p0, p1) {
+ return this.self[this.target](this.receiver, p0, p1);
+ },
+ call$1: function($receiver, other) {
+ return this.call$2($receiver, other, 0);
+ }
+};
+$.Result_Result = function(runsPerSecond) {
+ $.sort(runsPerSecond, new $.Result_Result_anon());
+ return $.Result$_internal(runsPerSecond);
+};
+
+$.Result$_internal = function(_sorted) {
+ return new $.Result(_sorted);
+};
+
+$.Suite$ = function(_window, _name) {
+ var t1 = new $.Suite(_window, _name, $.List_List(0), 0, 0);
+ t1.Suite$2(_window, _name);
+ return t1;
+};
+
+$.Strings__toJsStringArray = function(strings) {
+ var length, i, string;
+ if (typeof strings !== "object" || strings === null || (strings.constructor !== Array || !!strings.immutable$list) && !strings.$isJavaScriptIndexingBehavior())
+ return $.Strings__toJsStringArray$bailout(1, strings);
+ $.checkNull(strings);
+ if (!strings.constructor === Array)
+ strings = $.List_List$from(strings);
+ length = strings.length;
+ for (i = 0; i < length; ++i) {
+ string = strings[i];
+ if (!(typeof string === "string"))
+ throw $.$$throw($.ArgumentError$(string));
+ }
+ return strings;
+};
+
+$.Strings__toJsStringArray$bailout = function(state0, strings, t1, length) {
+ switch (state0) {
+ case 0:
+ case 1:
+ state0 = 0;
+ $.checkNull(strings);
+ if (!(!(strings == null) && strings.constructor === Array))
+ strings = $.List_List$from(strings);
+ t1 = $.getInterceptor$JSStringJSArray(strings);
+ length = t1.get$length(strings);
+ case 2:
+ var i, string;
+ state0 = 0;
+ for (i = 0; $.CONSTANT4.$lt(i, length); ++i) {
+ string = t1.$index(strings, i);
+ if (!(typeof string === "string"))
+ throw $.$$throw($.ArgumentError$(string));
+ }
+ return strings;
+ }
+};
+
+$.checkMutable = function(list, reason) {
+ if (!!(list.immutable$list))
+ throw $.$$throw($.UnsupportedError$(reason));
+};
+
+$.checkGrowable = function(list, reason) {
+ if (!!(list.fixed$length))
+ throw $.$$throw($.UnsupportedError$(reason));
+};
+
+$.S = function(value) {
+ var t1 = $.toString(value);
+ if (!(typeof t1 === "string"))
+ throw $.$$throw($.ArgumentError$(value));
+ return t1;
+};
+
+$.Primitives_objectHashCode = function(object) {
+ var hash = object.$identityHash;
+ if (hash == null) {
+ hash = $.$$add($.Primitives_hashCodeSeed, 1);
+ $.Primitives_hashCodeSeed = hash;
+ object.$identityHash = hash;
+ }
+ return hash;
+};
+
+$.Primitives_objectTypeName = function(object) {
+ var name, decompiled, t1;
+ name = $.constructorNameFallback(object);
+ if ($.$$eq(name, "Object") === true) {
+ decompiled = String(object.constructor).match(/^\s*function\s*(\S*)\s*\(/)[1];
+ if (typeof decompiled === "string")
+ name = decompiled;
+ }
+ t1 = $.getInterceptor$JSString(name);
+ return t1.charCodeAt$1(name, 0) === 36 ? t1.substring$1(name, 1) : name;
+};
+
+$.Primitives_newFixedList = function(length) {
+ var result = new Array(length);
+ result.fixed$length = true;
+ return result;
+};
+
+$.Primitives_dateNow = function() {
+ return Date.now();
+};
+
+$.Primitives__fromCharCodeApply = function(array) {
+ var end, t1, i, result, subarray, t2;
+ end = array.length;
+ for (t1 = end <= 500, i = 0, result = ""; i < end; i += 500) {
+ if (t1)
+ subarray = array;
+ else {
+ t2 = i + 500;
+ t2 = t2 < end ? t2 : end;
+ subarray = array.slice(i, t2);
+ }
+ result = result + String.fromCharCode.apply(null, subarray);
+ }
+ return result;
+};
+
+$.Primitives_stringFromCodePoints = function(codePoints) {
+ var a, t1, t2;
+ a = [];
+ for (t1 = $.CONSTANT0.get$iterator(codePoints); t1.moveNext$0() === true;) {
+ t2 = t1.get$current();
+ if (!(typeof t2 === "number" && Math.floor(t2) === t2))
+ throw $.$$throw($.ArgumentError$(t2));
+ if (t2 <= 65535)
+ a.push(t2);
+ else if (t2 <= 1114111) {
+ a.push(55296 + ($.CONSTANT4.$shr(t2 - 65536, 10) & 1023));
+ a.push(56320 + (t2 & 1023));
+ } else
+ throw $.$$throw($.ArgumentError$(t2));
+ }
+ return $.Primitives__fromCharCodeApply(a);
+};
+
+$.Primitives_stringFromCharCodes = function(charCodes) {
+ var t1, t2;
+ for (t1 = $.CONSTANT0.get$iterator(charCodes); t1.moveNext$0() === true;) {
+ t2 = t1.get$current();
+ if (!(typeof t2 === "number" && Math.floor(t2) === t2))
+ throw $.$$throw($.ArgumentError$(t2));
+ if (t2 < 0)
+ throw $.$$throw($.ArgumentError$(t2));
+ if (t2 > 65535)
+ return $.Primitives_stringFromCodePoints(charCodes);
+ }
+ return $.Primitives__fromCharCodeApply(charCodes);
+};
+
+$.Primitives_lazyAsJsDate = function(receiver) {
+ if (receiver.date === (void 0))
+ receiver.date = new Date(receiver.millisecondsSinceEpoch);
+ return receiver.date;
+};
+
+$.Primitives_getYear = function(receiver) {
+ return receiver.isUtc === true ? ($.Primitives_lazyAsJsDate(receiver).getUTCFullYear() + 0) : ($.Primitives_lazyAsJsDate(receiver).getFullYear() + 0);
+};
+
+$.Primitives_getMonth = function(receiver) {
+ return receiver.isUtc === true ? $.Primitives_lazyAsJsDate(receiver).getUTCMonth() + 1 : $.Primitives_lazyAsJsDate(receiver).getMonth() + 1;
+};
+
+$.Primitives_getDay = function(receiver) {
+ return receiver.isUtc === true ? ($.Primitives_lazyAsJsDate(receiver).getUTCDate() + 0) : ($.Primitives_lazyAsJsDate(receiver).getDate() + 0);
+};
+
+$.Primitives_getHours = function(receiver) {
+ return receiver.isUtc === true ? ($.Primitives_lazyAsJsDate(receiver).getUTCHours() + 0) : ($.Primitives_lazyAsJsDate(receiver).getHours() + 0);
+};
+
+$.Primitives_getMinutes = function(receiver) {
+ return receiver.isUtc === true ? ($.Primitives_lazyAsJsDate(receiver).getUTCMinutes() + 0) : ($.Primitives_lazyAsJsDate(receiver).getMinutes() + 0);
+};
+
+$.Primitives_getSeconds = function(receiver) {
+ return receiver.isUtc === true ? ($.Primitives_lazyAsJsDate(receiver).getUTCSeconds() + 0) : ($.Primitives_lazyAsJsDate(receiver).getSeconds() + 0);
+};
+
+$.Primitives_getMilliseconds = function(receiver) {
+ return receiver.isUtc === true ? ($.Primitives_lazyAsJsDate(receiver).getUTCMilliseconds() + 0) : ($.Primitives_lazyAsJsDate(receiver).getMilliseconds() + 0);
+};
+
+$.iae = function(argument) {
+ throw $.$$throw($.ArgumentError$(argument));
+};
+
+$.ioore = function(index) {
+ throw $.$$throw($.RangeError$value(index));
+};
+
+$.checkNull = function(object) {
+ if (object == null)
+ throw $.$$throw($.ArgumentError$(null));
+ return object;
+};
+
+$.checkNum = function(value) {
+ if (!(typeof value === "number"))
+ throw $.$$throw($.ArgumentError$(value));
+ return value;
+};
+
+$.checkString = function(value) {
+ if (!(typeof value === "string"))
+ throw $.$$throw($.ArgumentError$(value));
+ return value;
+};
+
+$.$$throw = function(ex) {
+ var wrapper;
+ if (ex == null)
+ ex = $.CONSTANT;
+ wrapper = $.DartError$(ex);
+ if (!!Error.captureStackTrace)
+ Error.captureStackTrace(wrapper, $.$$throw);
+ else
+ wrapper.stack = new Error().stack;
+ return wrapper;
+};
+
+$.DartError$ = function(dartException) {
+ var t1 = new $.DartError();
+ t1.DartError$1(dartException);
+ return t1;
+};
+
+$.DartError_toStringWrapper = function() {
+ return $.toString(this);
+};
+
+$.unwrapException = function(ex) {
+ var message, type, name, t1, ieErrorCode, ieFacilityNumber, t2;
+ if ("dartException" in ex)
+ return ex.dartException;
+ message = ex.message;
+ if (ex instanceof TypeError) {
+ type = ex.type;
+ name = ex.arguments ? ex.arguments[0] : "";
+ if (message.indexOf("JSNull") === -1) {
+ t1 = $.getInterceptor(type);
+ t1 = t1.$eq(type, "property_not_function") === true || t1.$eq(type, "called_non_callable") === true || t1.$eq(type, "non_object_property_call") === true || t1.$eq(type, "non_object_property_load") === true;
+ } else
+ t1 = true;
+ if (t1)
+ return $.NoSuchMethodError$(null, name, [], $.makeLiteralMap([]), null);
+ else if ($.$$eq(type, "undefined_method") === true)
+ return $.NoSuchMethodError$("", name, [], $.makeLiteralMap([]), null);
+ ieErrorCode = ex.number & 0xffff;
+ ieFacilityNumber = ex.number>>16 & 0x1FFF;
+ t1 = typeof message === "string";
+ if (t1)
+ if ($.CONSTANT1.endsWith$1(message, "is null") === true || $.CONSTANT1.endsWith$1(message, "is undefined") === true || $.CONSTANT1.endsWith$1(message, "is null or undefined") === true || $.CONSTANT1.endsWith$1(message, "of undefined") === true || $.CONSTANT1.endsWith$1(message, "of null") === true)
+ return $.NoSuchMethodError$(null, "<unknown>", [], $.makeLiteralMap([]), null);
+ else {
+ if (message.indexOf(" has no method ") === -1)
+ if (message.indexOf(" is not a function") === -1)
+ t2 = ieErrorCode === 438 && ieFacilityNumber === 10;
+ else
+ t2 = true;
+ else
+ t2 = true;
+ if (t2)
+ return $.NoSuchMethodError$("", "<unknown>", [], $.makeLiteralMap([]), null);
+ }
+ return $.Exception_Exception(t1 ? message : "");
+ }
+ if (ex instanceof RangeError) {
+ if (typeof message === "string" && message.indexOf("call stack") !== -1)
+ return $.StackOverflowError$();
+ return $.ArgumentError$(null);
+ }
+ if (typeof InternalError == 'function' && ex instanceof InternalError)
+ if (typeof message === "string" && message === "too much recursion")
+ return $.StackOverflowError$();
+ return ex;
+};
+
+$.getTraceFromException = function(exception) {
+ return $.StackTrace$(exception.stack);
+};
+
+$.StackTrace$ = function(stack) {
+ return new $.StackTrace(stack);
+};
+
+$.makeLiteralMap = function(keyValuePairs) {
+ var iterator, result, t1, key;
+ iterator = $.CONSTANT0.get$iterator(keyValuePairs);
+ result = $.LinkedHashMap_LinkedHashMap();
+ for (t1 = $.getInterceptor$JSArray(result); iterator.moveNext$0() === true;) {
+ key = iterator.get$current();
+ iterator.moveNext$0();
+ t1.$indexSet(result, key, iterator.get$current());
+ }
+ return result;
+};
+
+$.invokeClosure = function(closure, isolate, numberOfArguments, arg1, arg2) {
+ var t1 = $.getInterceptor(numberOfArguments);
+ if (t1.$eq(numberOfArguments, 0) === true)
+ return new $.invokeClosure_anon(closure).call$0();
+ else if (t1.$eq(numberOfArguments, 1) === true)
+ return new $.invokeClosure_anon0(closure, arg1).call$0();
+ else if (t1.$eq(numberOfArguments, 2) === true)
+ return new $.invokeClosure_anon1(closure, arg1, arg2).call$0();
+ else
+ throw $.$$throw($.Exception_Exception("Unsupported number of arguments for wrapped closure"));
+};
+
+$.convertDartClosureToJS = function(closure, arity) {
+ var $function;
+ if (closure == null)
+ return;
+ $function = closure.$identity;
+ if (!!$function)
+ return $function;
+ $;
+ $function = function($0, $1) { return $.invokeClosure.call$5(closure, $, arity, $0, $1); };
+ closure.$identity = $function;
+ return $function;
+};
+
+$.throwCyclicInit = function(staticName) {
+ throw $.$$throw($.RuntimeError$("Cyclic initialization for static " + $.S(staticName)));
+};
+
+$.typeNameInChrome = function(obj) {
+ return $.typeNameInWebKitCommon(obj.constructor.name);
+};
+
+$.typeNameInSafari = function(obj) {
+ return $.typeNameInWebKitCommon($.constructorNameFallback(obj));
+};
+
+$.typeNameInWebKitCommon = function(tag) {
+ var name = tag;
+ if (name === "Window")
+ return "DOMWindow";
+ if (name === "CanvasPixelArray")
+ return "Uint8ClampedArray";
+ if (name === "WebKitMutationObserver")
+ return "MutationObserver";
+ if (name === "AudioChannelMerger")
+ return "ChannelMergerNode";
+ if (name === "AudioChannelSplitter")
+ return "ChannelSplitterNode";
+ if (name === "AudioGainNode")
+ return "GainNode";
+ if (name === "AudioPannerNode")
+ return "PannerNode";
+ if (name === "JavaScriptAudioNode")
+ return "ScriptProcessorNode";
+ if (name === "Oscillator")
+ return "OscillatorNode";
+ if (name === "RealtimeAnalyserNode")
+ return "AnalyserNode";
+ return name;
+};
+
+$.typeNameInOpera = function(obj) {
+ var name = $.constructorNameFallback(obj);
+ if (name === "Window")
+ return "DOMWindow";
+ if (name === "ApplicationCache")
+ return "DOMApplicationCache";
+ return name;
+};
+
+$.typeNameInFirefox = function(obj) {
+ var name = $.constructorNameFallback(obj);
+ if (name === "Window")
+ return "DOMWindow";
+ if (name === "CSS2Properties")
+ return "CSSStyleDeclaration";
+ if (name === "DataTransfer")
+ return "Clipboard";
+ if (name === "DragEvent")
+ return "MouseEvent";
+ if (name === "GeoGeolocation")
+ return "Geolocation";
+ if (name === "MouseScrollEvent")
+ return "WheelEvent";
+ if (name === "OfflineResourceList")
+ return "DOMApplicationCache";
+ if (name === "WorkerMessageEvent")
+ return "MessageEvent";
+ if (name === "XMLDocument")
+ return "Document";
+ return name;
+};
+
+$.typeNameInIE = function(obj) {
+ var name = $.constructorNameFallback(obj);
+ if (name === "Window")
+ return "DOMWindow";
+ if (name === "Document") {
+ if (!!obj.xmlVersion)
+ return "Document";
+ return "HTMLDocument";
+ }
+ if (name === "ApplicationCache")
+ return "DOMApplicationCache";
+ if (name === "CanvasPixelArray")
+ return "Uint8ClampedArray";
+ if (name === "DataTransfer")
+ return "Clipboard";
+ if (name === "DragEvent")
+ return "MouseEvent";
+ if (name === "HTMLDDElement")
+ return "HTMLElement";
+ if (name === "HTMLDTElement")
+ return "HTMLElement";
+ if (name === "HTMLTableDataCellElement")
+ return "HTMLTableCellElement";
+ if (name === "HTMLTableHeaderCellElement")
+ return "HTMLTableCellElement";
+ if (name === "HTMLPhraseElement")
+ return "HTMLElement";
+ if (name === "MSStyleCSSProperties")
+ return "CSSStyleDeclaration";
+ if (name === "MouseWheelEvent")
+ return "WheelEvent";
+ if (name === "Position")
+ return "Geoposition";
+ if (name === "Object")
+ if (window.DataView && (obj instanceof window.DataView))
+ return "DataView";
+ return name;
+};
+
+$.constructorNameFallback = function(object) {
+ var $constructor, name, t1, string;
+ if (object == null)
+ return "Null";
+ $constructor = object.constructor;
+ if (typeof($constructor) === "function") {
+ name = $constructor.name;
+ if (typeof name === "string")
+ t1 = !(name === "") && !(name === "Object") && !(name === "Function.prototype");
+ else
+ t1 = false;
+ if (t1)
+ return name;
+ }
+ string = Object.prototype.toString.call(object);
+ return string.substring(8, string.length - 1);
+};
+
+$.alternateTag = function(object, tag) {
+ if (!!/^HTML[A-Z].*Element$/.test(tag)) {
+ if (Object.prototype.toString.call(object) === "[object Object]")
+ return;
+ return "HTMLElement";
+ }
+ return;
+};
+
+$.callHasOwnProperty = function($function, object, property) {
+ return $function.call(object, property);
+};
+
+$.getFunctionForTypeNameOf = function() {
+ if (!(typeof(navigator) === "object"))
+ return $.typeNameInChrome;
+ var userAgent = navigator.userAgent;
+ if (userAgent.indexOf("Chrome") !== -1 || userAgent.indexOf("DumpRenderTree") !== -1)
+ return $.typeNameInChrome;
+ else if (userAgent.indexOf("Firefox") !== -1)
+ return $.typeNameInFirefox;
+ else if (userAgent.indexOf("MSIE") !== -1)
+ return $.typeNameInIE;
+ else if (userAgent.indexOf("Opera") !== -1)
+ return $.typeNameInOpera;
+ else if (userAgent.indexOf("AppleWebKit") !== -1)
+ return $.typeNameInSafari;
+ else
+ return $.constructorNameFallback;
+};
+
+$.getTypeNameOf = function(obj) {
+ if ($._getTypeNameOf == null)
+ $._getTypeNameOf = $.getFunctionForTypeNameOf();
+ return $._getTypeNameOf.call$1(obj);
+};
+
+$.toStringForNativeObject = function(obj) {
+ return "Instance of " + $.getTypeNameOf(obj);
+};
+
+$.hashCodeForNativeObject = function(object) {
+ return $.Primitives_objectHashCode(object);
+};
+
+$.defineProperty = function(obj, property, value) {
+ Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true});
+};
+
+$.dynamicBind = function(obj, name, methods, arguments) {
+ var tag, hasOwnPropertyFunction, method, secondTag, proto;
+ tag = $.getTypeNameOf(obj);
+ hasOwnPropertyFunction = Object.prototype.hasOwnProperty;
+ method = $.dynamicBindLookup(hasOwnPropertyFunction, tag, methods);
+ if (method == null) {
+ secondTag = $.alternateTag(obj, tag);
+ if (!(secondTag == null))
+ method = $.dynamicBindLookup(hasOwnPropertyFunction, secondTag, methods);
+ }
+ if (method == null)
+ method = $.lookupDynamicClass(hasOwnPropertyFunction, methods, $.getTypeNameOf($.CONSTANT5));
+ proto = Object.getPrototypeOf(obj);
+ if (method == null)
+ method = function () {if (Object.getPrototypeOf(this) === proto) {throw new TypeError(name + " is not a function");} else {return Object.prototype[name].apply(this, arguments);}};
+ if ($.callHasOwnProperty(hasOwnPropertyFunction, proto, name) !== true)
+ $.defineProperty(proto, name, method);
+ return method.apply(obj, arguments);
+};
+
+$.dynamicBindLookup = function(hasOwnPropertyFunction, tag, methods) {
+ var method, i, entry;
+ method = $.lookupDynamicClass(hasOwnPropertyFunction, methods, tag);
+ if (method == null && !($._dynamicMetadata0() == null))
+ for (i = 0; i < $._dynamicMetadata0().length; ++i) {
+ entry = $._dynamicMetadata0()[i];
+ if ($.callHasOwnProperty(hasOwnPropertyFunction, entry.get$_set(), tag)) {
+ method = $.lookupDynamicClass(hasOwnPropertyFunction, methods, entry.get$_tag());
+ if (!(method == null))
+ break;
+ }
+ }
+ return method;
+};
+
+$.lookupDynamicClass = function(hasOwnPropertyFunction, methods, className) {
+ return $.callHasOwnProperty(hasOwnPropertyFunction, methods, className) ? methods[className] : null;
+};
+
+$.dynamicFunction = function(name) {
+ var f, methods, dartMethod, bind;
+ f = Object.prototype[name];
+ if (!(f == null) && !!f.methods)
+ return f.methods;
+ methods = {};
+ dartMethod = Object.getPrototypeOf($.CONSTANT5)[name];
+ if (!(dartMethod == null))
+ methods["Object"] = dartMethod;
+ bind = function() {return $.dynamicBind.call$4(this, name, methods, Array.prototype.slice.call(arguments));};
+ bind.methods = methods;
+ $.defineProperty(Object.prototype, name, bind);
+ return methods;
+};
+
+$.MetaInfo$ = function(_tag, _tags, _set) {
+ return new $.MetaInfo(_tag, _tags, _set);
+};
+
+$._dynamicMetadata0 = function() {
+ if (typeof($dynamicMetadata) === "undefined")
+ $._dynamicMetadata([]);
+ return $dynamicMetadata;
+};
+
+$._dynamicMetadata = function(table) {
+ $dynamicMetadata = table;
+};
+
+$.buildDynamicMetadata = function(inputTable) {
+ var result, i, tag, tags, set, tagNames, j;
+ result = [];
+ for (i = 0; i < inputTable.length; ++i) {
+ tag = inputTable[i][0];
+ tags = inputTable[i][1];
+ set = {};
+ tagNames = tags.split("|");
+ for (j = 0; j < tagNames.length; ++j)
+ set[tagNames[j]] = true;
+ result.push($.MetaInfo$(tag, tags, set));
+ }
+ return result;
+};
+
+$.dynamicSetMetadata = function(inputTable) {
+ var t1 = $.buildDynamicMetadata(inputTable);
+ $._dynamicMetadata(t1);
+};
+
+$.regExpExec = function(regExp, str) {
+ var result = $.regExpGetNative(regExp).exec(str);
+ if (result == null)
+ return;
+ return result;
+};
+
+$.regExpTest = function(regExp, str) {
+ return $.regExpGetNative(regExp).test(str);
+};
+
+$.regExpGetNative = function(regExp) {
+ var r = regExp._re;
+ return r == null ? regExp._re = $.regExpMakeNative(regExp, false) : r;
+};
+
+$.regExpMakeNative = function(regExp, global) {
+ var pattern, sb, e, isMultiLine, isCaseSensitive, t1, exception;
+ pattern = regExp.get$pattern();
+ isMultiLine = regExp.get$isMultiLine();
+ isCaseSensitive = regExp.get$isCaseSensitive();
+ $.checkString(pattern);
+ sb = $.StringBuffer_StringBuffer("");
+ if (isMultiLine === true)
+ $.add(sb, "m");
+ if (isCaseSensitive !== true)
+ $.add(sb, "i");
+ if (global === true)
+ $.add(sb, "g");
+ try {
+ t1 = new RegExp(pattern, $.toString(sb));
+ return t1;
+ } catch (exception) {
+ t1 = $.unwrapException(exception);
+ e = t1;
+ throw $.$$throw($.IllegalJSRegExpException$(pattern, String(e)));
+ }
+
+};
+
+$.JSSyntaxRegExp$ = function(pattern, caseSensitive, multiLine) {
+ return new $.JSSyntaxRegExp(pattern, multiLine, caseSensitive);
+};
+
+$.JSSyntaxRegExp__globalVersionOf = function(other) {
+ var t1, t2, re;
+ t1 = other.get$pattern();
+ t2 = other.get$isMultiLine();
+ re = $.JSSyntaxRegExp$(t1, other.get$isCaseSensitive(), t2);
+ re._re = $.regExpMakeNative(re, true);
+ return re;
+};
+
+$._MatchImplementation$ = function(pattern, str, start, end, _groups) {
+ return new $._MatchImplementation(pattern, str, start, end, _groups);
+};
+
+$._AllMatchesIterable$ = function(_re, _str) {
+ return new $._AllMatchesIterable(_re, _str);
+};
+
+$._AllMatchesIterator$ = function(re, _str) {
+ return new $._AllMatchesIterator($.JSSyntaxRegExp__globalVersionOf(re), _str, null);
+};
+
+$.StringMatch$ = function(start, str, pattern) {
+ return new $.StringMatch(start, str, pattern);
+};
+
+$.allMatchesInStringUnchecked = function(needle, haystack) {
+ var result, t1, length, patternLength, startIndex, position, t2, endIndex;
+ result = $.List_List(0);
+ t1 = $.getInterceptor$JSStringJSArray(haystack);
+ length = t1.get$length(haystack);
+ patternLength = needle.length;
+ for (startIndex = 0; true;) {
+ position = t1.indexOf$2(haystack, needle, startIndex);
+ t2 = $.getInterceptor(position);
+ if (t2.$eq(position, -1) === true)
+ break;
+ result.push($.StringMatch$(position, haystack, needle));
+ endIndex = t2.$add(position, patternLength);
+ if ($.$$eq(endIndex, length) === true)
+ break;
+ else
+ startIndex = t2.$eq(position, endIndex) === true ? $.$$add(startIndex, 1) : endIndex;
+ }
+ return result;
+};
+
+$.stringContainsUnchecked = function(receiver, other, startIndex) {
+ if (typeof other === "string")
+ return $.$$eq($.CONSTANT1.indexOf$2(receiver, other, startIndex), -1) !== true;
+ else if (typeof other === "object" && other !== null && !!other.$isJSSyntaxRegExp)
+ return other.hasMatch$1($.CONSTANT1.substring$1(receiver, startIndex));
+ else
+ return $.iterator($.allMatches(other, $.CONSTANT1.substring$1(receiver, startIndex))).moveNext$0();
+};
+
+$.stringReplaceJS = function(receiver, replacer, to) {
+ return receiver.replace(replacer, to.replace('$', '$$$$'));
+};
+
+$.stringReplaceAllUnchecked = function(receiver, from, to) {
+ var result, length, t1, i;
+ $.checkString(to);
+ if (from === "")
+ if (receiver === "")
+ return to;
+ else {
+ result = $.StringBuffer_StringBuffer("");
+ length = receiver.length;
+ t1 = $.getInterceptor$JSArray(result);
+ t1.add$1(result, to);
+ for (i = 0; i < length; ++i) {
+ if (i >= receiver.length)
+ throw $.ioore(i);
+ t1.add$1(result, receiver[i]);
+ t1.add$1(result, to);
+ }
+ return t1.toString$0(result);
+ }
+ else
+ return $.stringReplaceJS(receiver, $.regExpMakeNative($.JSSyntaxRegExp$(from.replace($.regExpMakeNative($.get$quoteRegExp(), true), "\\$&"), true, false), true), to);
+};
+
+$.Arrays_indexOf = function(a, element, startIndex, endIndex) {
+ var i;
+ if (startIndex >= a.length)
+ return -1;
+ if (startIndex < 0)
+ startIndex = 0;
+ for (i = startIndex; i < endIndex; ++i) {
+ if (i < 0 || i >= a.length)
+ throw $.ioore(i);
+ if ($.$$eq(a[i], element) === true)
+ return i;
+ }
+ return -1;
+};
+
+$.IterableMixinWorkaround_contains = function(iterable, element) {
+ var t1, t2;
+ for (t1 = $.iterator(iterable), t2 = $.getInterceptor(element); t1.moveNext$0() === true;)
+ if (t2.$eq(element, t1.get$current()) === true)
+ return true;
+ return false;
+};
+
+$.IterableMixinWorkaround_removeAll = function(collection, elementsToRemove) {
+ var t1;
+ for (t1 = $.CONSTANT0.get$iterator(elementsToRemove); t1.moveNext$0() === true;)
+ collection.remove$1(t1.get$current());
+};
+
+$.IterableMixinWorkaround_removeAllList = function(collection, elementsToRemove) {
+ $.removeMatching(collection, $.contains(typeof elementsToRemove === "object" && elementsToRemove !== null && !!elementsToRemove.$isSet ? elementsToRemove : $.toSet(elementsToRemove)));
+};
+
+$.IterableMixinWorkaround_removeMatching = function(collection, test) {
+ var elementsToRemove, t1, t2;
+ elementsToRemove = [];
+ for (t1 = $.iterator(collection); t1.moveNext$0() === true;) {
+ t2 = t1.get$current();
+ if (test.call$1(t2) === true)
+ elementsToRemove.push(t2);
+ }
+ collection.removeAll$1(elementsToRemove);
+};
+
+$.IterableMixinWorkaround_removeMatchingList = function(list, test) {
+ var retained, length, i, element, t1, t2, t3;
+ if (typeof list !== "object" || list === null || (list.constructor !== Array || !!list.immutable$list) && !list.$isJavaScriptIndexingBehavior())
+ return $.IterableMixinWorkaround_removeMatchingList$bailout(1, list, test);
+ retained = [];
+ length = list.length;
+ for (i = 0; i < length; ++i) {
+ if (i >= list.length)
+ throw $.ioore(i);
+ element = list[i];
+ if (test.call$1(element) !== true)
+ retained.push(element);
+ if (length !== list.length)
+ throw $.$$throw($.ConcurrentModificationError$(list));
+ }
+ t1 = retained.length;
+ if (t1 === length)
+ return;
+ for (t2 = list.length, i = 0; i < t1; ++i) {
+ t3 = retained[i];
+ if (i >= t2)
+ throw $.ioore(i);
+ list[i] = t3;
+ }
+ $.CONSTANT0.set$length(list, t1);
+};
+
+$.IterableMixinWorkaround_removeMatchingList$bailout = function(state0, list, test) {
+ var retained, length, i, element, t1;
+ retained = [];
+ length = list.length;
+ for (i = 0; i < length; ++i) {
+ if (i >= list.length)
+ throw $.ioore(i);
+ element = list[i];
+ if (test.call$1(element) !== true)
+ retained.push(element);
+ if (length !== list.length)
+ throw $.$$throw($.ConcurrentModificationError$(list));
+ }
+ if (retained.length === length)
+ return;
+ for (i = 0; t1 = retained.length, i < t1; ++i)
+ $.CONSTANT0.$indexSet(list, i, retained[i]);
+ $.CONSTANT0.set$length(list, t1);
+};
+
+$.IterableMixinWorkaround_sortList = function(l, compare) {
+ if (compare == null)
+ compare = $.Comparable_compare;
+ $._Sort__doSort(l, 0, l.length - 1, compare);
+};
+
+$.Collections_collectionToString = function(c) {
+ var result = $.StringBuffer_StringBuffer("");
+ $.Collections__emitCollection(c, result, $.List_List(0));
+ return $.toString(result);
+};
+
+$.Collections__emitCollection = function(c, result, visiting) {
+ var t1, isList, t2, t3, first, t4;
+ t1 = $.getInterceptor$JSArray(visiting);
+ t1.add$1(visiting, c);
+ isList = typeof c === "object" && c !== null && (c.constructor === Array || c.$isList());
+ t2 = isList ? "[" : "{";
+ t3 = $.getInterceptor$JSArray(result);
+ t3.add$1(result, t2);
+ for (t2 = $.iterator(c), first = true; t2.moveNext$0() === true; first = false) {
+ t4 = t2.get$current();
+ if (!first)
+ t3.add$1(result, ", ");
+ $.Collections__emitObject(t4, result, visiting);
+ }
+ t3.add$1(result, isList ? "]" : "}");
+ t1.removeLast$0(visiting);
+};
+
+$.Collections__emitObject = function(o, result, visiting) {
+ if (typeof o === "object" && o !== null && (o.constructor === Array || o.$isCollection()))
+ if ($.Collections__containsRef(visiting, o) === true)
+ $.add(result, typeof o === "object" && o !== null && (o.constructor === Array || o.$isList()) ? "[...]" : "{...}");
+ else
+ $.Collections__emitCollection(o, result, visiting);
+ else if (typeof o === "object" && o !== null && !!o.$isMap)
+ if ($.Collections__containsRef(visiting, o) === true)
+ $.add(result, "{...}");
+ else
+ $.Maps__emitMap(o, result, visiting);
+ else
+ $.add(result, o);
+};
+
+$.Collections__containsRef = function(c, ref) {
+ var t1, t2;
+ for (t1 = $.iterator(c); t1.moveNext$0() === true;) {
+ t2 = t1.get$current();
+ if (t2 == null ? ref == null : t2 === ref)
+ return true;
+ }
+ return false;
+};
+
+$.HashMap_HashMap = function() {
+ return $._HashMapImpl$();
+};
+
+$.LinkedHashMap_LinkedHashMap = function() {
+ return $._LinkedHashMapImpl$();
+};
+
+$._HashMapImpl$ = function() {
+ var t1 = new $._HashMapImpl(null, null, null, null, null);
+ t1._HashMapImpl$0();
+ return t1;
+};
+
+$._HashMapImpl__computeLoadLimit = function(capacity) {
+ return $.CONSTANT4.$tdiv(capacity * 3, 4);
+};
+
+$._HashMapImpl__nextProbe = function(currentProbe, numberOfProbes, length) {
+ return $.$$and($.$$add(currentProbe, numberOfProbes), $.$$sub(length, 1));
+};
+
+$._HashMapImplIndexIterator$ = function(map) {
+ return new $._HashMapImplIndexIterator(map, -1, null);
+};
+
+$._KeyValuePair$ = function(key, value) {
+ return new $._KeyValuePair(key, value);
+};
+
+$._LinkedHashMapImpl$ = function() {
+ var t1 = new $._LinkedHashMapImpl(null, null);
+ t1._LinkedHashMapImpl$0();
+ return t1;
+};
+
+$.Maps_mapToString = function(m) {
+ var result = $.StringBuffer_StringBuffer("");
+ $.Maps__emitMap(m, result, $.List_List(0));
+ return $.toString(result);
+};
+
+$.Maps__emitMap = function(m, result, visiting) {
+ var t1, t2, t3;
+ t1 = {};
+ t2 = $.getInterceptor$JSArray(visiting);
+ t2.add$1(visiting, m);
+ t3 = $.getInterceptor$JSArray(result);
+ t3.add$1(result, "{");
+ t1.first_0 = true;
+ $.forEach(m, new $.Maps__emitMap_anon(t1, result, visiting));
+ t3.add$1(result, "}");
+ t2.removeLast$0(visiting);
+};
+
+$.DoubleLinkedQueueEntry$ = function(e) {
+ var t1 = new $.DoubleLinkedQueueEntry(null, null, null);
+ t1.DoubleLinkedQueueEntry$1(e);
+ return t1;
+};
+
+$._DoubleLinkedQueueEntrySentinel$ = function() {
+ var t1 = new $._DoubleLinkedQueueEntrySentinel(null, null, null);
+ t1.DoubleLinkedQueueEntry$1(null);
+ t1._DoubleLinkedQueueEntrySentinel$0();
+ return t1;
+};
+
+$.DoubleLinkedQueue$ = function() {
+ var t1 = new $.DoubleLinkedQueue(null);
+ t1.DoubleLinkedQueue$0();
+ return t1;
+};
+
+$._DoubleLinkedQueueIterator$ = function(sentinel) {
+ return new $._DoubleLinkedQueueIterator(sentinel, sentinel, null);
+};
+
+$.HashSet$ = function() {
+ return new $.HashSet($._HashMapImpl$());
+};
+
+$.HashSet_HashSet$from = function(other) {
+ var set, t1;
+ set = $.HashSet$();
+ for (t1 = $.iterator(other); t1.moveNext$0() === true;)
+ set.add$1(t1.get$current());
+ return set;
+};
+
+$._HashSetIterator$ = function(set) {
+ return new $._HashSetIterator($.CONSTANT0.get$iterator(set._backingMap._keys));
+};
+
+$._Sort__doSort = function(a, left, right, compare) {
+ if (right - left <= 32)
+ $._Sort_insertionSort_(a, left, right, compare);
+ else
+ $._Sort__dualPivotQuicksort(a, left, right, compare);
+};
+
+$._Sort_insertionSort_ = function(a, left, right, compare) {
+ var i, el, j, t1, t2, j0;
+ if (typeof a !== "object" || a === null || (a.constructor !== Array || !!a.immutable$list) && !a.$isJavaScriptIndexingBehavior())
+ return $._Sort_insertionSort_$bailout(1, a, left, right, compare);
+ for (i = left + 1; i <= right; ++i) {
+ if (i < 0 || i >= a.length)
+ throw $.ioore(i);
+ el = a[i];
+ j = i;
+ while (true) {
+ if (j > left) {
+ t1 = j - 1;
+ if (t1 < 0 || t1 >= a.length)
+ throw $.ioore(t1);
+ t2 = $.$$gt(compare.call$2(a[t1], el), 0) === true;
+ t1 = t2;
+ } else
+ t1 = false;
+ t2 = a.length;
+ if (!t1)
+ break;
+ j0 = j - 1;
+ if (j0 < 0 || j0 >= t2)
+ throw $.ioore(j0);
+ t1 = a[j0];
+ if (j < 0 || j >= t2)
+ throw $.ioore(j);
+ a[j] = t1;
+ j = j0;
+ }
+ if (j < 0 || j >= t2)
+ throw $.ioore(j);
+ a[j] = el;
+ }
+};
+
+$._Sort_insertionSort_$bailout = function(state0, a, left, right, compare) {
+ var i, el, j, t1, t2, j0;
+ for (i = left + 1; i <= right; ++i) {
+ if (i < 0 || i >= a.length)
+ throw $.ioore(i);
+ el = a[i];
+ j = i;
+ while (true) {
+ if (j > left) {
+ t1 = j - 1;
+ if (t1 < 0 || t1 >= a.length)
+ throw $.ioore(t1);
+ t2 = $.$$gt(compare.call$2(a[t1], el), 0) === true;
+ t1 = t2;
+ } else
+ t1 = false;
+ if (!t1)
+ break;
+ j0 = j - 1;
+ if (j0 < 0 || j0 >= a.length)
+ throw $.ioore(j0);
+ $.CONSTANT0.$indexSet(a, j, a[j0]);
+ j = j0;
+ }
+ $.CONSTANT0.$indexSet(a, j, el);
+ }
+};
+
+$._Sort__dualPivotQuicksort = function(a, left, right, compare) {
+ var sixth, index1, index5, index3, index2, index4, t1, el1, el2, el3, el4, el5, t0, t2, less, great, k, ak, comp, t3, great0, less0, t4;
+ if (typeof a !== "object" || a === null || (a.constructor !== Array || !!a.immutable$list) && !a.$isJavaScriptIndexingBehavior())
+ return $._Sort__dualPivotQuicksort$bailout(1, a, left, right, compare);
+ sixth = $.CONSTANT4.$tdiv(right - left + 1, 6);
+ index1 = left + sixth;
+ index5 = right - sixth;
+ index3 = $.CONSTANT4.$tdiv(left + right, 2);
+ index2 = index3 - sixth;
+ index4 = index3 + sixth;
+ t1 = a.length;
+ if (index1 < 0 || index1 >= t1)
+ throw $.ioore(index1);
+ el1 = a[index1];
+ if (index2 < 0 || index2 >= t1)
+ throw $.ioore(index2);
+ el2 = a[index2];
+ if (index3 < 0 || index3 >= t1)
+ throw $.ioore(index3);
+ el3 = a[index3];
+ if (index4 < 0 || index4 >= t1)
+ throw $.ioore(index4);
+ el4 = a[index4];
+ if (index5 < 0 || index5 >= t1)
+ throw $.ioore(index5);
+ el5 = a[index5];
+ if ($.$$gt(compare.call$2(el1, el2), 0) === true) {
+ t0 = el2;
+ el2 = el1;
+ el1 = t0;
+ }
+ if ($.$$gt(compare.call$2(el4, el5), 0) === true) {
+ t0 = el5;
+ el5 = el4;
+ el4 = t0;
+ }
+ if ($.$$gt(compare.call$2(el1, el3), 0) === true) {
+ t0 = el3;
+ el3 = el1;
+ el1 = t0;
+ }
+ if ($.$$gt(compare.call$2(el2, el3), 0) === true) {
+ t0 = el3;
+ el3 = el2;
+ el2 = t0;
+ }
+ if ($.$$gt(compare.call$2(el1, el4), 0) === true) {
+ t0 = el4;
+ el4 = el1;
+ el1 = t0;
+ }
+ if ($.$$gt(compare.call$2(el3, el4), 0) === true) {
+ t0 = el4;
+ el4 = el3;
+ el3 = t0;
+ }
+ if ($.$$gt(compare.call$2(el2, el5), 0) === true) {
+ t0 = el5;
+ el5 = el2;
+ el2 = t0;
+ }
+ if ($.$$gt(compare.call$2(el2, el3), 0) === true) {
+ t0 = el3;
+ el3 = el2;
+ el2 = t0;
+ }
+ if ($.$$gt(compare.call$2(el4, el5), 0) === true) {
+ t0 = el5;
+ el5 = el4;
+ el4 = t0;
+ }
+ t1 = a.length;
+ if (index1 >= t1)
+ throw $.ioore(index1);
+ a[index1] = el1;
+ if (index3 >= t1)
+ throw $.ioore(index3);
+ a[index3] = el3;
+ if (index5 >= t1)
+ throw $.ioore(index5);
+ a[index5] = el5;
+ if (left < 0 || left >= t1)
+ throw $.ioore(left);
+ t2 = a[left];
+ if (index2 >= t1)
+ throw $.ioore(index2);
+ a[index2] = t2;
+ if (right < 0 || right >= t1)
+ throw $.ioore(right);
+ t2 = a[right];
+ if (index4 >= t1)
+ throw $.ioore(index4);
+ a[index4] = t2;
+ less = left + 1;
+ great = right - 1;
+ t1 = $.$$eq(compare.call$2(el2, el4), 0) === true;
+ if (t1)
+ for (k = less; k <= great; ++k) {
+ if (k >= a.length)
+ throw $.ioore(k);
+ ak = a[k];
+ comp = compare.call$2(ak, el2);
+ t2 = $.getInterceptor(comp);
+ if (t2.$eq(comp, 0) === true)
+ continue;
+ if (t2.$lt(comp, 0) === true) {
+ if (k !== less) {
+ t2 = a.length;
+ if (less >= t2)
+ throw $.ioore(less);
+ t3 = a[less];
+ if (k >= t2)
+ throw $.ioore(k);
+ a[k] = t3;
+ a[less] = ak;
+ }
+ ++less;
+ } else
+ for (; true;) {
+ if (great < 0 || great >= a.length)
+ throw $.ioore(great);
+ comp = compare.call$2(a[great], el2);
+ t2 = $.getInterceptor$JSNumber(comp);
+ if (t2.$gt(comp, 0) === true) {
+ --great;
+ continue;
+ } else {
+ t2 = t2.$lt(comp, 0);
+ great0 = great - 1;
+ t3 = a.length;
+ if (t2 === true) {
+ if (less >= t3)
+ throw $.ioore(less);
+ t2 = a[less];
+ if (k >= t3)
+ throw $.ioore(k);
+ a[k] = t2;
+ less0 = less + 1;
+ if (great >= t3)
+ throw $.ioore(great);
+ a[less] = a[great];
+ a[great] = ak;
+ great = great0;
+ less = less0;
+ break;
+ } else {
+ if (great >= t3)
+ throw $.ioore(great);
+ t2 = a[great];
+ if (k >= t3)
+ throw $.ioore(k);
+ a[k] = t2;
+ a[great] = ak;
+ great = great0;
+ break;
+ }
+ }
+ }
+ }
+ else
+ for (k = less; k <= great; ++k) {
+ if (k >= a.length)
+ throw $.ioore(k);
+ ak = a[k];
+ if ($.$$lt(compare.call$2(ak, el2), 0) === true) {
+ if (k !== less) {
+ t2 = a.length;
+ if (less >= t2)
+ throw $.ioore(less);
+ t3 = a[less];
+ if (k >= t2)
+ throw $.ioore(k);
+ a[k] = t3;
+ a[less] = ak;
+ }
+ ++less;
+ } else if ($.$$gt(compare.call$2(ak, el4), 0) === true)
+ for (; true;) {
+ if (great < 0 || great >= a.length)
+ throw $.ioore(great);
+ if ($.$$gt(compare.call$2(a[great], el4), 0) === true) {
+ --great;
+ if (great < k)
+ break;
+ continue;
+ } else {
+ if (great >= a.length)
+ throw $.ioore(great);
+ t2 = $.$$lt(compare.call$2(a[great], el2), 0);
+ great0 = great - 1;
+ t3 = a.length;
+ if (t2 === true) {
+ if (less >= t3)
+ throw $.ioore(less);
+ t2 = a[less];
+ if (k >= t3)
+ throw $.ioore(k);
+ a[k] = t2;
+ less0 = less + 1;
+ if (great >= t3)
+ throw $.ioore(great);
+ a[less] = a[great];
+ a[great] = ak;
+ less = less0;
+ } else {
+ if (great >= t3)
+ throw $.ioore(great);
+ t2 = a[great];
+ if (k >= t3)
+ throw $.ioore(k);
+ a[k] = t2;
+ a[great] = ak;
+ }
+ great = great0;
+ break;
+ }
+ }
+ }
+ t2 = less - 1;
+ t3 = a.length;
+ if (t2 >= t3)
+ throw $.ioore(t2);
+ t4 = a[t2];
+ if (left >= t3)
+ throw $.ioore(left);
+ a[left] = t4;
+ a[t2] = el2;
+ t2 = great + 1;
+ if (t2 < 0 || t2 >= t3)
+ throw $.ioore(t2);
+ t4 = a[t2];
+ if (right >= t3)
+ throw $.ioore(right);
+ a[right] = t4;
+ a[t2] = el4;
+ $._Sort__doSort(a, left, less - 2, compare);
+ $._Sort__doSort(a, great + 2, right, compare);
+ if (t1)
+ return;
+ if (less < index1 && great > index5) {
+ while (true) {
+ if (less >= a.length)
+ throw $.ioore(less);
+ if (!($.$$eq(compare.call$2(a[less], el2), 0) === true))
+ break;
+ ++less;
+ }
+ while (true) {
+ if (great < 0 || great >= a.length)
+ throw $.ioore(great);
+ if (!($.$$eq(compare.call$2(a[great], el4), 0) === true))
+ break;
+ --great;
+ }
+ for (k = less; k <= great; ++k) {
+ if (k >= a.length)
+ throw $.ioore(k);
+ ak = a[k];
+ if ($.$$eq(compare.call$2(ak, el2), 0) === true) {
+ if (k !== less) {
+ t1 = a.length;
+ if (less >= t1)
+ throw $.ioore(less);
+ t2 = a[less];
+ if (k >= t1)
+ throw $.ioore(k);
+ a[k] = t2;
+ a[less] = ak;
+ }
+ ++less;
+ } else if ($.$$eq(compare.call$2(ak, el4), 0) === true)
+ for (; true;) {
+ if (great < 0 || great >= a.length)
+ throw $.ioore(great);
+ if ($.$$eq(compare.call$2(a[great], el4), 0) === true) {
+ --great;
+ if (great < k)
+ break;
+ continue;
+ } else {
+ if (great >= a.length)
+ throw $.ioore(great);
+ t1 = $.$$lt(compare.call$2(a[great], el2), 0);
+ great0 = great - 1;
+ t2 = a.length;
+ if (t1 === true) {
+ if (less >= t2)
+ throw $.ioore(less);
+ t1 = a[less];
+ if (k >= t2)
+ throw $.ioore(k);
+ a[k] = t1;
+ less0 = less + 1;
+ if (great >= t2)
+ throw $.ioore(great);
+ a[less] = a[great];
+ a[great] = ak;
+ less = less0;
+ } else {
+ if (great >= t2)
+ throw $.ioore(great);
+ t1 = a[great];
+ if (k >= t2)
+ throw $.ioore(k);
+ a[k] = t1;
+ a[great] = ak;
+ }
+ great = great0;
+ break;
+ }
+ }
+ }
+ $._Sort__doSort(a, less, great, compare);
+ } else
+ $._Sort__doSort(a, less, great, compare);
+};
+
+$._Sort__dualPivotQuicksort$bailout = function(state0, a, left, right, compare) {
+ var sixth, index1, index5, index3, index2, index4, t1, el1, el2, el3, el4, el5, t0, less, great, k, ak, comp, t2, great0, t3, less0;
+ sixth = $.CONSTANT4.$tdiv(right - left + 1, 6);
+ index1 = left + sixth;
+ index5 = right - sixth;
+ index3 = $.CONSTANT4.$tdiv(left + right, 2);
+ index2 = index3 - sixth;
+ index4 = index3 + sixth;
+ t1 = a.length;
+ if (index1 < 0 || index1 >= t1)
+ throw $.ioore(index1);
+ el1 = a[index1];
+ if (index2 < 0 || index2 >= t1)
+ throw $.ioore(index2);
+ el2 = a[index2];
+ if (index3 < 0 || index3 >= t1)
+ throw $.ioore(index3);
+ el3 = a[index3];
+ if (index4 < 0 || index4 >= t1)
+ throw $.ioore(index4);
+ el4 = a[index4];
+ if (index5 < 0 || index5 >= t1)
+ throw $.ioore(index5);
+ el5 = a[index5];
+ if ($.$$gt(compare.call$2(el1, el2), 0) === true) {
+ t0 = el2;
+ el2 = el1;
+ el1 = t0;
+ }
+ if ($.$$gt(compare.call$2(el4, el5), 0) === true) {
+ t0 = el5;
+ el5 = el4;
+ el4 = t0;
+ }
+ if ($.$$gt(compare.call$2(el1, el3), 0) === true) {
+ t0 = el3;
+ el3 = el1;
+ el1 = t0;
+ }
+ if ($.$$gt(compare.call$2(el2, el3), 0) === true) {
+ t0 = el3;
+ el3 = el2;
+ el2 = t0;
+ }
+ if ($.$$gt(compare.call$2(el1, el4), 0) === true) {
+ t0 = el4;
+ el4 = el1;
+ el1 = t0;
+ }
+ if ($.$$gt(compare.call$2(el3, el4), 0) === true) {
+ t0 = el4;
+ el4 = el3;
+ el3 = t0;
+ }
+ if ($.$$gt(compare.call$2(el2, el5), 0) === true) {
+ t0 = el5;
+ el5 = el2;
+ el2 = t0;
+ }
+ if ($.$$gt(compare.call$2(el2, el3), 0) === true) {
+ t0 = el3;
+ el3 = el2;
+ el2 = t0;
+ }
+ if ($.$$gt(compare.call$2(el4, el5), 0) === true) {
+ t0 = el5;
+ el5 = el4;
+ el4 = t0;
+ }
+ $.CONSTANT0.$indexSet(a, index1, el1);
+ $.CONSTANT0.$indexSet(a, index3, el3);
+ $.CONSTANT0.$indexSet(a, index5, el5);
+ if (left < 0 || left >= a.length)
+ throw $.ioore(left);
+ $.CONSTANT0.$indexSet(a, index2, a[left]);
+ if (right < 0 || right >= a.length)
+ throw $.ioore(right);
+ $.CONSTANT0.$indexSet(a, index4, a[right]);
+ less = left + 1;
+ great = right - 1;
+ t1 = $.$$eq(compare.call$2(el2, el4), 0) === true;
+ if (t1)
+ for (k = less; k <= great; ++k) {
+ if (k >= a.length)
+ throw $.ioore(k);
+ ak = a[k];
+ comp = compare.call$2(ak, el2);
+ t2 = $.getInterceptor(comp);
+ if (t2.$eq(comp, 0) === true)
+ continue;
+ if (t2.$lt(comp, 0) === true) {
+ if (k !== less) {
+ if (less >= a.length)
+ throw $.ioore(less);
+ $.CONSTANT0.$indexSet(a, k, a[less]);
+ $.CONSTANT0.$indexSet(a, less, ak);
+ }
+ ++less;
+ } else
+ for (; true;) {
+ if (great < 0 || great >= a.length)
+ throw $.ioore(great);
+ comp = compare.call$2(a[great], el2);
+ t2 = $.getInterceptor$JSNumber(comp);
+ if (t2.$gt(comp, 0) === true) {
+ --great;
+ continue;
+ } else {
+ t2 = t2.$lt(comp, 0);
+ great0 = great - 1;
+ t3 = a.length;
+ if (t2 === true) {
+ if (less >= t3)
+ throw $.ioore(less);
+ $.CONSTANT0.$indexSet(a, k, a[less]);
+ less0 = less + 1;
+ if (great >= a.length)
+ throw $.ioore(great);
+ $.CONSTANT0.$indexSet(a, less, a[great]);
+ $.CONSTANT0.$indexSet(a, great, ak);
+ great = great0;
+ less = less0;
+ break;
+ } else {
+ if (great >= t3)
+ throw $.ioore(great);
+ $.CONSTANT0.$indexSet(a, k, a[great]);
+ $.CONSTANT0.$indexSet(a, great, ak);
+ great = great0;
+ break;
+ }
+ }
+ }
+ }
+ else
+ for (k = less; k <= great; ++k) {
+ if (k >= a.length)
+ throw $.ioore(k);
+ ak = a[k];
+ if ($.$$lt(compare.call$2(ak, el2), 0) === true) {
+ if (k !== less) {
+ if (less >= a.length)
+ throw $.ioore(less);
+ $.CONSTANT0.$indexSet(a, k, a[less]);
+ $.CONSTANT0.$indexSet(a, less, ak);
+ }
+ ++less;
+ } else if ($.$$gt(compare.call$2(ak, el4), 0) === true)
+ for (; true;) {
+ if (great < 0 || great >= a.length)
+ throw $.ioore(great);
+ if ($.$$gt(compare.call$2(a[great], el4), 0) === true) {
+ --great;
+ if (great < k)
+ break;
+ continue;
+ } else {
+ if (great >= a.length)
+ throw $.ioore(great);
+ t2 = $.$$lt(compare.call$2(a[great], el2), 0);
+ great0 = great - 1;
+ t3 = a.length;
+ if (t2 === true) {
+ if (less >= t3)
+ throw $.ioore(less);
+ $.CONSTANT0.$indexSet(a, k, a[less]);
+ less0 = less + 1;
+ if (great >= a.length)
+ throw $.ioore(great);
+ $.CONSTANT0.$indexSet(a, less, a[great]);
+ $.CONSTANT0.$indexSet(a, great, ak);
+ great = great0;
+ less = less0;
+ } else {
+ if (great >= t3)
+ throw $.ioore(great);
+ $.CONSTANT0.$indexSet(a, k, a[great]);
+ $.CONSTANT0.$indexSet(a, great, ak);
+ great = great0;
+ }
+ break;
+ }
+ }
+ }
+ t2 = less - 1;
+ if (t2 >= a.length)
+ throw $.ioore(t2);
+ $.CONSTANT0.$indexSet(a, left, a[t2]);
+ $.CONSTANT0.$indexSet(a, t2, el2);
+ t2 = great + 1;
+ if (t2 < 0 || t2 >= a.length)
+ throw $.ioore(t2);
+ $.CONSTANT0.$indexSet(a, right, a[t2]);
+ $.CONSTANT0.$indexSet(a, t2, el4);
+ $._Sort__doSort(a, left, less - 2, compare);
+ $._Sort__doSort(a, great + 2, right, compare);
+ if (t1)
+ return;
+ if (less < index1 && great > index5) {
+ while (true) {
+ if (less >= a.length)
+ throw $.ioore(less);
+ if (!($.$$eq(compare.call$2(a[less], el2), 0) === true))
+ break;
+ ++less;
+ }
+ while (true) {
+ if (great < 0 || great >= a.length)
+ throw $.ioore(great);
+ if (!($.$$eq(compare.call$2(a[great], el4), 0) === true))
+ break;
+ --great;
+ }
+ for (k = less; k <= great; ++k) {
+ if (k >= a.length)
+ throw $.ioore(k);
+ ak = a[k];
+ if ($.$$eq(compare.call$2(ak, el2), 0) === true) {
+ if (k !== less) {
+ if (less >= a.length)
+ throw $.ioore(less);
+ $.CONSTANT0.$indexSet(a, k, a[less]);
+ $.CONSTANT0.$indexSet(a, less, ak);
+ }
+ ++less;
+ } else if ($.$$eq(compare.call$2(ak, el4), 0) === true)
+ for (; true;) {
+ if (great < 0 || great >= a.length)
+ throw $.ioore(great);
+ if ($.$$eq(compare.call$2(a[great], el4), 0) === true) {
+ --great;
+ if (great < k)
+ break;
+ continue;
+ } else {
+ if (great >= a.length)
+ throw $.ioore(great);
+ t1 = $.$$lt(compare.call$2(a[great], el2), 0);
+ great0 = great - 1;
+ t2 = a.length;
+ if (t1 === true) {
+ if (less >= t2)
+ throw $.ioore(less);
+ $.CONSTANT0.$indexSet(a, k, a[less]);
+ less0 = less + 1;
+ if (great >= a.length)
+ throw $.ioore(great);
+ $.CONSTANT0.$indexSet(a, less, a[great]);
+ $.CONSTANT0.$indexSet(a, great, ak);
+ great = great0;
+ less = less0;
+ } else {
+ if (great >= t2)
+ throw $.ioore(great);
+ $.CONSTANT0.$indexSet(a, k, a[great]);
+ $.CONSTANT0.$indexSet(a, great, ak);
+ great = great0;
+ }
+ break;
+ }
+ }
+ }
+ $._Sort__doSort(a, less, great, compare);
+ } else
+ $._Sort__doSort(a, less, great, compare);
+};
+
+$.ListIterator$ = function(list) {
+ return new $.ListIterator(list, list.length, -1, null);
+};
+
+$.Comparable_compare = function(a, b) {
+ return $.compareTo(a, b);
+};
+
+$.DateTime_DateTime$now = function() {
+ return $.DateTime$_now();
+};
+
+$.DateTime$fromMillisecondsSinceEpoch = function(millisecondsSinceEpoch, isUtc) {
+ var t1 = new $.DateTime(millisecondsSinceEpoch, isUtc);
+ t1.DateTime$fromMillisecondsSinceEpoch$2$isUtc(millisecondsSinceEpoch, isUtc);
+ return t1;
+};
+
+$.DateTime$_now = function() {
+ var t1 = new $.DateTime($.Primitives_dateNow(), false);
+ t1.DateTime$_now$0();
+ return t1;
+};
+
+$.Error_safeToString = function(object) {
+ if (typeof object === "number" && Math.floor(object) === object || typeof object === "number" || typeof object === "boolean" || null == object)
+ return $.toString(object);
+ if (typeof object === "string")
+ return "\"" + $.S($.replaceAll($.replaceAll($.replaceAll($.CONSTANT1.replaceAll$2(object, "\\", "\\\\"), "\n", "\\n"), "\r", "\\r"), "\"", "\\\"")) + "\"";
+ return "Instance of '" + $.S($.Primitives_objectTypeName(object)) + "'";
+};
+
+$.ArgumentError$ = function(message) {
+ return new $.ArgumentError(message);
+};
+
+$.RangeError$value = function(value) {
+ return new $.RangeError("value " + $.S(value));
+};
+
+$.NoSuchMethodError$ = function(_receiver, _memberName, _arguments, _namedArguments, existingArgumentNames) {
+ return new $.NoSuchMethodError(_receiver, _memberName, _arguments, _namedArguments, existingArgumentNames);
+};
+
+$.UnsupportedError$ = function(message) {
+ return new $.UnsupportedError(message);
+};
+
+$.UnimplementedError$ = function(message) {
+ return new $.UnimplementedError(message);
+};
+
+$.StateError$ = function(message) {
+ return new $.StateError(message);
+};
+
+$.ConcurrentModificationError$ = function(modifiedObject) {
+ return new $.ConcurrentModificationError(modifiedObject);
+};
+
+$.StackOverflowError$ = function() {
+ return new $.StackOverflowError();
+};
+
+$.RuntimeError$ = function(message) {
+ return new $.RuntimeError(message);
+};
+
+$.Exception_Exception = function(message) {
+ return $._ExceptionImplementation$(message);
+};
+
+$._ExceptionImplementation$ = function(message) {
+ return new $._ExceptionImplementation(message);
+};
+
+$.IllegalJSRegExpException$ = function(_pattern, _errmsg) {
+ return new $.IllegalJSRegExpException(_pattern, _errmsg);
+};
+
+$.List_List = function(length) {
+ if (!(typeof length === "number" && Math.floor(length) === length) || length < 0)
+ throw $.$$throw($.ArgumentError$("Length must be a positive integer: " + $.S(length) + "."));
+ return new Array(length);
+};
+
+$.List_List$fixedLength = function(length, fill) {
+ var result, t1, i;
+ if (!(typeof length === "number" && Math.floor(length) === length) || length < 0)
+ throw $.$$throw($.ArgumentError$("Length must be a positive integer: " + $.S(length) + "."));
+ result = $.Primitives_newFixedList(length);
+ if (typeof result !== "object" || result === null || (result.constructor !== Array || !!result.immutable$list) && !result.$isJavaScriptIndexingBehavior())
+ return $.List_List$fixedLength$bailout(1, length, fill, result);
+ if ($.$$eq(length, 0) !== true && !(fill == null))
+ for (t1 = result.length, i = 0; i < t1; ++i)
+ result[i] = fill;
+ return result;
+};
+
+$.List_List$fixedLength$bailout = function(state0, length, fill, result) {
+ var t1, i;
+ if ($.$$eq(length, 0) !== true && !(fill == null))
+ for (t1 = $.getInterceptor$JSStringJSArray(result), i = 0; $.CONSTANT4.$lt(i, t1.get$length(result)); ++i)
+ t1.$indexSet(result, i, fill);
+ return result;
+};
+
+$.List_List$from = function(other) {
+ var list, t1;
+ list = $.List_List(0);
+ for (t1 = $.iterator(other); t1.moveNext$0() === true;)
+ list.push(t1.get$current());
+ return list;
+};
+
+$.Set_Set$from = function(other) {
+ return $.HashSet_HashSet$from(other);
+};
+
+$.String_String$fromCharCodes = function(charCodes) {
+ if (!charCodes.constructor === Array)
+ charCodes = $.List_List$from(charCodes);
+ return $.Primitives_stringFromCharCodes(charCodes);
+};
+
+$.StringBuffer_StringBuffer = function(content) {
+ return $._StringBufferImpl$(content);
+};
+
+$._StringBufferImpl$ = function(content) {
+ var t1 = new $._StringBufferImpl(null, null);
+ t1._StringBufferImpl$1(content);
+ return t1;
+};
+
+$.Events$ = function(_ptr) {
+ return new $.Events(_ptr);
+};
+
+$.EventListenerList$ = function(_ptr, _type) {
+ return new $.EventListenerList(_ptr, _type);
+};
+
+$.WindowEvents$ = function(_ptr) {
+ return new $.WindowEvents(_ptr);
+};
+
+$._convertNativeToDart_Window = function(win) {
+ return $._DOMWindowCrossFrame__createSafe(win);
+};
+
+$._DOMWindowCrossFrame$ = function(_window) {
+ return new $._DOMWindowCrossFrame(_window);
+};
+
+$._DOMWindowCrossFrame__createSafe = function(w) {
+ var t1 = window;
+ if (w == null ? t1 == null : w === t1)
+ return w;
+ else
+ return $._DOMWindowCrossFrame$(w);
+};
+
+$.FixedSizeListIterator$ = function(array) {
+ return new $.FixedSizeListIterator(array, $.length(array), -1, null);
+};
+
+$.convertNativeToDart_SerializedScriptValue = function(object) {
+ return $.convertNativeToDart_AcceptStructuredClone(object, true);
+};
+
+$._convertDartToNative_PrepareForStructuredClone = function(value) {
+ var copies, t1, t2, t3, t4, copy;
+ copies = [];
+ t1 = new $._convertDartToNative_PrepareForStructuredClone_findSlot([], copies);
+ t2 = new $._convertDartToNative_PrepareForStructuredClone_readSlot(copies);
+ t3 = new $._convertDartToNative_PrepareForStructuredClone_writeSlot(copies);
+ t4 = new $._convertDartToNative_PrepareForStructuredClone_cleanupSlots();
+ copy = new $._convertDartToNative_PrepareForStructuredClone_walk(t1, t2, t3).call$1(value);
+ t4.call$0();
+ return copy;
+};
+
+$.convertNativeToDart_AcceptStructuredClone = function(object, mustCopy) {
+ var copies = [];
+ return new $.convertNativeToDart_AcceptStructuredClone_walk(mustCopy, new $.convertNativeToDart_AcceptStructuredClone_findSlot([], copies), new $.convertNativeToDart_AcceptStructuredClone_readSlot(copies), new $.convertNativeToDart_AcceptStructuredClone_writeSlot(copies)).call$1(object);
+};
+
+$.Lists_indexOf = function(a, element, startIndex, endIndex) {
+ var i;
+ if (typeof a !== "string" && (typeof a !== "object" || a === null || a.constructor !== Array && !a.$isJavaScriptIndexingBehavior()))
+ return $.Lists_indexOf$bailout(1, a, element, startIndex, endIndex);
+ if (typeof startIndex !== "number")
+ return $.Lists_indexOf$bailout(1, a, element, startIndex, endIndex);
+ if (typeof endIndex !== "number")
+ return $.Lists_indexOf$bailout(1, a, element, startIndex, endIndex);
+ if (startIndex >= a.length)
+ return -1;
+ if (startIndex < 0)
+ startIndex = 0;
+ for (i = startIndex; i < endIndex; ++i) {
+ if (i !== (i | 0))
+ throw $.iae(i);
+ if (i < 0 || i >= a.length)
+ throw $.ioore(i);
+ if ($.$$eq(a[i], element) === true)
+ return i;
+ }
+ return -1;
+};
+
+$.Lists_indexOf$bailout = function(state0, a, element, startIndex, endIndex) {
+ var t1, t2, i;
+ t1 = $.getInterceptor$JSStringJSArray(a);
+ t2 = $.getInterceptor$JSNumber(startIndex);
+ if (t2.$ge(startIndex, t1.get$length(a)) === true)
+ return -1;
+ if (t2.$lt(startIndex, 0) === true)
+ startIndex = 0;
+ for (i = startIndex; t2 = $.getInterceptor$JSNumber(i), t2.$lt(i, endIndex) === true; i = t2.$add(i, 1))
+ if ($.$$eq(t1.$index(a, i), element) === true)
+ return i;
+ return -1;
+};
+
+$.JsonUnsupportedObjectError$ = function(unsupportedObject) {
+ return new $.JsonUnsupportedObjectError(unsupportedObject, null);
+};
+
+$.JsonUnsupportedObjectError$withCause = function(unsupportedObject, cause) {
+ return new $.JsonUnsupportedObjectError(unsupportedObject, cause);
+};
+
+$._JsonStringifier$ = function(sb) {
+ return new $._JsonStringifier(sb, []);
+};
+
+$._JsonStringifier_stringify = function(object) {
+ var output = $.StringBuffer_StringBuffer("");
+ $._JsonStringifier$(output).stringifyValue$1(object);
+ return $.toString(output);
+};
+
+$._JsonStringifier_escape = function(sb, s) {
+ var t1, length, charCodes, needsEscape, i, charCode, t2, t3;
+ t1 = $.getInterceptor$JSStringJSArray(s);
+ length = t1.get$length(s);
+ charCodes = $.List_List(0);
+ for (needsEscape = false, i = 0; $.CONSTANT4.$lt(i, length); ++i) {
+ charCode = t1.charCodeAt$1(s, i);
+ t2 = $.getInterceptor$JSNumber(charCode);
+ if (t2.$lt(charCode, 32) === true) {
+ charCodes.push(92);
+ switch (charCode) {
+ case 8:
+ charCodes.push(98);
+ break;
+ case 9:
+ charCodes.push(116);
+ break;
+ case 10:
+ charCodes.push(110);
+ break;
+ case 12:
+ charCodes.push(102);
+ break;
+ case 13:
+ charCodes.push(114);
+ break;
+ default:
+ charCodes.push(117);
+ t3 = $.$$and(t2.$shr(charCode, 12), 15);
+ if ($.$$lt(t3, 10) === true) {
+ if (typeof t3 !== "number")
+ throw $.iae(t3);
+ t3 = 48 + t3;
+ } else {
+ if (typeof t3 !== "number")
+ throw $.iae(t3);
+ t3 = 87 + t3;
+ }
+ charCodes.push(t3);
+ t3 = $.$$and(t2.$shr(charCode, 8), 15);
+ if ($.$$lt(t3, 10) === true) {
+ if (typeof t3 !== "number")
+ throw $.iae(t3);
+ t3 = 48 + t3;
+ } else {
+ if (typeof t3 !== "number")
+ throw $.iae(t3);
+ t3 = 87 + t3;
+ }
+ charCodes.push(t3);
+ t3 = $.$$and(t2.$shr(charCode, 4), 15);
+ if ($.$$lt(t3, 10) === true) {
+ if (typeof t3 !== "number")
+ throw $.iae(t3);
+ t3 = 48 + t3;
+ } else {
+ if (typeof t3 !== "number")
+ throw $.iae(t3);
+ t3 = 87 + t3;
+ }
+ charCodes.push(t3);
+ t2 = t2.$and(charCode, 15);
+ if ($.$$lt(t2, 10) === true) {
+ if (typeof t2 !== "number")
+ throw $.iae(t2);
+ t2 = 48 + t2;
+ } else {
+ if (typeof t2 !== "number")
+ throw $.iae(t2);
+ t2 = 87 + t2;
+ }
+ charCodes.push(t2);
+ break;
+ }
+ needsEscape = true;
+ } else if (t2.$eq(charCode, 34) === true || t2.$eq(charCode, 92) === true) {
+ charCodes.push(92);
+ charCodes.push(charCode);
+ needsEscape = true;
+ } else
+ charCodes.push(charCode);
+ }
+ $.add(sb, needsEscape ? $.String_String$fromCharCodes(charCodes) : s);
+};
+
+$.sqrt = function(x) {
+ return Math.sqrt($.checkNum(x));
+};
+
+$.main = function() {
+ $.Suite$(window, "dom-nothing").prep$1(new $.main_anon()).test$2("no-op", new $.main_anon0()).end$0();
+};
+
+$.typeNameInChrome.call$1 = $.typeNameInChrome;
+$.typeNameInChrome.$name = "typeNameInChrome";
+$.$$throw.call$1 = $.$$throw;
+$.$$throw.$name = "$$throw";
+$.Comparable_compare.call$2 = $.Comparable_compare;
+$.Comparable_compare.$name = "Comparable_compare";
+$.typeNameInOpera.call$1 = $.typeNameInOpera;
+$.typeNameInOpera.$name = "typeNameInOpera";
+$.DartError_toStringWrapper.call$0 = $.DartError_toStringWrapper;
+$.DartError_toStringWrapper.$name = "DartError_toStringWrapper";
+$.typeNameInFirefox.call$1 = $.typeNameInFirefox;
+$.typeNameInFirefox.$name = "typeNameInFirefox";
+$.typeNameInIE.call$1 = $.typeNameInIE;
+$.typeNameInIE.$name = "typeNameInIE";
+$.typeNameInSafari.call$1 = $.typeNameInSafari;
+$.typeNameInSafari.$name = "typeNameInSafari";
+$.dynamicBind.call$4 = $.dynamicBind;
+$.dynamicBind.$name = "dynamicBind";
+$.constructorNameFallback.call$1 = $.constructorNameFallback;
+$.constructorNameFallback.$name = "constructorNameFallback";
+$.invokeClosure.call$5 = $.invokeClosure;
+$.invokeClosure.$name = "invokeClosure";
+Isolate.$finishClasses($$);
+$$ = {};
+$.num = {builtin$cls: 'num'};
+$.Match = {builtin$cls: 'Match'};
+$.$int = {builtin$cls: '$int'};
+$.$double = {builtin$cls: '$double'};
+$.String = {builtin$cls: 'String'};
+$.CONSTANT5 = new Isolate.$isolateProperties.Object();
+$.CONSTANT = new Isolate.$isolateProperties.NullThrownError();
+$.CONSTANT0 = new Isolate.$isolateProperties.JSArray();
+$.CONSTANT2 = new Isolate.$isolateProperties.JSNumber();
+$.CONSTANT4 = new Isolate.$isolateProperties.JSInt();
+$.CONSTANT1 = new Isolate.$isolateProperties.JSString();
+$.CONSTANT3 = new Isolate.$isolateProperties._DeletedKeySentinel();
+$._HashMapImpl__DELETED_KEY = Isolate.$isolateProperties.CONSTANT3;
+$._HashMapImpl__INITIAL_CAPACITY = 8;
+$.Primitives_hashCodeSeed = 0;
+$.Suite__N_RUNS = 5;
+$.Primitives_DOLLAR_CHAR_VALUE = 36;
+$.JsonParser_BACKSPACE = 8;
+$.JsonParser_TAB = 9;
+$.JsonParser_NEWLINE = 10;
+$.JsonParser_CARRIAGE_RETURN = 13;
+$.JsonParser_FORM_FEED = 12;
+$._Sort__INSERTION_SORT_THRESHOLD = 32;
+$.JsonParser_QUOTE = 34;
+$.Result_T_DISTRIBUTION = 2.776;
+$.JsonParser_BACKSLASH = 92;
+$.DateTime__MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000;
+$.JsonParser_CHAR_b = 98;
+$.JsonParser_CHAR_f = 102;
+$.JsonParser_CHAR_n = 110;
+$._getTypeNameOf = null;
+$.JsonParser_CHAR_r = 114;
+$.JsonParser_CHAR_t = 116;
+$.JsonParser_CHAR_u = 117;
+$.toString = function(receiver) {
+ return $.getInterceptor(receiver).toString$0(receiver);
+};
+$.$$eq = function(receiver, a0) {
+ return $.getInterceptor(receiver).$eq(receiver, a0);
+};
+$.$$indexSet = function(receiver, a0, a1) {
+ return $.getInterceptor$JSArray(receiver).$indexSet(receiver, a0, a1);
+};
+$.iterator = function(receiver) {
+ return $.getInterceptor$JSArray(receiver).get$iterator(receiver);
+};
+$.$$gt = function(receiver, a0) {
+ return $.getInterceptor$JSNumber(receiver).$gt(receiver, a0);
+};
+$.replaceAll = function(receiver, a0, a1) {
+ return $.getInterceptor$JSString(receiver).replaceAll$2(receiver, a0, a1);
+};
+$.length = function(receiver) {
+ return $.getInterceptor$JSStringJSArray(receiver).get$length(receiver);
+};
+$.$$lt = function(receiver, a0) {
+ return $.getInterceptor$JSNumber(receiver).$lt(receiver, a0);
+};
+$.$$tdiv = function(receiver, a0) {
+ return $.getInterceptor$JSNumber(receiver).$tdiv(receiver, a0);
+};
+$.clear = function(receiver) {
+ return $.getInterceptor$JSArray(receiver).clear$0(receiver);
+};
+$.$$and = function(receiver, a0) {
+ return $.getInterceptor$JSNumber(receiver).$and(receiver, a0);
+};
+$.abs = function(receiver) {
+ return $.getInterceptor$JSNumber(receiver).abs$0(receiver);
+};
+$.toSet = function(receiver) {
+ return $.getInterceptor$JSArray(receiver).toSet$0(receiver);
+};
+$.add = function(receiver, a0) {
+ return $.getInterceptor$JSArray(receiver).add$1(receiver, a0);
+};
+$.sort = function(receiver, a0) {
+ return $.getInterceptor$JSArray(receiver).sort$1(receiver, a0);
+};
+$.contains = function(receiver) {
+ return $.getInterceptor$JSStringJSArray(receiver).get$contains(receiver);
+};
+$.$$mul = function(receiver, a0) {
+ return $.getInterceptor$JSNumber(receiver).$mul(receiver, a0);
+};
+$.addLast = function(receiver, a0) {
+ return $.getInterceptor$JSArray(receiver).addLast$1(receiver, a0);
+};
+$.$$sub = function(receiver, a0) {
+ return $.getInterceptor$JSNumber(receiver).$sub(receiver, a0);
+};
+$.allMatches = function(receiver, a0) {
+ return $.getInterceptor$JSString(receiver).allMatches$1(receiver, a0);
+};
+$.hashCode = function(receiver) {
+ return $.getInterceptor(receiver).get$hashCode(receiver);
+};
+$.$$add = function(receiver, a0) {
+ return $.getInterceptor$JSNumber(receiver).$add(receiver, a0);
+};
+$.compareTo = function(receiver, a0) {
+ return $.getInterceptor$JSStringJSNumber(receiver).compareTo$1(receiver, a0);
+};
+$.$$ge = function(receiver, a0) {
+ return $.getInterceptor$JSNumber(receiver).$ge(receiver, a0);
+};
+$.removeMatching = function(receiver, a0) {
+ return $.getInterceptor$JSArray(receiver).removeMatching$1(receiver, a0);
+};
+$.isEmpty = function(receiver) {
+ return $.getInterceptor$JSStringJSArray(receiver).get$isEmpty(receiver);
+};
+$.$$index = function(receiver, a0) {
+ return $.getInterceptor$JSStringJSArray(receiver).$index(receiver, a0);
+};
+$.removeLast = function(receiver) {
+ return $.getInterceptor$JSArray(receiver).removeLast$0(receiver);
+};
+$.remove = function(receiver, a0) {
+ return $.getInterceptor$JSArray(receiver).remove$1(receiver, a0);
+};
+$.forEach = function(receiver, a0) {
+ return $.getInterceptor$JSArray(receiver).forEach$1(receiver, a0);
+};
+$.$$div = function(receiver, a0) {
+ return $.getInterceptor$JSNumber(receiver).$div(receiver, a0);
+};
+$.getInterceptor$JSStringJSArray = function(receiver) {
+ if (typeof receiver == "string")
+ return $.JSString.prototype;
+ if (receiver == null)
+ return void 0;
+ if (receiver.constructor == Array)
+ return $.JSArray.prototype;
+ return $.ObjectInterceptor.prototype;
+};
+$.getInterceptor$JSStringJSNumber = function(receiver) {
+ if (typeof receiver == "number")
+ return $.JSNumber.prototype;
+ if (typeof receiver == "string")
+ return $.JSString.prototype;
+ if (receiver == null)
+ return void 0;
+ return $.ObjectInterceptor.prototype;
+};
+$.getInterceptor$JSString = function(receiver) {
+ if (typeof receiver == "string")
+ return $.JSString.prototype;
+ if (receiver == null)
+ return void 0;
+ return $.ObjectInterceptor.prototype;
+};
+$.getInterceptor$JSNumber = function(receiver) {
+ if (typeof receiver == "number")
+ return $.JSNumber.prototype;
+ if (receiver == null)
+ return void 0;
+ return $.ObjectInterceptor.prototype;
+};
+$.getInterceptor = function(receiver) {
+ if (typeof receiver == "number") {
+ if (Math.floor(receiver) == receiver)
+ return $.JSInt.prototype;
+ return $.JSDouble.prototype;
+ }
+ if (typeof receiver == "string")
+ return $.JSString.prototype;
+ if (receiver == null)
+ return $.JSNull.prototype;
+ if (typeof receiver == "function")
+ return $.JSFunction.prototype;
+ if (typeof receiver == "boolean")
+ return $.JSBool.prototype;
+ if (receiver.constructor == Array)
+ return $.JSArray.prototype;
+ return $.ObjectInterceptor.prototype;
+};
+$.getInterceptor$JSArray = function(receiver) {
+ if (receiver == null)
+ return void 0;
+ if (receiver.constructor == Array)
+ return $.JSArray.prototype;
+ return $.ObjectInterceptor.prototype;
+};
+Isolate.$lazy($, "quoteRegExp", "quoteRegExp", "get$quoteRegExp", function() {
+ return $.JSSyntaxRegExp$("[-[\\]{}()*+?.,\\\\^$|#\\s]", true, false);
+});
+var $ = null;
+Isolate.$finishClasses($$);
+$$ = {};
+Isolate = Isolate.$finishIsolateConstructor(Isolate);
+var $ = new Isolate();
+$.$defineNativeClass = function(cls, desc) {
+ var fields = desc[''];
+ var fields_array = fields ? fields.split(',') : [];
+ for (var i = 0; i < fields_array.length; i++) {
+ $.$generateAccessor(fields_array[i], desc);
+ }
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for (var method in desc) {
+ if (method) { if (hasOwnProperty.call(desc, method)) {
+ $.dynamicFunction(method)[cls] = desc[method];
+ }
+ }
+ }
+};
+
+(function(table) {
+ for (var key in table)
+ $.defineProperty(Object.prototype, key, table[key]);
+})({
+ $isJavaScriptIndexingBehavior: function() {
+ return false;
+ },
+ $isCollection: function() {
+ return false;
+ },
+ $isList: function() {
+ return false;
+ },
+ $isArrayBuffer: function() {
+ return false;
+ },
+ $isArrayBufferView: function() {
+ return false;
+ },
+ $isBlob: function() {
+ return false;
+ },
+ $isFile: function() {
+ return false;
+ },
+ $isFileList: function() {
+ return false;
+ },
+ $isImageData: function() {
+ return false;
+ },
+ toString$0: function() {
+ return $.toStringForNativeObject(this);
+ },
+ get$hashCode: function() {
+ return $.hashCodeForNativeObject(this);
+ },
+ $eq: function(a) {
+ return this === a;
+ }
+});
+
+$.$defineNativeClass("ArrayBuffer", {
+ $isArrayBuffer: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("ArrayBufferView", {
+ $isArrayBufferView: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("Blob", {
+ $isBlob: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("CompositionEvent", {"": "data>"});
+
+$.$defineNativeClass("DOMException", {"": "message>",
+ toString$0: function() {
+ return this.toString();
+ }
+});
+
+$.$defineNativeClass("ErrorEvent", {"": "message>"});
+
+$.$defineNativeClass("EventException", {"": "message>",
+ toString$0: function() {
+ return this.toString();
+ }
+});
+
+$.$defineNativeClass("EventTarget", {
+ get$on: function() {
+ if (Object.getPrototypeOf(this).hasOwnProperty("get$on")) {
+ return $.Events$(this);
+ } else
+ return Object.prototype.get$on.call(this);
+ },
+ $$dom_addEventListener$3: function(type, listener, useCapture) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("$$dom_addEventListener$3")) {
+ return this.addEventListener(type,$.convertDartClosureToJS(listener, 1),useCapture);
+ } else
+ return Object.prototype.$$dom_addEventListener$3.call(this, type, listener, useCapture);
+ },
+ $$dom_removeEventListener$3: function(type, listener, useCapture) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("$$dom_removeEventListener$3")) {
+ return this.removeEventListener(type,$.convertDartClosureToJS(listener, 1),useCapture);
+ } else
+ return Object.prototype.$$dom_removeEventListener$3.call(this, type, listener, useCapture);
+ }
+});
+
+$.$defineNativeClass("File", {
+ $isFile: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("FileException", {"": "message>",
+ toString$0: function() {
+ return this.toString();
+ }
+});
+
+$.$defineNativeClass("Float32Array", {
+ get$length: function() {
+ return this.length;
+ },
+ $index: function(index) {
+ return this[index];
+ },
+ $indexSet: function(index, value) {
+ this[index] = value;
+ },
+ get$iterator: function() {
+ return $.FixedSizeListIterator$(this);
+ },
+ contains$1: function(element) {
+ return $.IterableMixinWorkaround_contains(this, element);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ },
+ toSet$0: function() {
+ return $.Set_Set$from(this);
+ },
+ get$isEmpty: function() {
+ return $.$$eq($.length(this), 0);
+ },
+ add$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ addLast$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ set$length: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot resize immutable List."));
+ },
+ clear$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot clear immutable List."));
+ },
+ sort$1: function(compare) {
+ throw $.$$throw($.UnsupportedError$("Cannot sort immutable List."));
+ },
+ indexOf$2: function(element, start) {
+ return $.Lists_indexOf(this, element, start, $.length(this));
+ },
+ removeLast$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ remove$1: function(object) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeAll$1: function(elements) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeMatching$1: function(test) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $isJavaScriptIndexingBehavior: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("Float64Array", {
+ get$length: function() {
+ return this.length;
+ },
+ $index: function(index) {
+ return this[index];
+ },
+ $indexSet: function(index, value) {
+ this[index] = value;
+ },
+ get$iterator: function() {
+ return $.FixedSizeListIterator$(this);
+ },
+ contains$1: function(element) {
+ return $.IterableMixinWorkaround_contains(this, element);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ },
+ toSet$0: function() {
+ return $.Set_Set$from(this);
+ },
+ get$isEmpty: function() {
+ return $.$$eq($.length(this), 0);
+ },
+ add$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ addLast$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ set$length: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot resize immutable List."));
+ },
+ clear$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot clear immutable List."));
+ },
+ sort$1: function(compare) {
+ throw $.$$throw($.UnsupportedError$("Cannot sort immutable List."));
+ },
+ indexOf$2: function(element, start) {
+ return $.Lists_indexOf(this, element, start, $.length(this));
+ },
+ removeLast$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ remove$1: function(object) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeAll$1: function(elements) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeMatching$1: function(test) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $isJavaScriptIndexingBehavior: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("XMLHttpRequestException", {"": "message>",
+ toString$0: function() {
+ return this.toString();
+ }
+});
+
+$.$defineNativeClass("Int16Array", {
+ get$length: function() {
+ return this.length;
+ },
+ $index: function(index) {
+ return this[index];
+ },
+ $indexSet: function(index, value) {
+ this[index] = value;
+ },
+ get$iterator: function() {
+ return $.FixedSizeListIterator$(this);
+ },
+ contains$1: function(element) {
+ return $.IterableMixinWorkaround_contains(this, element);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ },
+ toSet$0: function() {
+ return $.Set_Set$from(this);
+ },
+ get$isEmpty: function() {
+ return $.$$eq($.length(this), 0);
+ },
+ add$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ addLast$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ set$length: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot resize immutable List."));
+ },
+ clear$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot clear immutable List."));
+ },
+ sort$1: function(compare) {
+ throw $.$$throw($.UnsupportedError$("Cannot sort immutable List."));
+ },
+ indexOf$2: function(element, start) {
+ return $.Lists_indexOf(this, element, start, $.length(this));
+ },
+ removeLast$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ remove$1: function(object) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeAll$1: function(elements) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeMatching$1: function(test) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $isJavaScriptIndexingBehavior: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("Int32Array", {
+ get$length: function() {
+ return this.length;
+ },
+ $index: function(index) {
+ return this[index];
+ },
+ $indexSet: function(index, value) {
+ this[index] = value;
+ },
+ get$iterator: function() {
+ return $.FixedSizeListIterator$(this);
+ },
+ contains$1: function(element) {
+ return $.IterableMixinWorkaround_contains(this, element);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ },
+ toSet$0: function() {
+ return $.Set_Set$from(this);
+ },
+ get$isEmpty: function() {
+ return $.$$eq($.length(this), 0);
+ },
+ add$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ addLast$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ set$length: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot resize immutable List."));
+ },
+ clear$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot clear immutable List."));
+ },
+ sort$1: function(compare) {
+ throw $.$$throw($.UnsupportedError$("Cannot sort immutable List."));
+ },
+ indexOf$2: function(element, start) {
+ return $.Lists_indexOf(this, element, start, $.length(this));
+ },
+ removeLast$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ remove$1: function(object) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeAll$1: function(elements) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeMatching$1: function(test) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $isJavaScriptIndexingBehavior: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("Int8Array", {
+ get$length: function() {
+ return this.length;
+ },
+ $index: function(index) {
+ return this[index];
+ },
+ $indexSet: function(index, value) {
+ this[index] = value;
+ },
+ get$iterator: function() {
+ return $.FixedSizeListIterator$(this);
+ },
+ contains$1: function(element) {
+ return $.IterableMixinWorkaround_contains(this, element);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ },
+ toSet$0: function() {
+ return $.Set_Set$from(this);
+ },
+ get$isEmpty: function() {
+ return $.$$eq($.length(this), 0);
+ },
+ add$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ addLast$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ set$length: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot resize immutable List."));
+ },
+ clear$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot clear immutable List."));
+ },
+ sort$1: function(compare) {
+ throw $.$$throw($.UnsupportedError$("Cannot sort immutable List."));
+ },
+ indexOf$2: function(element, start) {
+ return $.Lists_indexOf(this, element, start, $.length(this));
+ },
+ removeLast$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ remove$1: function(object) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeAll$1: function(elements) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeMatching$1: function(test) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $isJavaScriptIndexingBehavior: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("MediaKeyEvent", {"": "message>"});
+
+$.$defineNativeClass("MessageEvent", {
+ get$data: function() {
+ return $.convertNativeToDart_SerializedScriptValue(this.data);
+ }
+});
+
+$.$defineNativeClass("PositionError", {"": "message>"});
+
+$.$defineNativeClass("RangeException", {"": "message>",
+ toString$0: function() {
+ return this.toString();
+ }
+});
+
+$.$defineNativeClass("SpeechRecognitionError", {"": "error>,message>"});
+
+$.$defineNativeClass("SQLError", {"": "message>"});
+
+$.$defineNativeClass("SQLException", {"": "message>"});
+
+$.$defineNativeClass("StorageEvent", {"": "key>"});
+
+$.$defineNativeClass("TextEvent", {"": "data>"});
+
+$.$defineNativeClass("Uint16Array", {
+ get$length: function() {
+ return this.length;
+ },
+ $index: function(index) {
+ return this[index];
+ },
+ $indexSet: function(index, value) {
+ this[index] = value;
+ },
+ get$iterator: function() {
+ return $.FixedSizeListIterator$(this);
+ },
+ contains$1: function(element) {
+ return $.IterableMixinWorkaround_contains(this, element);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ },
+ toSet$0: function() {
+ return $.Set_Set$from(this);
+ },
+ get$isEmpty: function() {
+ return $.$$eq($.length(this), 0);
+ },
+ add$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ addLast$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ set$length: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot resize immutable List."));
+ },
+ clear$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot clear immutable List."));
+ },
+ sort$1: function(compare) {
+ throw $.$$throw($.UnsupportedError$("Cannot sort immutable List."));
+ },
+ indexOf$2: function(element, start) {
+ return $.Lists_indexOf(this, element, start, $.length(this));
+ },
+ removeLast$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ remove$1: function(object) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeAll$1: function(elements) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeMatching$1: function(test) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $isJavaScriptIndexingBehavior: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("Uint32Array", {
+ get$length: function() {
+ return this.length;
+ },
+ $index: function(index) {
+ return this[index];
+ },
+ $indexSet: function(index, value) {
+ this[index] = value;
+ },
+ get$iterator: function() {
+ return $.FixedSizeListIterator$(this);
+ },
+ contains$1: function(element) {
+ return $.IterableMixinWorkaround_contains(this, element);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ },
+ toSet$0: function() {
+ return $.Set_Set$from(this);
+ },
+ get$isEmpty: function() {
+ return $.$$eq($.length(this), 0);
+ },
+ add$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ addLast$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ set$length: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot resize immutable List."));
+ },
+ clear$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot clear immutable List."));
+ },
+ sort$1: function(compare) {
+ throw $.$$throw($.UnsupportedError$("Cannot sort immutable List."));
+ },
+ indexOf$2: function(element, start) {
+ return $.Lists_indexOf(this, element, start, $.length(this));
+ },
+ removeLast$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ remove$1: function(object) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeAll$1: function(elements) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeMatching$1: function(test) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $isJavaScriptIndexingBehavior: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("Uint8Array", {
+ get$length: function() {
+ if (Object.getPrototypeOf(this).hasOwnProperty("get$length")) {
+ return this.length;
+ } else
+ return Object.prototype.get$length.call(this);
+ },
+ $index: function(index) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("$index")) {
+ return this[index];
+ } else
+ return Object.prototype.$index.call(this, index);
+ },
+ $indexSet: function(index, value) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("$indexSet")) {
+ this[index] = value;
+ } else
+ return Object.prototype.$indexSet.call(this, index, value);
+ },
+ get$iterator: function() {
+ if (Object.getPrototypeOf(this).hasOwnProperty("get$iterator")) {
+ return $.FixedSizeListIterator$(this);
+ } else
+ return Object.prototype.get$iterator.call(this);
+ },
+ contains$1: function(element) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("contains$1")) {
+ return $.IterableMixinWorkaround_contains(this, element);
+ } else
+ return Object.prototype.contains$1.call(this, element);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("forEach$1")) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ } else
+ return Object.prototype.forEach$1.call(this, f);
+ },
+ toSet$0: function() {
+ if (Object.getPrototypeOf(this).hasOwnProperty("toSet$0")) {
+ return $.Set_Set$from(this);
+ } else
+ return Object.prototype.toSet$0.call(this);
+ },
+ get$isEmpty: function() {
+ if (Object.getPrototypeOf(this).hasOwnProperty("get$isEmpty")) {
+ return $.$$eq($.length(this), 0);
+ } else
+ return Object.prototype.get$isEmpty.call(this);
+ },
+ add$1: function(value) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("add$1")) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ } else
+ return Object.prototype.add$1.call(this, value);
+ },
+ addLast$1: function(value) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("addLast$1")) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ } else
+ return Object.prototype.addLast$1.call(this, value);
+ },
+ set$length: function(value) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("set$length")) {
+ throw $.$$throw($.UnsupportedError$("Cannot resize immutable List."));
+ } else
+ return Object.prototype.set$length.call(this, value);
+ },
+ clear$0: function() {
+ if (Object.getPrototypeOf(this).hasOwnProperty("clear$0")) {
+ throw $.$$throw($.UnsupportedError$("Cannot clear immutable List."));
+ } else
+ return Object.prototype.clear$0.call(this);
+ },
+ sort$1: function(compare) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("sort$1")) {
+ throw $.$$throw($.UnsupportedError$("Cannot sort immutable List."));
+ } else
+ return Object.prototype.sort$1.call(this, compare);
+ },
+ indexOf$2: function(element, start) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("indexOf$2")) {
+ return $.Lists_indexOf(this, element, start, $.length(this));
+ } else
+ return Object.prototype.indexOf$2.call(this, element, start);
+ },
+ removeLast$0: function() {
+ if (Object.getPrototypeOf(this).hasOwnProperty("removeLast$0")) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ } else
+ return Object.prototype.removeLast$0.call(this);
+ },
+ remove$1: function(object) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("remove$1")) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ } else
+ return Object.prototype.remove$1.call(this, object);
+ },
+ removeAll$1: function(elements) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("removeAll$1")) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ } else
+ return Object.prototype.removeAll$1.call(this, elements);
+ },
+ removeMatching$1: function(test) {
+ if (Object.getPrototypeOf(this).hasOwnProperty("removeMatching$1")) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ } else
+ return Object.prototype.removeMatching$1.call(this, test);
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $isJavaScriptIndexingBehavior: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("Uint8ClampedArray", {
+ $index: function(index) {
+ return this[index];
+ },
+ $indexSet: function(index, value) {
+ this[index] = value;
+ },
+ get$iterator: function() {
+ return $.FixedSizeListIterator$(this);
+ },
+ contains$1: function(element) {
+ return $.IterableMixinWorkaround_contains(this, element);
+ },
+ get$contains: function() {
+ return new $.BoundClosure(this, "contains$1");
+ },
+ forEach$1: function(f) {
+ var t1;
+ for (t1 = $.iterator(this); t1.moveNext$0() === true;)
+ f.call$1(t1.get$current());
+ return;
+ },
+ toSet$0: function() {
+ return $.Set_Set$from(this);
+ },
+ get$isEmpty: function() {
+ return $.$$eq($.length(this), 0);
+ },
+ add$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ addLast$1: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot add to immutable List."));
+ },
+ set$length: function(value) {
+ throw $.$$throw($.UnsupportedError$("Cannot resize immutable List."));
+ },
+ clear$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot clear immutable List."));
+ },
+ sort$1: function(compare) {
+ throw $.$$throw($.UnsupportedError$("Cannot sort immutable List."));
+ },
+ indexOf$2: function(element, start) {
+ return $.Lists_indexOf(this, element, start, $.length(this));
+ },
+ removeLast$0: function() {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ remove$1: function(object) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeAll$1: function(elements) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ removeMatching$1: function(test) {
+ throw $.$$throw($.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ $isList: function() {
+ return true;
+ },
+ $isCollection: function() {
+ return true;
+ },
+ $isJavaScriptIndexingBehavior: function() {
+ return true;
+ }
+});
+
+$.$defineNativeClass("DOMWindow", {
+ get$on: function() {
+ return $.WindowEvents$(this);
+ },
+ get$top: function() {
+ return $._convertNativeToDart_Window(this.top);
+ },
+ $$dom_addEventListener$3: function(type, listener, useCapture) {
+ return this.addEventListener(type,$.convertDartClosureToJS(listener, 1),useCapture);
+ },
+ alert$1: function(message) {
+ return this.alert(message);
+ },
+ postMessage$3: function(message, targetOrigin, messagePorts) {
+ var t1, t2;
+ t1 = $ === message;
+ if (t1)
+ message = null;
+ t1 = !t1;
+ t2 = $ === messagePorts;
+ if (t2)
+ messagePorts = null;
+ if (t1 && t2) {
+ this._postMessage_1$2($._convertDartToNative_PrepareForStructuredClone(message), targetOrigin);
+ return;
+ }
+ if (t1) {
+ this._postMessage_2$3($._convertDartToNative_PrepareForStructuredClone(message), targetOrigin, messagePorts);
+ return;
+ }
+ throw $.$$throw($.ArgumentError$("Incorrect number or type of arguments"));
+ },
+ postMessage$2: function(message, targetOrigin) {
+ return this.postMessage$3(message, targetOrigin, $);
+ },
+ _postMessage_1$2: function(message, targetOrigin) {
+ return this.postMessage(message,targetOrigin);
+ },
+ _postMessage_2$3: function(message, targetOrigin, messagePorts) {
+ return this.postMessage(message,targetOrigin,messagePorts);
+ },
+ $$dom_removeEventListener$3: function(type, listener, useCapture) {
+ return this.removeEventListener(type,$.convertDartClosureToJS(listener, 1),useCapture);
+ },
+ setTimeout$2: function(handler, timeout) {
+ return this.setTimeout($.convertDartClosureToJS(handler, 0),timeout);
+ }
+});
+
+$.$defineNativeClass("XPathException", {"": "message>",
+ toString$0: function() {
+ return this.toString();
+ }
+});
+
+$.$defineNativeClass("SVGException", {"": "message>",
+ toString$0: function() {
+ return this.toString();
+ }
+});
+
+// 32 dynamic classes.
+// 33 classes
+// 4 !leaf
+(function() {
+ var v0_Uint8Array = "Uint8Array|Uint8ClampedArray";
+ $.dynamicSetMetadata([["Uint8Array", v0_Uint8Array], ["ArrayBufferView", [v0_Uint8Array, "ArrayBufferView|Float64Array|Int16Array|Int32Array|Int8Array|DataView|Uint16Array|Uint32Array|Float32Array"].join("|")], ["Blob", "Blob|File"], ["EventTarget", "EventTarget|DOMWindow"]]);
+})();
+
+
+//
+// BEGIN invoke [main].
+//
+if (typeof document !== 'undefined' && document.readyState !== 'complete') {
+ document.addEventListener('readystatechange', function () {
+ if (document.readyState == 'complete') {
+ if (typeof dartMainRunner === 'function') {
+ dartMainRunner(function() { $.main(); });
+ } else {
+ $.main();
+ }
+ }
+ }, false);
+} else {
+ if (typeof dartMainRunner === 'function') {
+ dartMainRunner(function() { $.main(); });
+ } else {
+ $.main();
+ }
+}
+//
+// END invoke [main].
+//
+
+function init() {
+Isolate.$isolateProperties = {};
+function generateAccessor(field, prototype) {
+ var len = field.length;
+ var lastCharCode = field.charCodeAt(len - 1);
+ var needsAccessor = (lastCharCode & 63) >= 60;
+ if (needsAccessor) {
+ var needsGetter = (lastCharCode & 3) > 0;
+ var needsSetter = (lastCharCode & 2) == 0;
+ var renaming = (lastCharCode & 64) != 0;
+ var accessorName = field = field.substring(0, len - 1);
+ if (renaming) {
+ var divider = field.indexOf(":");
+ accessorName = field.substring(0, divider);
+ field = field.substring(divider + 1);
+ }
+ if (needsGetter) {
+ var getterString = "return this." + field + ";";
+ prototype["get$" + accessorName] = new Function(getterString);
+ }
+ if (needsSetter) {
+ var setterString = "this." + field + " = v;";
+ prototype["set$" + accessorName] = new Function("v", setterString);
+ }
+ }
+ return field;
+};
+Isolate.$isolateProperties.$generateAccessor = generateAccessor;
+Isolate.$defineClass = function(cls, fields, prototype) {
+ var constructor;
+ if (typeof fields == 'function') {
+ constructor = fields;
+ } else {
+ var str = "function " + cls + "(";
+ var body = "";
+ for (var i = 0; i < fields.length; i++) {
+ if (i != 0) str += ", ";
+ var field = fields[i];
+ field = generateAccessor(field, prototype);
+ str += field;
+ body += "this." + field + " = " + field + ";\n";
+ }
+ str += ") {" + body + "}\n";
+ str += "return " + cls + ";";
+ constructor = new Function(str)();
+ }
+ constructor.prototype = prototype;
+ constructor.builtin$cls = cls;
+ return constructor;
+};
+var supportsProto = false;
+var tmp = Isolate.$defineClass('c', ['f?'], {}).prototype;
+if (tmp.__proto__) {
+ tmp.__proto__ = {};
+ if (typeof tmp.get$f !== 'undefined') supportsProto = true;
+}
+Isolate.$pendingClasses = {};
+Isolate.$finishClasses = function(collectedClasses) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for (var cls in collectedClasses) {
+ if (hasOwnProperty.call(collectedClasses, cls)) {
+ var desc = collectedClasses[cls];
+ var fields = desc[''], supr;
+ if (typeof fields == 'string') {
+ var s = fields.split(';'); supr = s[0];
+ fields = s[1] == '' ? [] : s[1].split(',');
+ } else {
+ supr = desc['super'];
+ }
+ Isolate.$isolateProperties[cls] = Isolate.$defineClass(cls, fields, desc);
+ if (supr) Isolate.$pendingClasses[cls] = supr;
+ }
+ }
+ var pendingClasses = Isolate.$pendingClasses;
+ Isolate.$pendingClasses = {};
+ var finishedClasses = {};
+ function finishClass(cls) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ if (hasOwnProperty.call(finishedClasses, cls)) return;
+ finishedClasses[cls] = true;
+ var superclass = pendingClasses[cls];
+ if (!superclass) return;
+ finishClass(superclass);
+ var constructor = Isolate.$isolateProperties[cls];
+ var superConstructor = Isolate.$isolateProperties[superclass];
+ var prototype = constructor.prototype;
+ if (supportsProto) {
+ prototype.__proto__ = superConstructor.prototype;
+ prototype.constructor = constructor;
+ } else {
+ function tmp() {};
+ tmp.prototype = superConstructor.prototype;
+ var newPrototype = new tmp();
+ constructor.prototype = newPrototype;
+ newPrototype.constructor = constructor;
+ for (var member in prototype) {
+ if (!member) continue; if (hasOwnProperty.call(prototype, member)) {
+ newPrototype[member] = prototype[member];
+ }
+ }
+ }
+ }
+ for (var cls in pendingClasses) finishClass(cls);
+};
+Isolate.$lazy = function(prototype, staticName, fieldName, getterName, lazyValue) {
+ var getter = new Function("{ return $." + fieldName + ";}");
+ var sentinelUndefined = {};
+ var sentinelInProgress = {};
+ prototype[fieldName] = sentinelUndefined;
+ prototype[getterName] = function() {
+ var result = $[fieldName];
+ try {
+ if (result === sentinelUndefined) {
+ $[fieldName] = sentinelInProgress;
+ try {
+ result = $[fieldName] = lazyValue();
+ } finally {
+ if (result === sentinelUndefined) {
+ if ($[fieldName] === sentinelInProgress) {
+ $[fieldName] = null;
+ }
+ }
+ }
+ } else if (result === sentinelInProgress) {
+ $.throwCyclicInit(staticName);
+ }
+ return result;
+ } finally {
+ $[getterName] = getter;
+ }
+ };
+};
+Isolate.$finishIsolateConstructor = function(oldIsolate) {
+ var isolateProperties = oldIsolate.$isolateProperties;
+ var isolatePrototype = oldIsolate.prototype;
+ var str = "{\n";
+ str += "var properties = Isolate.$isolateProperties;\n";
+ for (var staticName in isolateProperties) {
+ if (Object.prototype.hasOwnProperty.call(isolateProperties, staticName)) {
+ str += "this." + staticName + "= properties." + staticName + ";\n";
+ }
+ }
+ str += "}\n";
+ var newIsolate = new Function(str);
+ newIsolate.prototype = isolatePrototype;
+ isolatePrototype.constructor = newIsolate;
+ newIsolate.$isolateProperties = isolateProperties;
+ return newIsolate;
+};
+}
+
+//@ sourceMappingURL=dromaeo_smoke.dart.js.map

Powered by Google App Engine
This is Rietveld 408576698