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 |