Chromium Code Reviews| 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 |