Dart or Coffeescript

There has been a lot of buzz lately regarding the emergence of a new web programming language called Dart from Google. Dart, like Coffeescript, is a language that is interpreted into javascript and allows you to code in a more object oriented style when developing the front-end of your web applications. A few people have asked if they should use Coffeescript of Dart. To that, I say to learn javascript, use coffeescript, and check out Dart. Both languages attempt to extract the beautiful object model hidden beneath all the muck in javascript. Both languages (especially coffeescript do this but Dart carries around a lot of dead weight. While Dart is pretty neat and backed by Google, it has not be absorbed into the web-applications development community like coffeescript has (coffeescript is the suggested front-end development language of the Rails core team and the preferred front-end language of the ruby community). Coffeescript also has wider support tools and, in my personal opinion, more readability. However, if that does not have you convinced then you can take a look at this ‘Hello World’ program written in Coffeescript and compiled to Javascript then Dart compiled to Javascript (taken from this gist).

Long story short, Dart offers enhanced security in your front-end and is more catered to large-scale projects but I won’t be reaching for Dart in the near future. The language syntax is cool and liken to Java but all the useless generated code really makes it hard for me to understand what is going on under the hood. Why use 17K lines of code when 11 will do?

###First Coffeescript

# Copyright (c) 2011, the <your_company> project authors. Please don't see the
# AUTHORS file for details. All rights reserved. Use of this source code is
# governed by a BSD-style license that can be found in the LICENSE file.
# Simple test program invoked with an option to eagerly
# compile all code that is loaded in the isolate.
# VMOptions=--fuu_dart

class HelloCoffeeTest
    test_main: ->
        console.log "Hello, Coffee man!"

new HelloCoffeeTest().test_main()
(function() {
  var HelloCoffeeTest;
  HelloCoffeeTest = (function() {
    function HelloCoffeeTest() {}
    HelloCoffeeTest.prototype.test_main = function() {
      return console.log("Hello, Coffee man!");
    };
    return HelloCoffeeTest;
  })();
  new HelloCoffeeTest().test_main();
}).call(this);

###Now Dart

// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Simple test program invoked with an option to eagerly
// compile all code that is loaded in the isolate.
// VMOptions=--compile_all

class HelloDartTest {
  static testMain() {
    print("Hello, Darter!");
  }
}


main() {
  HelloDartTest.testMain();
}

/**
 * @param {!RTT} other
 * @return {boolean} Whether this type is implement by other
 */
RTT.prototype.implementedByType = function(otherType) { 
  if (otherType === this || otherType === RTT.dynamicType) {
    return true;
  }
  var targetTypeInfo = $mapLookup(otherType.implementedTypes, this.classKey);
  if (targetTypeInfo == null) { 
    return false; 
  }
  if (targetTypeInfo.typeArgs && this.typeArgs) {
    for(var i = this.typeArgs.length - 1; i >= 0; i--) {
      if (!this.typeArgs[i].implementedByType(targetTypeInfo.typeArgs[i])) {
        return false;
      }
    }
  }
  return true;
};

/**
 * @return {string} the class name associated with this type
 */
RTT.prototype.getClassName = function() {
  var name = this.classKey;
  if (name.substr(0, 4) == "cls:") {
    name = name.substr(4);
  }
  if (name.substr(-5) == "$Dart") {
    name = name.substr(0, name.length - 5);
  }
  return name;
}

/** 
 * @param {RTT}
 * @return {boolean} 
 */
RTT.nullInstanceOf = function(type) {
  return type === RTT.objectType || type === RTT.dynamicType;
};

/**
 * @param {*} value The value to retrieve type information for
 * @return {RTT} 
 */
RTT.getNativeTypeInfo = function(value) {
  if (value instanceof Array) return Array.$lookupRTT();
  switch (typeof value) {
    case 'string': return String.$lookupRTT();
    case 'number': return Number.$lookupRTT();
    case 'boolean': return Boolean.$lookupRTT();
  } 
  return RTT.placeholderType;
};

/**
 * @param {string} name
 * @param {function(RTT,Array.<RTT>)=} implementsSupplier 
 * @param {Array.<RTT>=} typeArgs
 * @return {RTT} The RTT information object
 */
RTT.create = function(name, implementsSupplier, typeArgs) {
  if (name == $cls("Object")) return RTT.objectType;
  var typekey = RTT.getTypeKey(name, typeArgs);
  var rtt = $mapLookup(RTT.types, typekey);
  if (rtt) {
    return rtt;
  }
  var classkey = RTT.getTypeKey(name);
  rtt = new RTT(classkey, typekey, typeArgs);
  RTT.types[typekey] = rtt;
  if (implementsSupplier) {
    implementsSupplier(rtt, typeArgs);
  }
  return rtt;
};

/**
 * @param {string} classkey
 * @param {Array.<(RTT|string)>=} typeargs
 * @return {string}
 */
RTT.getTypeKey = function(classkey, typeargs) {
  var key = classkey;
  if (typeargs) {
    key += "<" + typeargs.join(",") + ">";
  }
  return key;
};

/**
 * @return {*} value
 * @return {RTT} return the RTT information object for the value
 */
RTT.getTypeInfo = function(value) {
  return (value.$typeInfo) ? value.$typeInfo : RTT.getNativeTypeInfo(value);
};

/**
 * @param {Object} o
 * @param {RTT} rtt
 * Sets the RTT on the object and returns the object itself.
 */
RTT.setTypeInfo = function(o, rtt) {
  o.$typeInfo = rtt;
  return o;
};

/**
 * @param {Object} o
 * Removes any RTT from the object and returns the object itself.
 */
RTT.removeTypeInfo = function(o) {
  o.$typeInfo = null;
  return o;
};

/**
 * The typeArg array is optional
 * @param {Array.<RTT>=} typeArgs
 * @param {number} i
 * @return {RTT}
 */
RTT.getTypeArg = function(typeArgs, i) {
  if (typeArgs) {
    if (typeArgs.length > i) {
      return typeArgs[i];
    } else {
      throw new Error("Missing type arg");
    }
  } 
  return RTT.dynamicType; 
};

/**
 * The typeArg array is optional
 * @param {*} o
 * @param {string} classkey
 * @return {Array.<RTT>}
 */
RTT.getTypeArgsFor = function(o, classkey) {
  var rtt = $mapLookup(RTT.getTypeInfo(o).implementedTypes, classkey);
  if (!rtt) {
    throw new Error("internal error: can not find " +
        classkey + " in " + JSON.stringify(o));
  }
  return rtt.typeArgs;
};

// Base types for runtime type information

/** @type {!RTT} */
RTT.objectType = new RTT($cls('Object'));
RTT.objectType.implementedBy = function(o) {return true};
RTT.objectType.implementedByType = function(o) {return true};

/** @type {!RTT} */
RTT.dynamicType = new RTT($cls('Dynamic'));
RTT.dynamicType.implementedBy = function(o) {return true};
RTT.dynamicType.implementedByType = function(o) {return true};

/** @type {!RTT} */
RTT.placeholderType = new RTT($cls('::'));
RTT.placeholderType.implementedBy = function(o) {return true};
RTT.placeholderType.implementedByType = function(o) {return true};

/**
 * Checks that a value is assignable to an expected type, and either returns that
 * value if it is, or else throws a TypeMismatchException.
 *
 * @param {!RTT} the expected type
 * @param {*} the value to check
 * @return {*} the value
 */
function $chk(rtt, value) {
  // null can be assigned to any type
  if (value == $Dart$Null || rtt.implementedBy(value)) {
    return value;
  }
  $te(rtt, value);
}

/**
 * Throw a TypeError.  See core.dart for the ExceptionHelper class.
 *
 * @param {!RTT} the expected type
 * @param {*) the value that failed
 */
function $te(rtt, value) {
  var srcType = RTT.getTypeInfo(value).getClassName();
  var dstType = rtt.getClassName();
  var e = native_ExceptionHelper_createTypeError(srcType, dstType);
  $Dart$ThrowException(e);
}

// Setup the Function object
Function.prototype.$implements$Function$Dart = 1;
RTT.setTypeInfo(Function.prototype, RTT.create($cls('Function$Dart')));

/** 
 * @param {string} cls 
 * @return {string}
 * @consistentIdGenerator 
 */
function $cls(cls) {
  return "cls:" + cls;
}
// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/**
 * Extend the String prototype with members expected in dart.
 */

String.$instanceOf = function(obj) {
  return typeof obj == 'string' || obj instanceof String;
};

function native_StringImplementation__indexOperator(index) {
  return this[index];
}

function native_StringImplementation__charCodeAt(index) {
  return this.charCodeAt(index);
}

function native_StringImplementation_get$length() {
  return this.length;
}

function native_StringImplementation_EQ(other) {
  if (typeof other == 'string') {
    return this == other;
  } else if (other instanceof String) {
    // Must convert other to a primitive for value equality to work.
    return this == String(other);
  } else {
    return false;
  }
}

function native_StringImplementation_indexOf(other, startIndex) {
  return this.indexOf(other, startIndex);
}

function native_StringImplementation_lastIndexOf(other, fromIndex) {
  if (other == "") {
    return Math.min(this.length, fromIndex);
  }
  return this.lastIndexOf(other, fromIndex);
}

function native_StringImplementation_concat(other) {
  return this.concat(other);
}

function native_StringImplementation__substringUnchecked(startIndex, endIndex) {
  return this.substring(startIndex, endIndex);
}

function native_StringImplementation_trim() {
  if (this.trim) return this.trim();
  return this.replace(new RegExp("^[\s]+|[\s]+$", "g"), "");
}

function native_StringImplementation__replace(from, to) {
  if (String.$instanceOf(from)) {
    return this.replace(from, to);
  } else {
    return this.replace($DartRegExpToJSRegExp(from), to);
  }
}

function native_StringImplementation__replaceAll(from, to) {
  if (String.$instanceOf(from)) {
    var regexp = new RegExp(
        from.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'g');
    return this.replace(regexp, to);
  } else {
    var regexp = $DartRegExpToJSRegExp(from);
    return this.replace(regexp, to);
  }
}

function native_StringImplementation__split(pattern) {
  if (String.$instanceOf(pattern)) {
    return this.split(pattern);
  } else {
    return this.split($DartRegExpToJSRegExp(pattern));
  }
}

function native_StringImplementation_toLowerCase() {
  return this.toLowerCase();
}

function native_StringImplementation_toUpperCase() {
  return this.toUpperCase();
}

// Inherited from Hashable.
function native_StringImplementation_hashCode() {
  if (this.hash_ === undefined) {
    for (var i = 0; i < this.length; i++) {
      var ch = this.charCodeAt(i);
      this.hash_ += ch;
      this.hash_ += this.hash_ << 10;
      this.hash_ ^= this.hash_ >> 6;
    }

    this.hash_ += this.hash_ << 3;
    this.hash_ ^= this.hash_ >> 11;
    this.hash_ += this.hash_ << 15;
    this.hash_ = this.hash_ & ((1 << 29) - 1);
  }
  return this.hash_;
}

function native_StringImplementation_toString() {
  // Return the primitive string of this String object.
  return String(this);
}

// TODO(floitsch): If we allow comparison operators on the String class we
// should move this function into dart world.
function native_StringImplementation_compareTo(other) {
  if (this == other) return 0;
  if (this < other) return -1;
  return 1;
}

function native_StringImplementation__newFromValues(array) {
  if (!(array instanceof Array)) {
    var length = native__ArrayJsUtil__arrayLength(array);
    var tmp = new Array(length);
    for (var i = 0; i < length; i++) {
      tmp[i] = INDEX$operator(array, i);
    }
    array = tmp;
  }
  return String.fromCharCode.apply(this, array);
}

// Deprecated old name of new String.fromValues(..).
function native_StringBase_createFromCharCodes(array) {
  return native_StringImplementation__newFromValues(array);
}
function ArrayFactory$Dart(){
}

ArrayFactory$Dart.$lookupRTT = function(){
  return RTT.create($cls('ArrayFactory$Dart'));
}
;
ArrayFactory$Dart.$addTo = function(target){
  var rtt = ArrayFactory$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
ArrayFactory$Dart.prototype.$implements$ArrayFactory$Dart = 1;
ArrayFactory$Dart.prototype.$implements$Object$Dart = 1;
ArrayFactory$Dart.Array$from$5$Factory = function($typeArgs, other){
  var array = ArrayFactory$Dart.Array$$Factory([RTT.getTypeArg($typeArgs, 0)], $Dart$Null);
  {
    var $0 = other.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var e = $0.next$named(0, $noargs);
      {
        array.add$named(1, $noargs, e);
      }
    }
  }
  return array;
}
;
ArrayFactory$Dart.Array$fromArray$5$Factory = function($typeArgs, other, startIndex, endIndex){
  var tmp$0;
  var array = ArrayFactory$Dart.Array$$Factory([RTT.getTypeArg($typeArgs, 0)], $Dart$Null);
  if (GT$operator(endIndex, other.length$getter())) {
    endIndex = other.length$getter();
  }
  if (LT$operator(startIndex, 0)) {
    startIndex = 0;
  }
  var count = SUB$operator(endIndex, startIndex);
  if (GT$operator(count, 0)) {
    array.length$setter(tmp$0 = count) , tmp$0;
    Arrays$Dart.copy$member(other, startIndex, array, 0, count);
  }
  return array;
}
;
ArrayFactory$Dart.Array$$Factory = function($typeArgs, length_0){
  var tmp$0;
  var isFixed = true;
  if (length_0 == null) {
    length_0 = 0;
    isFixed = false;
  }
   else {
    if (LT$operator(length_0, 0)) {
      $Dart$ThrowException(IllegalArgumentException$Dart.IllegalArgumentException$$Factory(length_0));
    }
  }
  var array = ArrayFactory$Dart._new$$member_(TypeToken$Dart.TypeToken$$Factory(TypeToken$Dart.$lookupRTT([RTT.getTypeArg($typeArgs, 0)])), length_0);
  array._isFixed$$setter_(tmp$0 = isFixed) , tmp$0;
  return array;
}
;
ArrayFactory$Dart._new$$member_ = function(typeToken, length_0){
  return native_ArrayFactory__new(typeToken, length_0);
}
;
ArrayFactory$Dart._new$$named_ = function($n, $o, typeToken, length_0){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return ArrayFactory$Dart._new$$member_(typeToken, length_0);
}
;
ArrayFactory$Dart._new$$getter_ = function _new$$getter_(){
  return ArrayFactory$Dart._new$$named_;
}
;
function ListFactory$Dart(){
}

ListFactory$Dart.$lookupRTT = function(){
  return RTT.create($cls('ListFactory$Dart'));
}
;
ListFactory$Dart.$addTo = function(target){
  var rtt = ListFactory$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
ListFactory$Dart.prototype.$implements$ListFactory$Dart = 1;
ListFactory$Dart.prototype.$implements$Object$Dart = 1;
ListFactory$Dart.List$from$4$Factory = function($typeArgs, other){
  var list = ListFactory$Dart.List$$Factory([RTT.getTypeArg($typeArgs, 0)], $Dart$Null);
  {
    var $0 = other.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var e = $0.next$named(0, $noargs);
      {
        list.add$named(1, $noargs, e);
      }
    }
  }
  return list;
}
;
ListFactory$Dart.List$fromList$4$Factory = function($typeArgs, other, startIndex, endIndex){
  var tmp$0;
  var list = ListFactory$Dart.List$$Factory([RTT.getTypeArg($typeArgs, 0)], $Dart$Null);
  if (GT$operator(endIndex, other.length$getter())) {
    endIndex = other.length$getter();
  }
  if (LT$operator(startIndex, 0)) {
    startIndex = 0;
  }
  var count = SUB$operator(endIndex, startIndex);
  if (GT$operator(count, 0)) {
    list.length$setter(tmp$0 = count) , tmp$0;
    Arrays$Dart.copy$member(other, startIndex, list, 0, count);
  }
  return list;
}
;
ListFactory$Dart.List$$Factory = function($typeArgs, length_0){
  var tmp$0;
  var isFixed = true;
  if (length_0 == null) {
    length_0 = 0;
    isFixed = false;
  }
   else {
    if (LT$operator(length_0, 0)) {
      $Dart$ThrowException(IllegalArgumentException$Dart.IllegalArgumentException$$Factory(length_0));
    }
  }
  var list = ListFactory$Dart._new$$member_(TypeToken$Dart.TypeToken$$Factory(TypeToken$Dart.$lookupRTT([RTT.getTypeArg($typeArgs, 0)])), length_0);
  list._isFixed$$setter_(tmp$0 = isFixed) , tmp$0;
  return list;
}
;
ListFactory$Dart._new$$member_ = function(typeToken, length_0){
  return native_ListFactory__new(typeToken, length_0);
}
;
ListFactory$Dart._new$$named_ = function($n, $o, typeToken, length_0){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return ListFactory$Dart._new$$member_(typeToken, length_0);
}
;
ListFactory$Dart._new$$getter_ = function _new$$getter_(){
  return ListFactory$Dart._new$$named_;
}
;
Array.$lookupRTT = function(typeArgs){
  return RTT.create($cls('Array'), Array.$RTTimplements, typeArgs);
}
;
Array.$RTTimplements = function(rtt, typeArgs){
  Array.$addTo(rtt, typeArgs);
  rtt.derivedTypes = [];
}
;
Array.$addTo = function(target, typeArgs){
  var rtt = Array.$lookupRTT(typeArgs);
  target.implementedTypes[rtt.classKey] = rtt;
  Array$Dart.$addTo(target, [RTT.getTypeArg(target.typeArgs, 0)]);
}
;
Array.prototype.$implements$ObjectArray$Dart = 1;
Array.prototype.$implements$Array$Dart = 1;
Array.prototype.$implements$List$Dart = 1;
Array.prototype.$implements$Collection$Dart = 1;
Array.prototype.$implements$Iterable$Dart = 1;
Array.prototype.$implements$Object$Dart = 1;
Array.prototype._isFixed$$named_ = function(){
  return this._isFixed$$getter_().apply(this, arguments);
}
;
Array.prototype._isFixed$$getter_ = function(){
  return this._isFixed$$field_;
}
;
Array.prototype._isFixed$$setter_ = function(tmp$0){
  this._isFixed$$field_ = tmp$0;
}
;
Array.prototype.INDEX$operator = function(index){
  if (LTE$operator(0, index) && LT$operator(index, this.length$getter())) {
    return this._indexOperator$$member_(index);
  }
  $Dart$ThrowException(IndexOutOfRangeException$Dart.IndexOutOfRangeException$$Factory(index));
}
;
Array.prototype.ASSIGN_INDEX$operator = function(index, value){
  if (LT$operator(index, 0) || LTE$operator(this.length$getter(), index)) {
    $Dart$ThrowException(IndexOutOfRangeException$Dart.IndexOutOfRangeException$$Factory(index));
  }
  this._indexAssignOperator$$member_(index, value);
}
;
Array.prototype.iterator$member = function(){
  if (this._isFixed$$getter_()) {
    return FixedSizeArrayIterator$Dart.FixedSizeArrayIterator$$Factory(FixedSizeArrayIterator$Dart.$lookupRTT([RTT.getTypeArg(RTT.getTypeArgsFor(this, $cls('Array')), 0)]), this);
  }
   else {
    return VariableSizeArrayIterator$Dart.VariableSizeArrayIterator$$Factory(VariableSizeArrayIterator$Dart.$lookupRTT([RTT.getTypeArg(RTT.getTypeArgsFor(this, $cls('Array')), 0)]), this);
  }
}
;
Array.prototype.iterator$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Array.prototype.iterator$member.call(this);
}
;
Array.prototype.iterator$getter = function iterator$getter(){
  return $bind(Array.prototype.iterator$named, this);
}
;
Array.prototype._indexOperator$$member_ = function(index){
  return native_ObjectArray__indexOperator.call(this, index);
}
;
Array.prototype._indexOperator$$named_ = function($n, $o, index){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype._indexOperator$$member_.call(this, index);
}
;
Array.prototype._indexOperator$$getter_ = function _indexOperator$$getter_(){
  return $bind(Array.prototype._indexOperator$$named_, this);
}
;
Array.prototype._indexAssignOperator$$member_ = function(index, value){
  return native_ObjectArray__indexAssignOperator.call(this, index, value);
}
;
Array.prototype._indexAssignOperator$$named_ = function($n, $o, index, value){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Array.prototype._indexAssignOperator$$member_.call(this, index, value);
}
;
Array.prototype._indexAssignOperator$$getter_ = function _indexAssignOperator$$getter_(){
  return $bind(Array.prototype._indexAssignOperator$$named_, this);
}
;
Array.prototype.length$named = function(){
  return this.length$getter().apply(this, arguments);
}
;
Array.prototype.length$getter = function(){
  return native_ObjectArray_get$length.call(this);
}
;
Array.prototype.length$setter = function(length_0){
  if (this._isFixed$$getter_()) {
    $Dart$ThrowException($intern(UnsupportedOperationException$Dart.UnsupportedOperationException$$Factory('Cannot change the length of a non-extendable array')));
  }
   else {
    this._setLength$$member_(length_0);
  }
}
;
Array.prototype._setLength$$member_ = function(length_0){
  return native_ObjectArray__setLength.call(this, length_0);
}
;
Array.prototype._setLength$$named_ = function($n, $o, length_0){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype._setLength$$member_.call(this, length_0);
}
;
Array.prototype._setLength$$getter_ = function _setLength$$getter_(){
  return $bind(Array.prototype._setLength$$named_, this);
}
;
Array.prototype._add$$member_ = function(value){
  return native_ObjectArray__add.call(this, value);
}
;
Array.prototype._add$$named_ = function($n, $o, value){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype._add$$member_.call(this, value);
}
;
Array.prototype._add$$getter_ = function _add$$getter_(){
  return $bind(Array.prototype._add$$named_, this);
}
;
Array.prototype.forEach$member = function(f){
  Collections$Dart.forEach$member(this, f);
}
;
Array.prototype.forEach$named = function($n, $o, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype.forEach$member.call(this, f);
}
;
Array.prototype.forEach$getter = function forEach$getter(){
  return $bind(Array.prototype.forEach$named, this);
}
;
Array.prototype.filter$member = function(f){
  return Collections$Dart.filter$member(this, ArrayFactory$Dart.Array$$Factory([RTT.getTypeArg(RTT.getTypeArgsFor(this, $cls('Array')), 0)], $Dart$Null), f);
}
;
Array.prototype.filter$named = function($n, $o, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype.filter$member.call(this, f);
}
;
Array.prototype.filter$getter = function filter$getter(){
  return $bind(Array.prototype.filter$named, this);
}
;
Array.prototype.every$member = function(f){
  return Collections$Dart.every$member(this, f);
}
;
Array.prototype.every$named = function($n, $o, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype.every$member.call(this, f);
}
;
Array.prototype.every$getter = function every$getter(){
  return $bind(Array.prototype.every$named, this);
}
;
Array.prototype.some$member = function(f){
  return Collections$Dart.some$member(this, f);
}
;
Array.prototype.some$named = function($n, $o, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype.some$member.call(this, f);
}
;
Array.prototype.some$getter = function some$getter(){
  return $bind(Array.prototype.some$named, this);
}
;
Array.prototype.isEmpty$member = function(){
  return EQ$operator(this.length$getter(), 0);
}
;
Array.prototype.isEmpty$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Array.prototype.isEmpty$member.call(this);
}
;
Array.prototype.isEmpty$getter = function isEmpty$getter(){
  return $bind(Array.prototype.isEmpty$named, this);
}
;
Array.prototype.sort$member = function(compare){
  DualPivotQuicksort$Dart.sort$member(this, compare);
}
;
Array.prototype.sort$named = function($n, $o, compare){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype.sort$member.call(this, compare);
}
;
Array.prototype.sort$getter = function sort$getter(){
  return $bind(Array.prototype.sort$named, this);
}
;
Array.prototype.copyFrom$member = function(src, srcStart, dstStart, count){
  Arrays$Dart.copy$member(src, srcStart, this, dstStart, count);
}
;
Array.prototype.copyFrom$named = function($n, $o, src, srcStart, dstStart, count){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 4)
    $nsme();
  return Array.prototype.copyFrom$member.call(this, src, srcStart, dstStart, count);
}
;
Array.prototype.copyFrom$getter = function copyFrom$getter(){
  return $bind(Array.prototype.copyFrom$named, this);
}
;
Array.prototype.setRange$member = function(start, length_0, from, startFrom){
  $Dart$ThrowException($intern(NotImplementedException$Dart.NotImplementedException$$Factory()));
}
;
Array.prototype.setRange$named = function($n, $o, start, length_0, from, startFrom){
  var seen = 0;
  var def = 0;
  switch ($n) {
    case 3:
      startFrom = $o.startFrom?(++seen , $o.startFrom):(++def , 0);
  }
  if (seen != $o.count || seen + def + $n != 4)
    $nsme();
  return Array.prototype.setRange$member.call(this, start, length_0, from, startFrom);
}
;
Array.prototype.setRange$getter = function setRange$getter(){
  return $bind(Array.prototype.setRange$named, this);
}
;
Array.prototype.removeRange$member = function(start, length_0){
  $Dart$ThrowException($intern(NotImplementedException$Dart.NotImplementedException$$Factory()));
}
;
Array.prototype.removeRange$named = function($n, $o, start, length_0){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Array.prototype.removeRange$member.call(this, start, length_0);
}
;
Array.prototype.removeRange$getter = function removeRange$getter(){
  return $bind(Array.prototype.removeRange$named, this);
}
;
Array.prototype.insertRange$member = function(start, length_0, initialValue){
  $Dart$ThrowException($intern(NotImplementedException$Dart.NotImplementedException$$Factory()));
}
;
Array.prototype.insertRange$named = function($n, $o, start, length_0, initialValue){
  var seen = 0;
  var def = 0;
  switch ($n) {
    case 2:
      initialValue = $o.initialValue?(++seen , $o.initialValue):(++def , $Dart$Null);
  }
  if (seen != $o.count || seen + def + $n != 3)
    $nsme();
  return Array.prototype.insertRange$member.call(this, start, length_0, initialValue);
}
;
Array.prototype.insertRange$getter = function insertRange$getter(){
  return $bind(Array.prototype.insertRange$named, this);
}
;
Array.prototype.getRange$member = function(start, length_0){
  $Dart$ThrowException($intern(NotImplementedException$Dart.NotImplementedException$$Factory()));
}
;
Array.prototype.getRange$named = function($n, $o, start, length_0){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Array.prototype.getRange$member.call(this, start, length_0);
}
;
Array.prototype.getRange$getter = function getRange$getter(){
  return $bind(Array.prototype.getRange$named, this);
}
;
Array.prototype.indexOf$member = function(element, startIndex){
  return Arrays$Dart.indexOf$member(this, element, startIndex, this.length$getter());
}
;
Array.prototype.indexOf$named = function($n, $o, element, startIndex){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Array.prototype.indexOf$member.call(this, element, startIndex);
}
;
Array.prototype.indexOf$getter = function indexOf$getter(){
  return $bind(Array.prototype.indexOf$named, this);
}
;
Array.prototype.lastIndexOf$member = function(element, startIndex){
  return Arrays$Dart.lastIndexOf$member(this, element, startIndex);
}
;
Array.prototype.lastIndexOf$named = function($n, $o, element, startIndex){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Array.prototype.lastIndexOf$member.call(this, element, startIndex);
}
;
Array.prototype.lastIndexOf$getter = function lastIndexOf$getter(){
  return $bind(Array.prototype.lastIndexOf$named, this);
}
;
Array.prototype.add$member = function(element){
  if (this._isFixed$$getter_()) {
    $Dart$ThrowException($intern(UnsupportedOperationException$Dart.UnsupportedOperationException$$Factory('Cannot add to a non-extendable array')));
  }
   else {
    this._add$$member_(element);
  }
}
;
Array.prototype.add$named = function($n, $o, element){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype.add$member.call(this, element);
}
;
Array.prototype.add$getter = function add$getter(){
  return $bind(Array.prototype.add$named, this);
}
;
Array.prototype.addLast$member = function(element){
  this.add$member(element);
}
;
Array.prototype.addLast$named = function($n, $o, element){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype.addLast$member.call(this, element);
}
;
Array.prototype.addLast$getter = function addLast$getter(){
  return $bind(Array.prototype.addLast$named, this);
}
;
Array.prototype.addAll$member = function(elements){
  if (this._isFixed$$getter_()) {
    $Dart$ThrowException($intern(UnsupportedOperationException$Dart.UnsupportedOperationException$$Factory('Cannot add to a non-extendable array')));
  }
   else {
    {
      var $0 = elements.iterator$named(0, $noargs);
      while ($0.hasNext$named(0, $noargs)) {
        var e = $0.next$named(0, $noargs);
        {
          this._add$$member_(e);
        }
      }
    }
  }
}
;
Array.prototype.addAll$named = function($n, $o, elements){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Array.prototype.addAll$member.call(this, elements);
}
;
Array.prototype.addAll$getter = function addAll$getter(){
  return $bind(Array.prototype.addAll$named, this);
}
;
Array.prototype.clear$member = function(){
  var tmp$0;
  if (this._isFixed$$getter_()) {
    $Dart$ThrowException($intern(UnsupportedOperationException$Dart.UnsupportedOperationException$$Factory('Cannot clear a non-extendable array')));
  }
   else {
    this.length$setter(tmp$0 = 0) , tmp$0;
  }
}
;
Array.prototype.clear$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Array.prototype.clear$member.call(this);
}
;
Array.prototype.clear$getter = function clear$getter(){
  return $bind(Array.prototype.clear$named, this);
}
;
Array.prototype.removeLast$member = function(){
  var tmp$0;
  if (this._isFixed$$getter_()) {
    $Dart$ThrowException($intern(UnsupportedOperationException$Dart.UnsupportedOperationException$$Factory('Cannot remove in a non-extendable array')));
  }
   else {
    var element = this.last$member();
    this.length$setter(tmp$0 = SUB$operator(this.length$getter(), 1)) , tmp$0;
    return element;
  }
}
;
Array.prototype.removeLast$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Array.prototype.removeLast$member.call(this);
}
;
Array.prototype.removeLast$getter = function removeLast$getter(){
  return $bind(Array.prototype.removeLast$named, this);
}
;
Array.prototype.last$member = function(){
  return this.INDEX$operator(SUB$operator(this.length$getter(), 1));
}
;
Array.prototype.last$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Array.prototype.last$member.call(this);
}
;
Array.prototype.last$getter = function last$getter(){
  return $bind(Array.prototype.last$named, this);
}
;
Array.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
Array.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
Array.ObjectArray$$Factory = function($rtt){
  var tmp$0 = new Array;
  tmp$0.$typeInfo = $rtt;
  Array.$Initializer.call(tmp$0);
  Array.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function FixedSizeArrayIterator$Dart(){
}

FixedSizeArrayIterator$Dart.$lookupRTT = function(typeArgs){
  return RTT.create($cls('FixedSizeArrayIterator$Dart'), FixedSizeArrayIterator$Dart.$RTTimplements, typeArgs);
}
;
FixedSizeArrayIterator$Dart.$RTTimplements = function(rtt, typeArgs){
  FixedSizeArrayIterator$Dart.$addTo(rtt, typeArgs);
  rtt.derivedTypes = [];
}
;
FixedSizeArrayIterator$Dart.$addTo = function(target, typeArgs){
  var rtt = FixedSizeArrayIterator$Dart.$lookupRTT(typeArgs);
  target.implementedTypes[rtt.classKey] = rtt;
  VariableSizeArrayIterator$Dart.$addTo(target, [RTT.getTypeArg(target.typeArgs, 0)]);
}
;
FixedSizeArrayIterator$Dart.prototype.$implements$FixedSizeArrayIterator$Dart = 1;
FixedSizeArrayIterator$Dart.prototype.$implements$VariableSizeArrayIterator$Dart = 1;
FixedSizeArrayIterator$Dart.prototype.$implements$Iterator$Dart = 1;
FixedSizeArrayIterator$Dart.prototype.$implements$Object$Dart = 1;
$inherits(FixedSizeArrayIterator$Dart, VariableSizeArrayIterator$Dart);
FixedSizeArrayIterator$Dart.$Constructor = function(array){
  VariableSizeArrayIterator$Dart.$Constructor.call(this, array);
}
;
FixedSizeArrayIterator$Dart.$Initializer = function(array){
  VariableSizeArrayIterator$Dart.$Initializer.call(this, array);
  this._length$$field_ = array.length$getter();
}
;
FixedSizeArrayIterator$Dart.FixedSizeArrayIterator$$Factory = function($rtt, array){
  var tmp$0 = new FixedSizeArrayIterator$Dart;
  tmp$0.$typeInfo = $rtt;
  FixedSizeArrayIterator$Dart.$Initializer.call(tmp$0, array);
  FixedSizeArrayIterator$Dart.$Constructor.call(tmp$0, array);
  return tmp$0;
}
;
FixedSizeArrayIterator$Dart.prototype.hasNext$member = function(){
  return GT$operator(this._length$$getter_(), this._pos$$getter_());
}
;
FixedSizeArrayIterator$Dart.prototype.hasNext$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return FixedSizeArrayIterator$Dart.prototype.hasNext$member.call(this);
}
;
FixedSizeArrayIterator$Dart.prototype.hasNext$getter = function hasNext$getter(){
  return $bind(FixedSizeArrayIterator$Dart.prototype.hasNext$named, this);
}
;
FixedSizeArrayIterator$Dart.prototype._length$$named_ = function(){
  return this._length$$getter_().apply(this, arguments);
}
;
FixedSizeArrayIterator$Dart.prototype._length$$getter_ = function(){
  return this._length$$field_;
}
;
function VariableSizeArrayIterator$Dart(){
}

VariableSizeArrayIterator$Dart.$lookupRTT = function(typeArgs){
  return RTT.create($cls('VariableSizeArrayIterator$Dart'), VariableSizeArrayIterator$Dart.$RTTimplements, typeArgs);
}
;
VariableSizeArrayIterator$Dart.$RTTimplements = function(rtt, typeArgs){
  VariableSizeArrayIterator$Dart.$addTo(rtt, typeArgs);
  rtt.derivedTypes = [];
}
;
VariableSizeArrayIterator$Dart.$addTo = function(target, typeArgs){
  var rtt = VariableSizeArrayIterator$Dart.$lookupRTT(typeArgs);
  target.implementedTypes[rtt.classKey] = rtt;
  Iterator$Dart.$addTo(target, [RTT.getTypeArg(target.typeArgs, 0)]);
}
;
VariableSizeArrayIterator$Dart.prototype.$implements$VariableSizeArrayIterator$Dart = 1;
VariableSizeArrayIterator$Dart.prototype.$implements$Iterator$Dart = 1;
VariableSizeArrayIterator$Dart.prototype.$implements$Object$Dart = 1;
VariableSizeArrayIterator$Dart.$Constructor = function(array){
  Object.$Constructor.call(this);
}
;
VariableSizeArrayIterator$Dart.$Initializer = function(array){
  Object.$Initializer.call(this);
  this._array$$field_ = array;
  this._pos$$field_ = 0;
}
;
VariableSizeArrayIterator$Dart.VariableSizeArrayIterator$$Factory = function($rtt, array){
  var tmp$0 = new VariableSizeArrayIterator$Dart;
  tmp$0.$typeInfo = $rtt;
  VariableSizeArrayIterator$Dart.$Initializer.call(tmp$0, array);
  VariableSizeArrayIterator$Dart.$Constructor.call(tmp$0, array);
  return tmp$0;
}
;
VariableSizeArrayIterator$Dart.prototype.hasNext$member = function(){
  return GT$operator(this._array$$getter_().length$getter(), this._pos$$getter_());
}
;
VariableSizeArrayIterator$Dart.prototype.hasNext$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return VariableSizeArrayIterator$Dart.prototype.hasNext$member.call(this);
}
;
VariableSizeArrayIterator$Dart.prototype.hasNext$getter = function hasNext$getter(){
  return $bind(VariableSizeArrayIterator$Dart.prototype.hasNext$named, this);
}
;
VariableSizeArrayIterator$Dart.prototype.next$member = function(){
  var tmp$1, tmp$0;
  if (!this.hasNext$member()) {
    $Dart$ThrowException($intern(NoMoreElementsException$Dart.NoMoreElementsException$$Factory()));
  }
  return this._array$$getter_().INDEX$operator((tmp$0 = this._pos$$getter_() , (this._pos$$setter_(tmp$1 = ADD$operator(tmp$0, 1)) , tmp$1 , tmp$0)));
}
;
VariableSizeArrayIterator$Dart.prototype.next$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return VariableSizeArrayIterator$Dart.prototype.next$member.call(this);
}
;
VariableSizeArrayIterator$Dart.prototype.next$getter = function next$getter(){
  return $bind(VariableSizeArrayIterator$Dart.prototype.next$named, this);
}
;
VariableSizeArrayIterator$Dart.prototype._array$$named_ = function(){
  return this._array$$getter_().apply(this, arguments);
}
;
VariableSizeArrayIterator$Dart.prototype._array$$getter_ = function(){
  return this._array$$field_;
}
;
VariableSizeArrayIterator$Dart.prototype._pos$$named_ = function(){
  return this._pos$$getter_().apply(this, arguments);
}
;
VariableSizeArrayIterator$Dart.prototype._pos$$getter_ = function(){
  return this._pos$$field_;
}
;
VariableSizeArrayIterator$Dart.prototype._pos$$setter_ = function(tmp$0){
  this._pos$$field_ = tmp$0;
}
;
function _ArrayJsUtil$Dart(){
}

_ArrayJsUtil$Dart.$lookupRTT = function(){
  return RTT.create($cls('_ArrayJsUtil$Dart'));
}
;
_ArrayJsUtil$Dart.$addTo = function(target){
  var rtt = _ArrayJsUtil$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
_ArrayJsUtil$Dart.prototype.$implements$_ArrayJsUtil$Dart = 1;
_ArrayJsUtil$Dart.prototype.$implements$Object$Dart = 1;
_ArrayJsUtil$Dart._arrayLength$$member_ = function(array){
  return array.length$getter();
}
;
_ArrayJsUtil$Dart._arrayLength$$named_ = function($n, $o, array){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _ArrayJsUtil$Dart._arrayLength$$member_(array);
}
;
function native__ArrayJsUtil__arrayLength(array){
  return _ArrayJsUtil$Dart._arrayLength$$member_(array);
}

_ArrayJsUtil$Dart._arrayLength$$getter_ = function _arrayLength$$getter_(){
  return _ArrayJsUtil$Dart._arrayLength$$named_;
}
;
_ArrayJsUtil$Dart._newArray$$member_ = function(len){
  return ArrayFactory$Dart.Array$$Factory(null, len);
}
;
_ArrayJsUtil$Dart._newArray$$named_ = function($n, $o, len){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _ArrayJsUtil$Dart._newArray$$member_(len);
}
;
function native__ArrayJsUtil__newArray(len){
  return _ArrayJsUtil$Dart._newArray$$member_(len);
}

_ArrayJsUtil$Dart._newArray$$getter_ = function _newArray$$getter_(){
  return _ArrayJsUtil$Dart._newArray$$named_;
}
;
_ArrayJsUtil$Dart._throwIndexOutOfRangeException$$member_ = function(index){
  $Dart$ThrowException(IndexOutOfRangeException$Dart.IndexOutOfRangeException$$Factory(index));
}
;
_ArrayJsUtil$Dart._throwIndexOutOfRangeException$$named_ = function($n, $o, index){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _ArrayJsUtil$Dart._throwIndexOutOfRangeException$$member_(index);
}
;
function native__ArrayJsUtil__throwIndexOutOfRangeException(index){
  return _ArrayJsUtil$Dart._throwIndexOutOfRangeException$$member_(index);
}

_ArrayJsUtil$Dart._throwIndexOutOfRangeException$$getter_ = function _throwIndexOutOfRangeException$$getter_(){
  return _ArrayJsUtil$Dart._throwIndexOutOfRangeException$$named_;
}
;
_ArrayJsUtil$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
_ArrayJsUtil$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
_ArrayJsUtil$Dart._ArrayJsUtil$$Factory = function(){
  var tmp$0 = new _ArrayJsUtil$Dart;
  tmp$0.$typeInfo = _ArrayJsUtil$Dart.$lookupRTT();
  _ArrayJsUtil$Dart.$Initializer.call(tmp$0);
  _ArrayJsUtil$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function Arrays$Dart(){
}

Arrays$Dart.$lookupRTT = function(){
  return RTT.create($cls('Arrays$Dart'));
}
;
Arrays$Dart.$addTo = function(target){
  var rtt = Arrays$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
Arrays$Dart.prototype.$implements$Arrays$Dart = 1;
Arrays$Dart.prototype.$implements$Object$Dart = 1;
Arrays$Dart.copy$member = function(src, srcStart, dst, dstStart, count){
  var tmp$5, tmp$1, tmp$2, tmp$3, tmp$4, tmp$0;
  if (srcStart == null) {
    srcStart = 0;
  }
  if (dstStart == null) {
    dstStart = 0;
  }
  if (LT$operator(srcStart, dstStart)) {
    {
      var i = SUB$operator(ADD$operator(srcStart, count), 1);
      var j = SUB$operator(ADD$operator(dstStart, count), 1);
      for (; GTE$operator(i, srcStart); tmp$1 = i , (i = SUB$operator(tmp$1, 1) , tmp$1) , (tmp$0 = j , (j = SUB$operator(tmp$0, 1) , tmp$0))) {
        dst.ASSIGN_INDEX$operator(j, tmp$2 = src.INDEX$operator(i)) , tmp$2;
      }
    }
  }
   else {
    {
      var i_0 = srcStart;
      var j_0 = dstStart;
      for (; LT$operator(i_0, ADD$operator(srcStart, count)); tmp$4 = i_0 , (i_0 = ADD$operator(tmp$4, 1) , tmp$4) , (tmp$3 = j_0 , (j_0 = ADD$operator(tmp$3, 1) , tmp$3))) {
        dst.ASSIGN_INDEX$operator(j_0, tmp$5 = src.INDEX$operator(i_0)) , tmp$5;
      }
    }
  }
}
;
Arrays$Dart.copy$named = function($n, $o, src, srcStart, dst, dstStart, count){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 5)
    $nsme();
  return Arrays$Dart.copy$member(src, srcStart, dst, dstStart, count);
}
;
Arrays$Dart.copy$getter = function copy$getter(){
  return Arrays$Dart.copy$named;
}
;
Arrays$Dart.indexOf$member = function(a, element, startIndex, endIndex){
  var tmp$0;
  if (GTE$operator(startIndex, a.length$getter())) {
    return negate$operator(1);
  }
  if (LT$operator(startIndex, 0)) {
    startIndex = 0;
  }
  {
    var i = startIndex;
    for (; LT$operator(i, endIndex); tmp$0 = i , (i = ADD$operator(tmp$0, 1) , tmp$0)) {
      if (EQ$operator(a.INDEX$operator(i), element)) {
        return i;
      }
    }
  }
  return negate$operator(1);
}
;
Arrays$Dart.indexOf$named = function($n, $o, a, element, startIndex, endIndex){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 4)
    $nsme();
  return Arrays$Dart.indexOf$member(a, element, startIndex, endIndex);
}
;
Arrays$Dart.indexOf$getter = function indexOf$getter(){
  return Arrays$Dart.indexOf$named;
}
;
Arrays$Dart.lastIndexOf$member = function(a, element, startIndex){
  var tmp$0;
  if (LT$operator(startIndex, 0)) {
    return negate$operator(1);
  }
  if (GTE$operator(startIndex, a.length$getter())) {
    startIndex = SUB$operator(a.length$getter(), 1);
  }
  {
    var i = startIndex;
    for (; GTE$operator(i, 0); tmp$0 = i , (i = SUB$operator(tmp$0, 1) , tmp$0)) {
      if (EQ$operator(a.INDEX$operator(i), element)) {
        return i;
      }
    }
  }
  return negate$operator(1);
}
;
Arrays$Dart.lastIndexOf$named = function($n, $o, a, element, startIndex){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 3)
    $nsme();
  return Arrays$Dart.lastIndexOf$member(a, element, startIndex);
}
;
Arrays$Dart.lastIndexOf$getter = function lastIndexOf$getter(){
  return Arrays$Dart.lastIndexOf$named;
}
;
Arrays$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
Arrays$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
Arrays$Dart.Arrays$$Factory = function(){
  var tmp$0 = new Arrays$Dart;
  tmp$0.$typeInfo = Arrays$Dart.$lookupRTT();
  Arrays$Dart.$Initializer.call(tmp$0);
  Arrays$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
Boolean.$lookupRTT = function(){
  return RTT.create($cls('Boolean'), Boolean.$RTTimplements);
}
;
Boolean.$RTTimplements = function(rtt){
  Boolean.$addTo(rtt);
}
;
Boolean.$addTo = function(target){
  var rtt = Boolean.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  bool$Dart.$addTo(target);
}
;
Boolean.prototype.$implements$BoolImplementation$Dart = 1;
Boolean.prototype.$implements$bool$Dart = 1;
Boolean.prototype.$implements$Object$Dart = 1;
Boolean.prototype.EQ$operator = function(other){
  return native_BoolImplementation_EQ.call(this, other);
}
;
Boolean.prototype.toString$member = function(){
  return native_BoolImplementation_toString.call(this);
}
;
Boolean.prototype.toString$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Boolean.prototype.toString$member.call(this);
}
;
Boolean.prototype.toString$getter = function toString$getter(){
  return $bind(Boolean.prototype.toString$named, this);
}
;
Boolean.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
Boolean.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
Boolean.BoolImplementation$$Factory = function(){
  var tmp$0 = new Boolean;
  tmp$0.$typeInfo = Boolean.$lookupRTT();
  Boolean.$Initializer.call(tmp$0);
  Boolean.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function Collections$Dart(){
}

Collections$Dart.$lookupRTT = function(){
  return RTT.create($cls('Collections$Dart'));
}
;
Collections$Dart.$addTo = function(target){
  var rtt = Collections$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
Collections$Dart.prototype.$implements$Collections$Dart = 1;
Collections$Dart.prototype.$implements$Object$Dart = 1;
Collections$Dart.forEach$member = function(iterable, f){
  {
    var $0 = iterable.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var e = $0.next$named(0, $noargs);
      {
        f(1, $noargs, e);
      }
    }
  }
}
;
Collections$Dart.forEach$named = function($n, $o, iterable, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Collections$Dart.forEach$member(iterable, f);
}
;
Collections$Dart.forEach$getter = function forEach$getter(){
  return Collections$Dart.forEach$named;
}
;
Collections$Dart.some$member = function(iterable, f){
  {
    var $0 = iterable.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var e = $0.next$named(0, $noargs);
      {
        if (f(1, $noargs, e)) {
          return true;
        }
      }
    }
  }
  return false;
}
;
Collections$Dart.some$named = function($n, $o, iterable, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Collections$Dart.some$member(iterable, f);
}
;
Collections$Dart.some$getter = function some$getter(){
  return Collections$Dart.some$named;
}
;
Collections$Dart.every$member = function(iterable, f){
  {
    var $0 = iterable.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var e = $0.next$named(0, $noargs);
      {
        if (!f(1, $noargs, e)) {
          return false;
        }
      }
    }
  }
  return true;
}
;
Collections$Dart.every$named = function($n, $o, iterable, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Collections$Dart.every$member(iterable, f);
}
;
Collections$Dart.every$getter = function every$getter(){
  return Collections$Dart.every$named;
}
;
Collections$Dart.filter$member = function(source, destination, f){
  {
    var $0 = source.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var e = $0.next$named(0, $noargs);
      {
        if (f(1, $noargs, e)) {
          destination.add$named(1, $noargs, e);
        }
      }
    }
  }
  return destination;
}
;
Collections$Dart.filter$named = function($n, $o, source, destination, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 3)
    $nsme();
  return Collections$Dart.filter$member(source, destination, f);
}
;
Collections$Dart.filter$getter = function filter$getter(){
  return Collections$Dart.filter$named;
}
;
Collections$Dart.isEmpty$member = function(iterable){
  return !iterable.iterator$named(0, $noargs).hasNext$named(0, $noargs);
}
;
Collections$Dart.isEmpty$named = function($n, $o, iterable){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Collections$Dart.isEmpty$member(iterable);
}
;
Collections$Dart.isEmpty$getter = function isEmpty$getter(){
  return Collections$Dart.isEmpty$named;
}
;
Collections$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
Collections$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
Collections$Dart.Collections$$Factory = function(){
  var tmp$0 = new Collections$Dart;
  tmp$0.$typeInfo = Collections$Dart.$lookupRTT();
  Collections$Dart.$Initializer.call(tmp$0);
  Collections$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function ConstHelper$Dart(){
}

ConstHelper$Dart.$lookupRTT = function(){
  return RTT.create($cls('ConstHelper$Dart'));
}
;
ConstHelper$Dart.$addTo = function(target){
  var rtt = ConstHelper$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
ConstHelper$Dart.prototype.$implements$ConstHelper$Dart = 1;
ConstHelper$Dart.prototype.$implements$Object$Dart = 1;
ConstHelper$Dart.getConstId$member = function(o){
  return native_ConstHelper_getConstId(o);
}
;
ConstHelper$Dart.getConstId$named = function($n, $o, o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return ConstHelper$Dart.getConstId$member(o);
}
;
ConstHelper$Dart.getConstId$getter = function getConstId$getter(){
  return ConstHelper$Dart.getConstId$named;
}
;
ConstHelper$Dart.getConstMapId$member = function(map){
  var sb = StringBufferImpl$Dart.StringBufferImpl$$Factory('');
  sb.add$named(1, $noargs, 'm');
  var first = true;
  {
    var $0 = map.getKeys$named(0, $noargs).iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var key = $0.next$named(0, $noargs);
      {
        if (first) {
          first = false;
        }
         else {
          sb.add$named(1, $noargs, ',');
        }
        sb.add$named(1, $noargs, ConstHelper$Dart.getConstId$member(key));
        sb.add$named(1, $noargs, ',');
        sb.add$named(1, $noargs, ConstHelper$Dart.getConstId$member(map.INDEX$operator(key)));
      }
    }
  }
  return sb.toString$named(0, $noargs);
}
;
ConstHelper$Dart.getConstMapId$named = function($n, $o, map){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return ConstHelper$Dart.getConstMapId$member(map);
}
;
function native_ConstHelper_getConstMapId(map){
  return ConstHelper$Dart.getConstMapId$member(map);
}

ConstHelper$Dart.getConstMapId$getter = function getConstMapId$getter(){
  return ConstHelper$Dart.getConstMapId$named;
}
;
ConstHelper$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
ConstHelper$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
ConstHelper$Dart.ConstHelper$$Factory = function(){
  var tmp$0 = new ConstHelper$Dart;
  tmp$0.$typeInfo = ConstHelper$Dart.$lookupRTT();
  ConstHelper$Dart.$Initializer.call(tmp$0);
  ConstHelper$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function ExceptionHelper$Dart(){
}

ExceptionHelper$Dart.$lookupRTT = function(){
  return RTT.create($cls('ExceptionHelper$Dart'));
}
;
ExceptionHelper$Dart.$addTo = function(target){
  var rtt = ExceptionHelper$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
ExceptionHelper$Dart.prototype.$implements$ExceptionHelper$Dart = 1;
ExceptionHelper$Dart.prototype.$implements$Object$Dart = 1;
ExceptionHelper$Dart.createNullPointerException$member = function(){
  return NullPointerException$Dart.NullPointerException$$Factory();
}
;
ExceptionHelper$Dart.createNullPointerException$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ExceptionHelper$Dart.createNullPointerException$member();
}
;
function native_ExceptionHelper_createNullPointerException(){
  return ExceptionHelper$Dart.createNullPointerException$member();
}

ExceptionHelper$Dart.createNullPointerException$getter = function createNullPointerException$getter(){
  return ExceptionHelper$Dart.createNullPointerException$named;
}
;
ExceptionHelper$Dart.createObjectNotClosureException$member = function(){
  return ObjectNotClosureException$Dart.ObjectNotClosureException$$Factory();
}
;
ExceptionHelper$Dart.createObjectNotClosureException$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ExceptionHelper$Dart.createObjectNotClosureException$member();
}
;
function native_ExceptionHelper_createObjectNotClosureException(){
  return ExceptionHelper$Dart.createObjectNotClosureException$member();
}

ExceptionHelper$Dart.createObjectNotClosureException$getter = function createObjectNotClosureException$getter(){
  return ExceptionHelper$Dart.createObjectNotClosureException$named;
}
;
ExceptionHelper$Dart.createNoSuchMethodException$member = function(receiver, functionName, arguments_0){
  return NoSuchMethodException$Dart.NoSuchMethodException$$Factory(receiver, functionName, arguments_0);
}
;
ExceptionHelper$Dart.createNoSuchMethodException$named = function($n, $o, receiver, functionName, arguments_0){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 3)
    $nsme();
  return ExceptionHelper$Dart.createNoSuchMethodException$member(receiver, functionName, arguments_0);
}
;
function native_ExceptionHelper_createNoSuchMethodException(receiver, functionName, arguments_0){
  return ExceptionHelper$Dart.createNoSuchMethodException$member(receiver, functionName, arguments_0);
}

ExceptionHelper$Dart.createNoSuchMethodException$getter = function createNoSuchMethodException$getter(){
  return ExceptionHelper$Dart.createNoSuchMethodException$named;
}
;
ExceptionHelper$Dart.createTypeError$member = function(srcType, dstType){
  return TypeError$Dart.TypeError$$Factory(srcType, dstType);
}
;
ExceptionHelper$Dart.createTypeError$named = function($n, $o, srcType, dstType){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return ExceptionHelper$Dart.createTypeError$member(srcType, dstType);
}
;
function native_ExceptionHelper_createTypeError(srcType, dstType){
  return ExceptionHelper$Dart.createTypeError$member(srcType, dstType);
}

ExceptionHelper$Dart.createTypeError$getter = function createTypeError$getter(){
  return ExceptionHelper$Dart.createTypeError$named;
}
;
ExceptionHelper$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
ExceptionHelper$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
ExceptionHelper$Dart.ExceptionHelper$$Factory = function(){
  var tmp$0 = new ExceptionHelper$Dart;
  tmp$0.$typeInfo = ExceptionHelper$Dart.$lookupRTT();
  ExceptionHelper$Dart.$Initializer.call(tmp$0);
  ExceptionHelper$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function _CoreJsUtil$Dart(){
}

_CoreJsUtil$Dart.$lookupRTT = function(){
  return RTT.create($cls('_CoreJsUtil$Dart'));
}
;
_CoreJsUtil$Dart.$addTo = function(target){
  var rtt = _CoreJsUtil$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
_CoreJsUtil$Dart.prototype.$implements$_CoreJsUtil$Dart = 1;
_CoreJsUtil$Dart.prototype.$implements$Object$Dart = 1;
_CoreJsUtil$Dart._newMapLiteral$$member_ = function(){
  return LinkedHashMapImplementation$Dart.LinkedHashMapImplementation$$Factory(LinkedHashMapImplementation$Dart.$lookupRTT());
}
;
_CoreJsUtil$Dart._newMapLiteral$$named_ = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return _CoreJsUtil$Dart._newMapLiteral$$member_();
}
;
function native__CoreJsUtil__newMapLiteral(){
  return _CoreJsUtil$Dart._newMapLiteral$$member_();
}

_CoreJsUtil$Dart._newMapLiteral$$getter_ = function _newMapLiteral$$getter_(){
  return _CoreJsUtil$Dart._newMapLiteral$$named_;
}
;
_CoreJsUtil$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
_CoreJsUtil$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
_CoreJsUtil$Dart._CoreJsUtil$$Factory = function(){
  var tmp$0 = new _CoreJsUtil$Dart;
  tmp$0.$typeInfo = _CoreJsUtil$Dart.$lookupRTT();
  _CoreJsUtil$Dart.$Initializer.call(tmp$0);
  _CoreJsUtil$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function DateImplementation$Dart(){
}

DateImplementation$Dart.$lookupRTT = function(){
  return RTT.create($cls('DateImplementation$Dart'), DateImplementation$Dart.$RTTimplements);
}
;
DateImplementation$Dart.$RTTimplements = function(rtt){
  DateImplementation$Dart.$addTo(rtt);
}
;
DateImplementation$Dart.$addTo = function(target){
  var rtt = DateImplementation$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  Date$Dart.$addTo(target);
}
;
DateImplementation$Dart.prototype.$implements$DateImplementation$Dart = 1;
DateImplementation$Dart.prototype.$implements$Date$Dart = 1;
DateImplementation$Dart.prototype.$implements$Comparable$Dart = 1;
DateImplementation$Dart.prototype.$implements$Object$Dart = 1;
DateImplementation$Dart.DateImplementation$$Factory = function(years, month, day, hours, minutes, seconds, milliseconds){
  return DateImplementation$Dart.DateImplementation$withTimeZone$18$Factory(years, month, day, hours, minutes, seconds, milliseconds, TimeZoneImplementation$Dart.TimeZoneImplementation$local$22$Factory());
}
;
DateImplementation$Dart.withTimeZone$Constructor = function(years, month, day, hours, minutes, seconds, milliseconds, timeZone){
  Object.$Constructor.call(this);
}
;
DateImplementation$Dart.withTimeZone$Initializer = function(years, month, day, hours, minutes, seconds, milliseconds, timeZone){
  Object.$Initializer.call(this);
  this.timeZone$field = timeZone;
  this.value$field = DateImplementation$Dart._valueFromDecomposed$$member_(years, month, day, hours, minutes, seconds, milliseconds, timeZone.isUtc$getter());
}
;
DateImplementation$Dart.DateImplementation$withTimeZone$18$Factory = function(years, month, day, hours, minutes, seconds, milliseconds, timeZone){
  var tmp$0 = new DateImplementation$Dart;
  tmp$0.$typeInfo = DateImplementation$Dart.$lookupRTT();
  DateImplementation$Dart.withTimeZone$Initializer.call(tmp$0, years, month, day, hours, minutes, seconds, milliseconds, timeZone);
  DateImplementation$Dart.withTimeZone$Constructor.call(tmp$0, years, month, day, hours, minutes, seconds, milliseconds, timeZone);
  return tmp$0;
}
;
DateImplementation$Dart.now$Constructor = function(){
  Object.$Constructor.call(this);
}
;
DateImplementation$Dart.now$Initializer = function(){
  Object.$Initializer.call(this);
  this.timeZone$field = TimeZoneImplementation$Dart.TimeZoneImplementation$local$22$Factory();
  this.value$field = DateImplementation$Dart._now$$member_();
}
;
DateImplementation$Dart.DateImplementation$now$18$Factory = function(){
  var tmp$0 = new DateImplementation$Dart;
  tmp$0.$typeInfo = DateImplementation$Dart.$lookupRTT();
  DateImplementation$Dart.now$Initializer.call(tmp$0);
  DateImplementation$Dart.now$Constructor.call(tmp$0);
  return tmp$0;
}
;
DateImplementation$Dart.fromString$Constructor = function(formattedString){
  Object.$Constructor.call(this);
}
;
DateImplementation$Dart.fromString$Initializer = function(formattedString){
  Object.$Initializer.call(this);
  this.timeZone$field = TimeZoneImplementation$Dart.TimeZoneImplementation$local$22$Factory();
  this.value$field = DateImplementation$Dart._valueFromString$$member_(formattedString);
}
;
DateImplementation$Dart.DateImplementation$fromString$18$Factory = function(formattedString){
  var tmp$0 = new DateImplementation$Dart;
  tmp$0.$typeInfo = DateImplementation$Dart.$lookupRTT();
  DateImplementation$Dart.fromString$Initializer.call(tmp$0, formattedString);
  DateImplementation$Dart.fromString$Constructor.call(tmp$0, formattedString);
  return tmp$0;
}
;
DateImplementation$Dart.fromEpoch$Constructor = function(value, timeZone){
  Object.$Constructor.call(this);
}
;
DateImplementation$Dart.fromEpoch$Initializer = function(value, timeZone){
  Object.$Initializer.call(this);
  this.value$field = value;
  this.timeZone$field = timeZone;
}
;
DateImplementation$Dart.DateImplementation$fromEpoch$18$Factory = function(value, timeZone){
  var tmp$0 = new DateImplementation$Dart;
  tmp$0.$typeInfo = DateImplementation$Dart.$lookupRTT();
  DateImplementation$Dart.fromEpoch$Initializer.call(tmp$0, value, timeZone);
  DateImplementation$Dart.fromEpoch$Constructor.call(tmp$0, value, timeZone);
  return tmp$0;
}
;
DateImplementation$Dart.prototype.EQ$operator = function(other){
  var tmp$0;
  if (!!!(tmp$0 = other , tmp$0 != null && tmp$0.$implements$DateImplementation$Dart)) {
    return false;
  }
  return EQ$operator(this.value$getter(), other.value$getter()) && EQ$operator(this.timeZone$getter(), other.timeZone$getter());
}
;
DateImplementation$Dart.prototype.compareTo$member = function(other){
  return this.value$getter().compareTo$named(1, $noargs, other.value$getter());
}
;
DateImplementation$Dart.prototype.compareTo$named = function($n, $o, other){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return DateImplementation$Dart.prototype.compareTo$member.call(this, other);
}
;
DateImplementation$Dart.prototype.compareTo$getter = function compareTo$getter(){
  return $bind(DateImplementation$Dart.prototype.compareTo$named, this);
}
;
DateImplementation$Dart.prototype.changeTimeZone$member = function(targetTimeZone){
  if (EQ$operator(targetTimeZone, $Dart$Null)) {
    targetTimeZone = TimeZoneImplementation$Dart.TimeZoneImplementation$local$22$Factory();
  }
  return DateImplementation$Dart.DateImplementation$fromEpoch$18$Factory(this.value$getter(), targetTimeZone);
}
;
DateImplementation$Dart.prototype.changeTimeZone$named = function($n, $o, targetTimeZone){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return DateImplementation$Dart.prototype.changeTimeZone$member.call(this, targetTimeZone);
}
;
DateImplementation$Dart.prototype.changeTimeZone$getter = function changeTimeZone$getter(){
  return $bind(DateImplementation$Dart.prototype.changeTimeZone$named, this);
}
;
DateImplementation$Dart.prototype.year$named = function(){
  return this.year$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.year$getter = function(){
  return this._getYear$$member_(this.value$getter(), this.isUtc$member());
}
;
DateImplementation$Dart.prototype.month$named = function(){
  return this.month$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.month$getter = function(){
  return this._getMonth$$member_(this.value$getter(), this.isUtc$member());
}
;
DateImplementation$Dart.prototype.day$named = function(){
  return this.day$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.day$getter = function(){
  return this._getDay$$member_(this.value$getter(), this.isUtc$member());
}
;
DateImplementation$Dart.prototype.hours$named = function(){
  return this.hours$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.hours$getter = function(){
  return this._getHours$$member_(this.value$getter(), this.isUtc$member());
}
;
DateImplementation$Dart.prototype.minutes$named = function(){
  return this.minutes$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.minutes$getter = function(){
  return this._getMinutes$$member_(this.value$getter(), this.isUtc$member());
}
;
DateImplementation$Dart.prototype.seconds$named = function(){
  return this.seconds$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.seconds$getter = function(){
  return this._getSeconds$$member_(this.value$getter(), this.isUtc$member());
}
;
DateImplementation$Dart.prototype.milliseconds$named = function(){
  return this.milliseconds$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.milliseconds$getter = function(){
  return this._getMilliseconds$$member_(this.value$getter(), this.isUtc$member());
}
;
DateImplementation$Dart.prototype.weekday$named = function(){
  return this.weekday$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.weekday$getter = function(){
  var unixTimeStart = DateImplementation$Dart.DateImplementation$withTimeZone$18$Factory(1970, 1, 1, 0, 0, 0, 0, this.timeZone$getter());
  var msSince1970 = this.difference$named(1, $noargs, unixTimeStart).inMilliseconds$getter();
  if (LT$operator(this.hours$getter(), 2)) {
    msSince1970 = ADD$operator(msSince1970, MUL$operator(2, Duration$Dart.MILLISECONDS_PER_HOUR$getter()));
  }
  var daysSince1970 = DIV$operator(msSince1970, Duration$Dart.MILLISECONDS_PER_DAY$getter()).floor$named(0, $noargs).toInt$named(0, $noargs);
  return MOD$operator(ADD$operator(daysSince1970, Date$Dart.THU$getter()), Date$Dart.DAYS_IN_WEEK$getter());
}
;
DateImplementation$Dart.prototype.isLocalTime$member = function(){
  return !this.timeZone$getter().isUtc$getter();
}
;
DateImplementation$Dart.prototype.isLocalTime$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return DateImplementation$Dart.prototype.isLocalTime$member.call(this);
}
;
DateImplementation$Dart.prototype.isLocalTime$getter = function isLocalTime$getter(){
  return $bind(DateImplementation$Dart.prototype.isLocalTime$named, this);
}
;
DateImplementation$Dart.prototype.isUtc$member = function(){
  return this.timeZone$getter().isUtc$getter();
}
;
DateImplementation$Dart.prototype.isUtc$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return DateImplementation$Dart.prototype.isUtc$member.call(this);
}
;
DateImplementation$Dart.prototype.isUtc$getter = function isUtc$getter(){
  return $bind(DateImplementation$Dart.prototype.isUtc$named, this);
}
;
function DateImplementation$Dart$toString$c0$threeDigits$23_8_2$Hoisted(n){
  if (GTE$operator(n, 100)) {
    return '' + $toString(n) + '';
  }
  if (GT$operator(n, 10)) {
    return '0' + $toString(n) + '';
  }
  return '00' + $toString(n) + '';
}

function DateImplementation$Dart$toString$c0$threeDigits$23_8_2$Hoisted$named($n, $o, n){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return DateImplementation$Dart$toString$c0$threeDigits$23_8_2$Hoisted(n);
}

function DateImplementation$Dart$toString$c1$twoDigits$23_8_2$Hoisted(n){
  if (GTE$operator(n, 10)) {
    return '' + $toString(n) + '';
  }
  return '0' + $toString(n) + '';
}

function DateImplementation$Dart$toString$c1$twoDigits$23_8_2$Hoisted$named($n, $o, n){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return DateImplementation$Dart$toString$c1$twoDigits$23_8_2$Hoisted(n);
}

DateImplementation$Dart.prototype.toString$member = function(){
  var threeDigits = $bind(DateImplementation$Dart$toString$c0$threeDigits$23_8_2$Hoisted$named, $Dart$Null);
  var twoDigits = $bind(DateImplementation$Dart$toString$c1$twoDigits$23_8_2$Hoisted$named, $Dart$Null);
  var m = twoDigits(1, $noargs, this.month$getter());
  var d = twoDigits(1, $noargs, this.day$getter());
  var h = twoDigits(1, $noargs, this.hours$getter());
  var min = twoDigits(1, $noargs, this.minutes$getter());
  var sec = twoDigits(1, $noargs, this.seconds$getter());
  var ms = threeDigits(1, $noargs, this.milliseconds$getter());
  if (this.timeZone$getter().isUtc$getter()) {
    return '' + $toString(this.year$getter()) + '-' + $toString(m) + '-' + $toString(d) + ' ' + $toString(h) + ':' + $toString(min) + ':' + $toString(sec) + '.' + $toString(ms) + 'Z';
  }
   else {
    return '' + $toString(this.year$getter()) + '-' + $toString(m) + '-' + $toString(d) + ' ' + $toString(h) + ':' + $toString(min) + ':' + $toString(sec) + '.' + $toString(ms) + '';
  }
}
;
DateImplementation$Dart.prototype.toString$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return DateImplementation$Dart.prototype.toString$member.call(this);
}
;
DateImplementation$Dart.prototype.toString$getter = function toString$getter(){
  return $bind(DateImplementation$Dart.prototype.toString$named, this);
}
;
DateImplementation$Dart.prototype.add$member = function(duration){
  return DateImplementation$Dart.DateImplementation$fromEpoch$18$Factory(ADD$operator(this.value$getter(), duration.inMilliseconds$getter()), this.timeZone$getter());
}
;
DateImplementation$Dart.prototype.add$named = function($n, $o, duration){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return DateImplementation$Dart.prototype.add$member.call(this, duration);
}
;
DateImplementation$Dart.prototype.add$getter = function add$getter(){
  return $bind(DateImplementation$Dart.prototype.add$named, this);
}
;
DateImplementation$Dart.prototype.subtract$member = function(duration){
  return DateImplementation$Dart.DateImplementation$fromEpoch$18$Factory(SUB$operator(this.value$getter(), duration.inMilliseconds$getter()), this.timeZone$getter());
}
;
DateImplementation$Dart.prototype.subtract$named = function($n, $o, duration){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return DateImplementation$Dart.prototype.subtract$member.call(this, duration);
}
;
DateImplementation$Dart.prototype.subtract$getter = function subtract$getter(){
  return $bind(DateImplementation$Dart.prototype.subtract$named, this);
}
;
DateImplementation$Dart.prototype.difference$member = function(other){
  return DurationImplementation$Dart.DurationImplementation$$Factory(0, 0, 0, 0, SUB$operator(this.value$getter(), other.value$getter()));
}
;
DateImplementation$Dart.prototype.difference$named = function($n, $o, other){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return DateImplementation$Dart.prototype.difference$member.call(this, other);
}
;
DateImplementation$Dart.prototype.difference$getter = function difference$getter(){
  return $bind(DateImplementation$Dart.prototype.difference$named, this);
}
;
DateImplementation$Dart.prototype.value$named = function(){
  return this.value$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.value$getter = function(){
  return this.value$field;
}
;
DateImplementation$Dart.prototype.timeZone$named = function(){
  return this.timeZone$getter().apply(this, arguments);
}
;
DateImplementation$Dart.prototype.timeZone$getter = function(){
  return this.timeZone$field;
}
;
DateImplementation$Dart._valueFromDecomposed$$member_ = function(years, month, day, hours, minutes, seconds, milliseconds, isUtc){
  return native_DateImplementation__valueFromDecomposed(years, month, day, hours, minutes, seconds, milliseconds, isUtc);
}
;
DateImplementation$Dart._valueFromDecomposed$$named_ = function($n, $o, years, month, day, hours, minutes, seconds, milliseconds, isUtc){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 8)
    $nsme();
  return DateImplementation$Dart._valueFromDecomposed$$member_(years, month, day, hours, minutes, seconds, milliseconds, isUtc);
}
;
DateImplementation$Dart._valueFromDecomposed$$getter_ = function _valueFromDecomposed$$getter_(){
  return DateImplementation$Dart._valueFromDecomposed$$named_;
}
;
DateImplementation$Dart._valueFromString$$member_ = function(str){
  return native_DateImplementation__valueFromString(str);
}
;
DateImplementation$Dart._valueFromString$$named_ = function($n, $o, str){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return DateImplementation$Dart._valueFromString$$member_(str);
}
;
DateImplementation$Dart._valueFromString$$getter_ = function _valueFromString$$getter_(){
  return DateImplementation$Dart._valueFromString$$named_;
}
;
DateImplementation$Dart._now$$member_ = function(){
  return native_DateImplementation__now();
}
;
DateImplementation$Dart._now$$named_ = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return DateImplementation$Dart._now$$member_();
}
;
DateImplementation$Dart._now$$getter_ = function _now$$getter_(){
  return DateImplementation$Dart._now$$named_;
}
;
DateImplementation$Dart.prototype._getYear$$member_ = function(value, isUtc){
  return native_DateImplementation__getYear.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getYear$$named_ = function($n, $o, value, isUtc){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return DateImplementation$Dart.prototype._getYear$$member_.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getYear$$getter_ = function _getYear$$getter_(){
  return $bind(DateImplementation$Dart.prototype._getYear$$named_, this);
}
;
DateImplementation$Dart.prototype._getMonth$$member_ = function(value, isUtc){
  return native_DateImplementation__getMonth.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getMonth$$named_ = function($n, $o, value, isUtc){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return DateImplementation$Dart.prototype._getMonth$$member_.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getMonth$$getter_ = function _getMonth$$getter_(){
  return $bind(DateImplementation$Dart.prototype._getMonth$$named_, this);
}
;
DateImplementation$Dart.prototype._getDay$$member_ = function(value, isUtc){
  return native_DateImplementation__getDay.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getDay$$named_ = function($n, $o, value, isUtc){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return DateImplementation$Dart.prototype._getDay$$member_.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getDay$$getter_ = function _getDay$$getter_(){
  return $bind(DateImplementation$Dart.prototype._getDay$$named_, this);
}
;
DateImplementation$Dart.prototype._getHours$$member_ = function(value, isUtc){
  return native_DateImplementation__getHours.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getHours$$named_ = function($n, $o, value, isUtc){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return DateImplementation$Dart.prototype._getHours$$member_.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getHours$$getter_ = function _getHours$$getter_(){
  return $bind(DateImplementation$Dart.prototype._getHours$$named_, this);
}
;
DateImplementation$Dart.prototype._getMinutes$$member_ = function(value, isUtc){
  return native_DateImplementation__getMinutes.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getMinutes$$named_ = function($n, $o, value, isUtc){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return DateImplementation$Dart.prototype._getMinutes$$member_.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getMinutes$$getter_ = function _getMinutes$$getter_(){
  return $bind(DateImplementation$Dart.prototype._getMinutes$$named_, this);
}
;
DateImplementation$Dart.prototype._getSeconds$$member_ = function(value, isUtc){
  return native_DateImplementation__getSeconds.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getSeconds$$named_ = function($n, $o, value, isUtc){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return DateImplementation$Dart.prototype._getSeconds$$member_.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getSeconds$$getter_ = function _getSeconds$$getter_(){
  return $bind(DateImplementation$Dart.prototype._getSeconds$$named_, this);
}
;
DateImplementation$Dart.prototype._getMilliseconds$$member_ = function(value, isUtc){
  return native_DateImplementation__getMilliseconds.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getMilliseconds$$named_ = function($n, $o, value, isUtc){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return DateImplementation$Dart.prototype._getMilliseconds$$member_.call(this, value, isUtc);
}
;
DateImplementation$Dart.prototype._getMilliseconds$$getter_ = function _getMilliseconds$$getter_(){
  return $bind(DateImplementation$Dart.prototype._getMilliseconds$$named_, this);
}
;
DateImplementation$Dart.prototype.$const_id = function(){
  return $cls('DateImplementation$Dart') + (':' + $dart_const_id(this.year$field)) + (':' + $dart_const_id(this.month$field)) + (':' + $dart_const_id(this.day$field)) + (':' + $dart_const_id(this.hours$field)) + (':' + $dart_const_id(this.minutes$field)) + (':' + $dart_const_id(this.seconds$field)) + (':' + $dart_const_id(this.milliseconds$field)) + (':' + $dart_const_id(this.weekday$field)) + (':' + $dart_const_id(this.value$field)) + (':' + $dart_const_id(this.timeZone$field));
}
;
function SendPortImpl$Dart(){
}

SendPortImpl$Dart.$lookupRTT = function(){
  return RTT.create($cls('SendPortImpl$Dart'), SendPortImpl$Dart.$RTTimplements);
}
;
SendPortImpl$Dart.$RTTimplements = function(rtt){
  SendPortImpl$Dart.$addTo(rtt);
}
;
SendPortImpl$Dart.$addTo = function(target){
  var rtt = SendPortImpl$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  SendPort$Dart.$addTo(target);
}
;
SendPortImpl$Dart.prototype.$implements$SendPortImpl$Dart = 1;
SendPortImpl$Dart.prototype.$implements$SendPort$Dart = 1;
SendPortImpl$Dart.prototype.$implements$Hashable$Dart = 1;
SendPortImpl$Dart.prototype.$implements$Object$Dart = 1;
SendPortImpl$Dart.$Constructor = function(_workerId, _isolateId, _receivePortId){
  Object.$Constructor.call(this);
}
;
SendPortImpl$Dart.$Initializer = function(_workerId, _isolateId, _receivePortId){
  Object.$Initializer.call(this);
  this._workerId$$field_ = _workerId;
  this._isolateId$$field_ = _isolateId;
  this._receivePortId$$field_ = _receivePortId;
}
;
SendPortImpl$Dart.SendPortImpl$$Factory = function(_workerId, _isolateId, _receivePortId){
  var tmp$0 = new SendPortImpl$Dart;
  tmp$0.$typeInfo = SendPortImpl$Dart.$lookupRTT();
  SendPortImpl$Dart.$Initializer.call(tmp$0, _workerId, _isolateId, _receivePortId);
  SendPortImpl$Dart.$Constructor.call(tmp$0, _workerId, _isolateId, _receivePortId);
  return tmp$0;
}
;
SendPortImpl$Dart.prototype.send$member = function(message, replyTo){
  if (PromiseQueue$Dart.isEmpty$member()) {
    this._sendNow$$named_(2, $noargs, message, replyTo);
  }
   else {
    this._enqueueSend$$member_(message, replyTo);
  }
}
;
SendPortImpl$Dart.prototype.send$named = function($n, $o, message, replyTo){
  var seen = 0;
  var def = 0;
  switch ($n) {
    case 1:
      replyTo = $o.replyTo?(++seen , $o.replyTo):(++def , $Dart$Null);
  }
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return SendPortImpl$Dart.prototype.send$member.call(this, message, replyTo);
}
;
SendPortImpl$Dart.prototype.send$getter = function send$getter(){
  return $bind(SendPortImpl$Dart.prototype.send$named, this);
}
;
function SendPortImpl$Dart$_enqueueSend$c0$17_17$Hoisted(dartc_scp$0, ignored){
  this._sendNow$$named_(2, $noargs, dartc_scp$0.message, dartc_scp$0.replyTo);
}

function SendPortImpl$Dart$_enqueueSend$c0$17_17$Hoisted$named($s0, $n, $o, ignored){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return SendPortImpl$Dart$_enqueueSend$c0$17_17$Hoisted.call(this, $s0, ignored);
}

SendPortImpl$Dart.prototype._enqueueSend$$member_ = function(message, replyTo){
  var dartc_scp$0 = {message:message, replyTo:replyTo};
  PromiseQueue$Dart.enqueue$member($intern(RTT.setTypeInfo([], Array.$lookupRTT()), [''])).then$named(1, $noargs, $bind(SendPortImpl$Dart$_enqueueSend$c0$17_17$Hoisted$named, this, dartc_scp$0));
}
;
SendPortImpl$Dart.prototype._enqueueSend$$named_ = function($n, $o, message, replyTo){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return SendPortImpl$Dart.prototype._enqueueSend$$member_.call(this, message, replyTo);
}
;
SendPortImpl$Dart.prototype._enqueueSend$$getter_ = function _enqueueSend$$getter_(){
  return $bind(SendPortImpl$Dart.prototype._enqueueSend$$named_, this);
}
;
SendPortImpl$Dart.prototype._sendNow$$member_ = function(message, replyTo){
  return native_SendPortImpl__sendNow.call(this, message, replyTo);
}
;
SendPortImpl$Dart.prototype._sendNow$$named_ = function($n, $o, message, replyTo){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return SendPortImpl$Dart.prototype._sendNow$$member_.call(this, message, replyTo);
}
;
SendPortImpl$Dart.prototype._sendNow$$getter_ = function _sendNow$$getter_(){
  return $bind(SendPortImpl$Dart.prototype._sendNow$$named_, this);
}
;
SendPortImpl$Dart.prototype.call$member = function(message){
  var result = ReceivePortSingleShotImpl$Dart.ReceivePortSingleShotImpl$$Factory();
  this.send$named(2, $noargs, message, result.toSendPort$named(0, $noargs));
  return result;
}
;
SendPortImpl$Dart.prototype.call$named = function($n, $o, message){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return SendPortImpl$Dart.prototype.call$member.call(this, message);
}
;
SendPortImpl$Dart.prototype.call$getter = function call$getter(){
  return $bind(SendPortImpl$Dart.prototype.call$named, this);
}
;
SendPortImpl$Dart.prototype._callNow$$member_ = function(message){
  var result = ReceivePortSingleShotImpl$Dart.ReceivePortSingleShotImpl$$Factory();
  this._sendNow$$named_(2, $noargs, message, result.toSendPort$named(0, $noargs));
  return result;
}
;
SendPortImpl$Dart.prototype._callNow$$named_ = function($n, $o, message){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return SendPortImpl$Dart.prototype._callNow$$member_.call(this, message);
}
;
SendPortImpl$Dart.prototype._callNow$$getter_ = function _callNow$$getter_(){
  return $bind(SendPortImpl$Dart.prototype._callNow$$named_, this);
}
;
SendPortImpl$Dart.prototype.EQ$operator = function(other){
  var tmp$0;
  return !!(tmp$0 = other , tmp$0 != null && tmp$0.$implements$SendPortImpl$Dart) && EQ$operator(this._workerId$$getter_(), other._workerId$$getter_()) && EQ$operator(this._isolateId$$getter_(), other._isolateId$$getter_()) && EQ$operator(this._receivePortId$$getter_(), other._receivePortId$$getter_());
}
;
SendPortImpl$Dart.prototype.hashCode$member = function(){
  return BIT_XOR$operator(BIT_XOR$operator(SHL$operator(this._workerId$$getter_(), 16), SHL$operator(this._isolateId$$getter_(), 8)), this._receivePortId$$getter_());
}
;
SendPortImpl$Dart.prototype.hashCode$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return SendPortImpl$Dart.prototype.hashCode$member.call(this);
}
;
SendPortImpl$Dart.prototype.hashCode$getter = function hashCode$getter(){
  return $bind(SendPortImpl$Dart.prototype.hashCode$named, this);
}
;
SendPortImpl$Dart.prototype._receivePortId$$named_ = function(){
  return this._receivePortId$$getter_().apply(this, arguments);
}
;
SendPortImpl$Dart.prototype._receivePortId$$getter_ = function(){
  return this._receivePortId$$field_;
}
;
SendPortImpl$Dart.prototype._isolateId$$named_ = function(){
  return this._isolateId$$getter_().apply(this, arguments);
}
;
SendPortImpl$Dart.prototype._isolateId$$getter_ = function(){
  return this._isolateId$$field_;
}
;
SendPortImpl$Dart.prototype._workerId$$named_ = function(){
  return this._workerId$$getter_().apply(this, arguments);
}
;
SendPortImpl$Dart.prototype._workerId$$getter_ = function(){
  return this._workerId$$field_;
}
;
SendPortImpl$Dart._create$$member_ = function(workerId, isolateId, receivePortId){
  return SendPortImpl$Dart.SendPortImpl$$Factory(workerId, isolateId, receivePortId);
}
;
SendPortImpl$Dart._create$$named_ = function($n, $o, workerId, isolateId, receivePortId){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 3)
    $nsme();
  return SendPortImpl$Dart._create$$member_(workerId, isolateId, receivePortId);
}
;
function native_SendPortImpl__create(workerId, isolateId, receivePortId){
  return SendPortImpl$Dart._create$$member_(workerId, isolateId, receivePortId);
}

SendPortImpl$Dart._create$$getter_ = function _create$$getter_(){
  return SendPortImpl$Dart._create$$named_;
}
;
SendPortImpl$Dart._getReceivePortId$$member_ = function(port){
  return port._receivePortId$$getter_();
}
;
SendPortImpl$Dart._getReceivePortId$$named_ = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return SendPortImpl$Dart._getReceivePortId$$member_(port);
}
;
function native_SendPortImpl__getReceivePortId(port){
  return SendPortImpl$Dart._getReceivePortId$$member_(port);
}

SendPortImpl$Dart._getReceivePortId$$getter_ = function _getReceivePortId$$getter_(){
  return SendPortImpl$Dart._getReceivePortId$$named_;
}
;
SendPortImpl$Dart._getIsolateId$$member_ = function(port){
  return port._isolateId$$getter_();
}
;
SendPortImpl$Dart._getIsolateId$$named_ = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return SendPortImpl$Dart._getIsolateId$$member_(port);
}
;
function native_SendPortImpl__getIsolateId(port){
  return SendPortImpl$Dart._getIsolateId$$member_(port);
}

SendPortImpl$Dart._getIsolateId$$getter_ = function _getIsolateId$$getter_(){
  return SendPortImpl$Dart._getIsolateId$$named_;
}
;
SendPortImpl$Dart._getWorkerId$$member_ = function(port){
  return port._workerId$$getter_();
}
;
SendPortImpl$Dart._getWorkerId$$named_ = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return SendPortImpl$Dart._getWorkerId$$member_(port);
}
;
function native_SendPortImpl__getWorkerId(port){
  return SendPortImpl$Dart._getWorkerId$$member_(port);
}

SendPortImpl$Dart._getWorkerId$$getter_ = function _getWorkerId$$getter_(){
  return SendPortImpl$Dart._getWorkerId$$named_;
}
;
SendPortImpl$Dart.prototype.$const_id = function(){
  return $cls('SendPortImpl$Dart') + (':' + $dart_const_id(this._receivePortId$$field_)) + (':' + $dart_const_id(this._isolateId$$field_)) + (':' + $dart_const_id(this._workerId$$field_));
}
;
function ReceivePortFactory$Dart(){
}

ReceivePortFactory$Dart.$lookupRTT = function(){
  return RTT.create($cls('ReceivePortFactory$Dart'));
}
;
ReceivePortFactory$Dart.$addTo = function(target){
  var rtt = ReceivePortFactory$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
ReceivePortFactory$Dart.prototype.$implements$ReceivePortFactory$Dart = 1;
ReceivePortFactory$Dart.prototype.$implements$Object$Dart = 1;
ReceivePortFactory$Dart.ReceivePort$$Factory = function(){
  return ReceivePortImpl$Dart.ReceivePortImpl$$Factory();
}
;
ReceivePortFactory$Dart.ReceivePort$singleShot$11$Factory = function(){
  return ReceivePortSingleShotImpl$Dart.ReceivePortSingleShotImpl$$Factory();
}
;
function ReceivePortImpl$Dart(){
}

ReceivePortImpl$Dart.$lookupRTT = function(){
  return RTT.create($cls('ReceivePortImpl$Dart'), ReceivePortImpl$Dart.$RTTimplements);
}
;
ReceivePortImpl$Dart.$RTTimplements = function(rtt){
  ReceivePortImpl$Dart.$addTo(rtt);
}
;
ReceivePortImpl$Dart.$addTo = function(target){
  var rtt = ReceivePortImpl$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  ReceivePort$Dart.$addTo(target);
}
;
ReceivePortImpl$Dart.prototype.$implements$ReceivePortImpl$Dart = 1;
ReceivePortImpl$Dart.prototype.$implements$ReceivePort$Dart = 1;
ReceivePortImpl$Dart.prototype.$implements$Object$Dart = 1;
ReceivePortImpl$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
  this._register$$member_(this._id$$getter_());
}
;
ReceivePortImpl$Dart.$Initializer = function(){
  var tmp$1, tmp$0;
  Object.$Initializer.call(this);
  this._callback$$field_ = $Dart$Null;
  this._id$$field_ = (tmp$0 = ReceivePortImpl$Dart._nextFreeId$$getter_() , (ReceivePortImpl$Dart._nextFreeId$$setter_(tmp$1 = ADD$operator(tmp$0, 1)) , tmp$1 , tmp$0));
}
;
ReceivePortImpl$Dart.ReceivePortImpl$$Factory = function(){
  var tmp$0 = new ReceivePortImpl$Dart;
  tmp$0.$typeInfo = ReceivePortImpl$Dart.$lookupRTT();
  ReceivePortImpl$Dart.$Initializer.call(tmp$0);
  ReceivePortImpl$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
ReceivePortImpl$Dart.prototype.receive$member = function(onMessage){
  var tmp$0;
  this._callback$$setter_(tmp$0 = onMessage) , tmp$0;
}
;
ReceivePortImpl$Dart.prototype.receive$named = function($n, $o, onMessage){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return ReceivePortImpl$Dart.prototype.receive$member.call(this, onMessage);
}
;
ReceivePortImpl$Dart.prototype.receive$getter = function receive$getter(){
  return $bind(ReceivePortImpl$Dart.prototype.receive$named, this);
}
;
ReceivePortImpl$Dart.prototype.close$member = function(){
  var tmp$0;
  this._callback$$setter_(tmp$0 = $Dart$Null) , tmp$0;
  this._unregister$$member_(this._id$$getter_());
}
;
ReceivePortImpl$Dart.prototype.close$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ReceivePortImpl$Dart.prototype.close$member.call(this);
}
;
ReceivePortImpl$Dart.prototype.close$getter = function close$getter(){
  return $bind(ReceivePortImpl$Dart.prototype.close$named, this);
}
;
ReceivePortImpl$Dart.prototype.toSendPort$member = function(){
  return this._toNewSendPort$$member_();
}
;
ReceivePortImpl$Dart.prototype.toSendPort$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ReceivePortImpl$Dart.prototype.toSendPort$member.call(this);
}
;
ReceivePortImpl$Dart.prototype.toSendPort$getter = function toSendPort$getter(){
  return $bind(ReceivePortImpl$Dart.prototype.toSendPort$named, this);
}
;
ReceivePortImpl$Dart.prototype._toNewSendPort$$member_ = function(){
  return SendPortImpl$Dart.SendPortImpl$$Factory(ReceivePortImpl$Dart._currentWorkerId$$member_(), ReceivePortImpl$Dart._currentIsolateId$$member_(), this._id$$getter_());
}
;
ReceivePortImpl$Dart.prototype._toNewSendPort$$named_ = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ReceivePortImpl$Dart.prototype._toNewSendPort$$member_.call(this);
}
;
ReceivePortImpl$Dart.prototype._toNewSendPort$$getter_ = function _toNewSendPort$$getter_(){
  return $bind(ReceivePortImpl$Dart.prototype._toNewSendPort$$named_, this);
}
;
ReceivePortImpl$Dart.prototype._id$$named_ = function(){
  return this._id$$getter_().apply(this, arguments);
}
;
ReceivePortImpl$Dart.prototype._id$$getter_ = function(){
  return this._id$$field_;
}
;
ReceivePortImpl$Dart.prototype._id$$setter_ = function(tmp$0){
  this._id$$field_ = tmp$0;
}
;
ReceivePortImpl$Dart.prototype._callback$$named_ = function(){
  return this._callback$$getter_().apply(this, arguments);
}
;
ReceivePortImpl$Dart.prototype._callback$$getter_ = function(){
  var tmp$0 = this._callback$$field_;
  var tmp$1 = static$initializing;
  if (tmp$0 === tmp$1)
    throw 'circular initialization';
  if (tmp$0 !== static$uninitialized)
    return tmp$0;
  this._callback$$field_ = tmp$1;
  var tmp$2 = $Dart$Null;
  this._callback$$field_ = tmp$2;
  return tmp$2;
}
;
ReceivePortImpl$Dart.prototype._callback$$setter_ = function(tmp$0){
  this._callback$$field_ = tmp$0;
}
;
ReceivePortImpl$Dart._nextFreeId$$named_ = function(){
  return ReceivePortImpl$Dart._nextFreeId$$getter_().apply(this, arguments);
}
;
ReceivePortImpl$Dart._nextFreeId$$getter_ = function(){
  return isolate$current.ReceivePortImpl$Dart_nextFreeId$$field_;
}
;
ReceivePortImpl$Dart._nextFreeId$$setter_ = function(tmp$0){
  isolate$current.ReceivePortImpl$Dart_nextFreeId$$field_ = tmp$0;
}
;
ReceivePortImpl$Dart.prototype._register$$member_ = function(id){
  return native_ReceivePortImpl__register.call(this, id);
}
;
ReceivePortImpl$Dart.prototype._register$$named_ = function($n, $o, id){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return ReceivePortImpl$Dart.prototype._register$$member_.call(this, id);
}
;
ReceivePortImpl$Dart.prototype._register$$getter_ = function _register$$getter_(){
  return $bind(ReceivePortImpl$Dart.prototype._register$$named_, this);
}
;
ReceivePortImpl$Dart.prototype._unregister$$member_ = function(id){
  return native_ReceivePortImpl__unregister.call(this, id);
}
;
ReceivePortImpl$Dart.prototype._unregister$$named_ = function($n, $o, id){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return ReceivePortImpl$Dart.prototype._unregister$$member_.call(this, id);
}
;
ReceivePortImpl$Dart.prototype._unregister$$getter_ = function _unregister$$getter_(){
  return $bind(ReceivePortImpl$Dart.prototype._unregister$$named_, this);
}
;
ReceivePortImpl$Dart._currentWorkerId$$member_ = function(){
  return native_ReceivePortImpl__currentWorkerId();
}
;
ReceivePortImpl$Dart._currentWorkerId$$named_ = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ReceivePortImpl$Dart._currentWorkerId$$member_();
}
;
ReceivePortImpl$Dart._currentWorkerId$$getter_ = function _currentWorkerId$$getter_(){
  return ReceivePortImpl$Dart._currentWorkerId$$named_;
}
;
ReceivePortImpl$Dart._currentIsolateId$$member_ = function(){
  return native_ReceivePortImpl__currentIsolateId();
}
;
ReceivePortImpl$Dart._currentIsolateId$$named_ = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ReceivePortImpl$Dart._currentIsolateId$$member_();
}
;
ReceivePortImpl$Dart._currentIsolateId$$getter_ = function _currentIsolateId$$getter_(){
  return ReceivePortImpl$Dart._currentIsolateId$$named_;
}
;
ReceivePortImpl$Dart._invokeCallback$$member_ = function(port, message, replyTo){
  if (port._callback$$getter_() != null) {
    port._callback$$getter_()(2, $noargs, message, replyTo);
  }
}
;
ReceivePortImpl$Dart._invokeCallback$$named_ = function($n, $o, port, message, replyTo){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 3)
    $nsme();
  return ReceivePortImpl$Dart._invokeCallback$$member_(port, message, replyTo);
}
;
function native_ReceivePortImpl__invokeCallback(port, message, replyTo){
  return ReceivePortImpl$Dart._invokeCallback$$member_(port, message, replyTo);
}

ReceivePortImpl$Dart._invokeCallback$$getter_ = function _invokeCallback$$getter_(){
  return ReceivePortImpl$Dart._invokeCallback$$named_;
}
;
ReceivePortImpl$Dart._getId$$member_ = function(port){
  return port._id$$getter_();
}
;
ReceivePortImpl$Dart._getId$$named_ = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return ReceivePortImpl$Dart._getId$$member_(port);
}
;
function native_ReceivePortImpl__getId(port){
  return ReceivePortImpl$Dart._getId$$member_(port);
}

ReceivePortImpl$Dart._getId$$getter_ = function _getId$$getter_(){
  return ReceivePortImpl$Dart._getId$$named_;
}
;
ReceivePortImpl$Dart._getCallback$$member_ = function(port){
  return port._callback$$getter_();
}
;
ReceivePortImpl$Dart._getCallback$$named_ = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return ReceivePortImpl$Dart._getCallback$$member_(port);
}
;
function native_ReceivePortImpl__getCallback(port){
  return ReceivePortImpl$Dart._getCallback$$member_(port);
}

ReceivePortImpl$Dart._getCallback$$getter_ = function _getCallback$$getter_(){
  return ReceivePortImpl$Dart._getCallback$$named_;
}
;
function ReceivePortSingleShotImpl$Dart(){
}

ReceivePortSingleShotImpl$Dart.$lookupRTT = function(){
  return RTT.create($cls('ReceivePortSingleShotImpl$Dart'), ReceivePortSingleShotImpl$Dart.$RTTimplements);
}
;
ReceivePortSingleShotImpl$Dart.$RTTimplements = function(rtt){
  ReceivePortSingleShotImpl$Dart.$addTo(rtt);
}
;
ReceivePortSingleShotImpl$Dart.$addTo = function(target){
  var rtt = ReceivePortSingleShotImpl$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  ReceivePort$Dart.$addTo(target);
}
;
ReceivePortSingleShotImpl$Dart.prototype.$implements$ReceivePortSingleShotImpl$Dart = 1;
ReceivePortSingleShotImpl$Dart.prototype.$implements$ReceivePort$Dart = 1;
ReceivePortSingleShotImpl$Dart.prototype.$implements$Object$Dart = 1;
ReceivePortSingleShotImpl$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
ReceivePortSingleShotImpl$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
  this._port$$field_ = ReceivePortImpl$Dart.ReceivePortImpl$$Factory();
}
;
ReceivePortSingleShotImpl$Dart.ReceivePortSingleShotImpl$$Factory = function(){
  var tmp$0 = new ReceivePortSingleShotImpl$Dart;
  tmp$0.$typeInfo = ReceivePortSingleShotImpl$Dart.$lookupRTT();
  ReceivePortSingleShotImpl$Dart.$Initializer.call(tmp$0);
  ReceivePortSingleShotImpl$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function ReceivePortSingleShotImpl$Dart$receive$c0$30_30$Hoisted(dartc_scp$0, message_0, replyTo_0){
  this._port$$getter_().close$named(0, $noargs);
  dartc_scp$0.callback(2, $noargs, message_0, replyTo_0);
}

function ReceivePortSingleShotImpl$Dart$receive$c0$30_30$Hoisted$named($s0, $n, $o, message, replyTo){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return ReceivePortSingleShotImpl$Dart$receive$c0$30_30$Hoisted.call(this, $s0, message, replyTo);
}

ReceivePortSingleShotImpl$Dart.prototype.receive$member = function(callback){
  var dartc_scp$0 = {callback:callback};
  this._port$$getter_().receive$named(1, $noargs, $bind(ReceivePortSingleShotImpl$Dart$receive$c0$30_30$Hoisted$named, this, dartc_scp$0));
}
;
ReceivePortSingleShotImpl$Dart.prototype.receive$named = function($n, $o, callback){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return ReceivePortSingleShotImpl$Dart.prototype.receive$member.call(this, callback);
}
;
ReceivePortSingleShotImpl$Dart.prototype.receive$getter = function receive$getter(){
  return $bind(ReceivePortSingleShotImpl$Dart.prototype.receive$named, this);
}
;
ReceivePortSingleShotImpl$Dart.prototype.close$member = function(){
  this._port$$getter_().close$named(0, $noargs);
}
;
ReceivePortSingleShotImpl$Dart.prototype.close$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ReceivePortSingleShotImpl$Dart.prototype.close$member.call(this);
}
;
ReceivePortSingleShotImpl$Dart.prototype.close$getter = function close$getter(){
  return $bind(ReceivePortSingleShotImpl$Dart.prototype.close$named, this);
}
;
ReceivePortSingleShotImpl$Dart.prototype.toSendPort$member = function(){
  return this._toNewSendPort$$member_();
}
;
ReceivePortSingleShotImpl$Dart.prototype.toSendPort$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ReceivePortSingleShotImpl$Dart.prototype.toSendPort$member.call(this);
}
;
ReceivePortSingleShotImpl$Dart.prototype.toSendPort$getter = function toSendPort$getter(){
  return $bind(ReceivePortSingleShotImpl$Dart.prototype.toSendPort$named, this);
}
;
ReceivePortSingleShotImpl$Dart.prototype._toNewSendPort$$member_ = function(){
  return this._port$$getter_()._toNewSendPort$$named_(0, $noargs);
}
;
ReceivePortSingleShotImpl$Dart.prototype._toNewSendPort$$named_ = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return ReceivePortSingleShotImpl$Dart.prototype._toNewSendPort$$member_.call(this);
}
;
ReceivePortSingleShotImpl$Dart.prototype._toNewSendPort$$getter_ = function _toNewSendPort$$getter_(){
  return $bind(ReceivePortSingleShotImpl$Dart.prototype._toNewSendPort$$named_, this);
}
;
ReceivePortSingleShotImpl$Dart.prototype._port$$named_ = function(){
  return this._port$$getter_().apply(this, arguments);
}
;
ReceivePortSingleShotImpl$Dart.prototype._port$$getter_ = function(){
  return this._port$$field_;
}
;
function IsolateNatives$Dart(){
}

IsolateNatives$Dart.$lookupRTT = function(){
  return RTT.create($cls('IsolateNatives$Dart'));
}
;
IsolateNatives$Dart.$addTo = function(target){
  var rtt = IsolateNatives$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
IsolateNatives$Dart.prototype.$implements$IsolateNatives$Dart = 1;
IsolateNatives$Dart.prototype.$implements$Object$Dart = 1;
function IsolateNatives$Dart$spawn$c0$19_19$Hoisted(dartc_scp$1, msg, replyPort){
  assert(EQ$operator(msg, _SPAWNED_SIGNAL$$getter_()));
  dartc_scp$1.result.complete$named(1, $noargs, replyPort);
}

function IsolateNatives$Dart$spawn$c0$19_19$Hoisted$named($s0, $n, $o, msg, replyPort){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return IsolateNatives$Dart$spawn$c0$19_19$Hoisted($s0, msg, replyPort);
}

IsolateNatives$Dart.spawn$member = function(isolate, isLight){
  var dartc_scp$1;
  dartc_scp$1 = {};
  dartc_scp$1.result = PromiseImpl$Dart.PromiseImpl$$Factory(PromiseImpl$Dart.$lookupRTT([SendPort$Dart.$lookupRTT()]));
  var port = ReceivePortFactory$Dart.ReceivePort$singleShot$11$Factory();
  port.receive$named(1, $noargs, $bind(IsolateNatives$Dart$spawn$c0$19_19$Hoisted$named, $Dart$Null, dartc_scp$1));
  IsolateNatives$Dart._spawn$$member_(isolate, isLight, port.toSendPort$named(0, $noargs));
  return dartc_scp$1.result;
  dartc_scp$1 = $Dart$Null;
}
;
IsolateNatives$Dart.spawn$named = function($n, $o, isolate, isLight){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return IsolateNatives$Dart.spawn$member(isolate, isLight);
}
;
IsolateNatives$Dart.spawn$getter = function spawn$getter(){
  return IsolateNatives$Dart.spawn$named;
}
;
IsolateNatives$Dart._spawn$$member_ = function(isolate, light, port){
  return native_IsolateNatives__spawn(isolate, light, port);
}
;
IsolateNatives$Dart._spawn$$named_ = function($n, $o, isolate, light, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 3)
    $nsme();
  return IsolateNatives$Dart._spawn$$member_(isolate, light, port);
}
;
IsolateNatives$Dart._spawn$$getter_ = function _spawn$$getter_(){
  return IsolateNatives$Dart._spawn$$named_;
}
;
IsolateNatives$Dart.bind$member = function(f){
  return native_IsolateNatives_bind(f);
}
;
IsolateNatives$Dart.bind$named = function($n, $o, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return IsolateNatives$Dart.bind$member(f);
}
;
IsolateNatives$Dart.bind$getter = function bind$getter(){
  return IsolateNatives$Dart.bind$named;
}
;
IsolateNatives$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
IsolateNatives$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
IsolateNatives$Dart.IsolateNatives$$Factory = function(){
  var tmp$0 = new IsolateNatives$Dart;
  tmp$0.$typeInfo = IsolateNatives$Dart.$lookupRTT();
  IsolateNatives$Dart.$Initializer.call(tmp$0);
  IsolateNatives$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function _IsolateJsUtil$Dart(){
}

_IsolateJsUtil$Dart.$lookupRTT = function(){
  return RTT.create($cls('_IsolateJsUtil$Dart'));
}
;
_IsolateJsUtil$Dart.$addTo = function(target){
  var rtt = _IsolateJsUtil$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
_IsolateJsUtil$Dart.prototype.$implements$_IsolateJsUtil$Dart = 1;
_IsolateJsUtil$Dart.prototype.$implements$Object$Dart = 1;
_IsolateJsUtil$Dart._promiseQueueProcess$$member_ = function(){
  PromiseQueue$Dart.process$member();
}
;
_IsolateJsUtil$Dart._promiseQueueProcess$$named_ = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return _IsolateJsUtil$Dart._promiseQueueProcess$$member_();
}
;
function native__IsolateJsUtil__promiseQueueProcess(){
  return _IsolateJsUtil$Dart._promiseQueueProcess$$member_();
}

_IsolateJsUtil$Dart._promiseQueueProcess$$getter_ = function _promiseQueueProcess$$getter_(){
  return _IsolateJsUtil$Dart._promiseQueueProcess$$named_;
}
;
_IsolateJsUtil$Dart._startIsolate$$member_ = function(isolate, replyTo){
  var port = ReceivePortFactory$Dart.ReceivePort$$Factory();
  replyTo.send$named(2, $noargs, _SPAWNED_SIGNAL$$getter_(), port.toSendPort$named(0, $noargs));
  isolate._run$$named_(1, $noargs, port);
}
;
_IsolateJsUtil$Dart._startIsolate$$named_ = function($n, $o, isolate, replyTo){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return _IsolateJsUtil$Dart._startIsolate$$member_(isolate, replyTo);
}
;
function native__IsolateJsUtil__startIsolate(isolate, replyTo){
  return _IsolateJsUtil$Dart._startIsolate$$member_(isolate, replyTo);
}

_IsolateJsUtil$Dart._startIsolate$$getter_ = function _startIsolate$$getter_(){
  return _IsolateJsUtil$Dart._startIsolate$$named_;
}
;
_IsolateJsUtil$Dart._toSendPort$$member_ = function(port){
  return port.toSendPort$named(0, $noargs);
}
;
_IsolateJsUtil$Dart._toSendPort$$named_ = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _IsolateJsUtil$Dart._toSendPort$$member_(port);
}
;
function native__IsolateJsUtil__toSendPort(port){
  return _IsolateJsUtil$Dart._toSendPort$$member_(port);
}

_IsolateJsUtil$Dart._toSendPort$$getter_ = function _toSendPort$$getter_(){
  return _IsolateJsUtil$Dart._toSendPort$$named_;
}
;
_IsolateJsUtil$Dart._print$$member_ = function(msg){
  print$getter()(1, $noargs, msg);
}
;
_IsolateJsUtil$Dart._print$$named_ = function($n, $o, msg){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _IsolateJsUtil$Dart._print$$member_(msg);
}
;
function native__IsolateJsUtil__print(msg){
  return _IsolateJsUtil$Dart._print$$member_(msg);
}

_IsolateJsUtil$Dart._print$$getter_ = function _print$$getter_(){
  return _IsolateJsUtil$Dart._print$$named_;
}
;
_IsolateJsUtil$Dart._copyObject$$member_ = function(obj){
  return Copier$Dart.Copier$$Factory().traverse$named(1, $noargs, obj);
}
;
_IsolateJsUtil$Dart._copyObject$$named_ = function($n, $o, obj){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _IsolateJsUtil$Dart._copyObject$$member_(obj);
}
;
function native__IsolateJsUtil__copyObject(obj){
  return _IsolateJsUtil$Dart._copyObject$$member_(obj);
}

_IsolateJsUtil$Dart._copyObject$$getter_ = function _copyObject$$getter_(){
  return _IsolateJsUtil$Dart._copyObject$$named_;
}
;
_IsolateJsUtil$Dart._serializeObject$$member_ = function(obj){
  return Serializer$Dart.Serializer$$Factory().traverse$named(1, $noargs, obj);
}
;
_IsolateJsUtil$Dart._serializeObject$$named_ = function($n, $o, obj){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _IsolateJsUtil$Dart._serializeObject$$member_(obj);
}
;
function native__IsolateJsUtil__serializeObject(obj){
  return _IsolateJsUtil$Dart._serializeObject$$member_(obj);
}

_IsolateJsUtil$Dart._serializeObject$$getter_ = function _serializeObject$$getter_(){
  return _IsolateJsUtil$Dart._serializeObject$$named_;
}
;
_IsolateJsUtil$Dart._deserializeMessage$$member_ = function(message){
  return Deserializer$Dart.Deserializer$$Factory().deserialize$named(1, $noargs, message);
}
;
_IsolateJsUtil$Dart._deserializeMessage$$named_ = function($n, $o, message){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _IsolateJsUtil$Dart._deserializeMessage$$member_(message);
}
;
function native__IsolateJsUtil__deserializeMessage(message){
  return _IsolateJsUtil$Dart._deserializeMessage$$member_(message);
}

_IsolateJsUtil$Dart._deserializeMessage$$getter_ = function _deserializeMessage$$getter_(){
  return _IsolateJsUtil$Dart._deserializeMessage$$named_;
}
;
_IsolateJsUtil$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
_IsolateJsUtil$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
_IsolateJsUtil$Dart._IsolateJsUtil$$Factory = function(){
  var tmp$0 = new _IsolateJsUtil$Dart;
  tmp$0.$typeInfo = _IsolateJsUtil$Dart.$lookupRTT();
  _IsolateJsUtil$Dart.$Initializer.call(tmp$0);
  _IsolateJsUtil$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function _SPAWNED_SIGNAL$$getter_(){
  return 'spawned';
}

function MessageTraverser$Dart(){
}

MessageTraverser$Dart.$lookupRTT = function(){
  return RTT.create($cls('MessageTraverser$Dart'));
}
;
MessageTraverser$Dart.$addTo = function(target){
  var rtt = MessageTraverser$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
MessageTraverser$Dart.prototype.$implements$MessageTraverser$Dart = 1;
MessageTraverser$Dart.prototype.$implements$Object$Dart = 1;
MessageTraverser$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
MessageTraverser$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
MessageTraverser$Dart.MessageTraverser$$Factory = function(){
  var tmp$0 = new MessageTraverser$Dart;
  tmp$0.$typeInfo = MessageTraverser$Dart.$lookupRTT();
  MessageTraverser$Dart.$Initializer.call(tmp$0);
  MessageTraverser$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
MessageTraverser$Dart.isPrimitive$member = function(x){
  var tmp$0;
  return x == null || String.$instanceOf(x) || !!(tmp$0 = x , tmp$0 != null && tmp$0.$implements$num$Dart) || Boolean.$instanceOf(x);
}
;
MessageTraverser$Dart.isPrimitive$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.isPrimitive$member(x);
}
;
MessageTraverser$Dart.isPrimitive$getter = function isPrimitive$getter(){
  return MessageTraverser$Dart.isPrimitive$named;
}
;
MessageTraverser$Dart.prototype.traverse$member = function(x){
  var tmp$0;
  if (MessageTraverser$Dart.isPrimitive$member(x)) {
    return this.visitPrimitive$member(x);
  }
  this._taggedObjects$$setter_(tmp$0 = ListFactory$Dart.List$$Factory(null, $Dart$Null)) , tmp$0;
  var result = $Dart$Null;
  try {
    result = this._dispatch$$member_(x);
  }
   finally {
    this._cleanup$$member_();
  }
  return result;
}
;
MessageTraverser$Dart.prototype.traverse$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype.traverse$member.call(this, x);
}
;
MessageTraverser$Dart.prototype.traverse$getter = function traverse$getter(){
  return $bind(MessageTraverser$Dart.prototype.traverse$named, this);
}
;
MessageTraverser$Dart.prototype._cleanup$$member_ = function(){
  var tmp$1, tmp$0;
  var len = this._taggedObjects$$getter_().length$getter();
  {
    var i = 0;
    for (; LT$operator(i, len); tmp$0 = i , (i = ADD$operator(tmp$0, 1) , tmp$0)) {
      this._clearAttachedInfo$$member_(this._taggedObjects$$getter_().INDEX$operator(i));
    }
  }
  this._taggedObjects$$setter_(tmp$1 = $Dart$Null) , tmp$1;
}
;
MessageTraverser$Dart.prototype._cleanup$$named_ = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return MessageTraverser$Dart.prototype._cleanup$$member_.call(this);
}
;
MessageTraverser$Dart.prototype._cleanup$$getter_ = function _cleanup$$getter_(){
  return $bind(MessageTraverser$Dart.prototype._cleanup$$named_, this);
}
;
MessageTraverser$Dart.prototype._attachInfo$$member_ = function(o, info){
  this._taggedObjects$$getter_().add$named(1, $noargs, o);
  this._setAttachedInfo$$member_(o, info);
}
;
MessageTraverser$Dart.prototype._attachInfo$$named_ = function($n, $o, o, info){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return MessageTraverser$Dart.prototype._attachInfo$$member_.call(this, o, info);
}
;
MessageTraverser$Dart.prototype._attachInfo$$getter_ = function _attachInfo$$getter_(){
  return $bind(MessageTraverser$Dart.prototype._attachInfo$$named_, this);
}
;
MessageTraverser$Dart.prototype._getInfo$$member_ = function(o){
  return this._getAttachedInfo$$member_(o);
}
;
MessageTraverser$Dart.prototype._getInfo$$named_ = function($n, $o, o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype._getInfo$$member_.call(this, o);
}
;
MessageTraverser$Dart.prototype._getInfo$$getter_ = function _getInfo$$getter_(){
  return $bind(MessageTraverser$Dart.prototype._getInfo$$named_, this);
}
;
MessageTraverser$Dart.prototype._dispatch$$member_ = function(x){
  var tmp$1, tmp$2, tmp$3, tmp$4, tmp$0;
  if (MessageTraverser$Dart.isPrimitive$member(x)) {
    return this.visitPrimitive$member(x);
  }
  if (!!(tmp$0 = x , tmp$0 != null && tmp$0.$implements$List$Dart)) {
    return this.visitList$member(x);
  }
  if (!!(tmp$1 = x , tmp$1 != null && tmp$1.$implements$Map$Dart)) {
    return this.visitMap$member(x);
  }
  if (!!(tmp$2 = x , tmp$2 != null && tmp$2.$implements$SendPortImpl$Dart)) {
    return this.visitSendPort$member(x);
  }
  if (!!(tmp$3 = x , tmp$3 != null && tmp$3.$implements$ReceivePortImpl$Dart)) {
    return this.visitReceivePort$member(x);
  }
  if (!!(tmp$4 = x , tmp$4 != null && tmp$4.$implements$ReceivePortSingleShotImpl$Dart)) {
    return this.visitReceivePortSingleShot$member(x);
  }
  $Dart$ThrowException('Message serialization: Illegal value ' + $toString(x) + ' passed');
}
;
MessageTraverser$Dart.prototype._dispatch$$named_ = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype._dispatch$$member_.call(this, x);
}
;
MessageTraverser$Dart.prototype._dispatch$$getter_ = function _dispatch$$getter_(){
  return $bind(MessageTraverser$Dart.prototype._dispatch$$named_, this);
}
;
MessageTraverser$Dart.prototype.visitPrimitive$member = function(x){
}
;
MessageTraverser$Dart.prototype.visitPrimitive$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype.visitPrimitive$member.call(this, x);
}
;
MessageTraverser$Dart.prototype.visitPrimitive$getter = function visitPrimitive$getter(){
  return $bind(MessageTraverser$Dart.prototype.visitPrimitive$named, this);
}
;
MessageTraverser$Dart.prototype.visitList$member = function(x){
}
;
MessageTraverser$Dart.prototype.visitList$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype.visitList$member.call(this, x);
}
;
MessageTraverser$Dart.prototype.visitList$getter = function visitList$getter(){
  return $bind(MessageTraverser$Dart.prototype.visitList$named, this);
}
;
MessageTraverser$Dart.prototype.visitMap$member = function(x){
}
;
MessageTraverser$Dart.prototype.visitMap$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype.visitMap$member.call(this, x);
}
;
MessageTraverser$Dart.prototype.visitMap$getter = function visitMap$getter(){
  return $bind(MessageTraverser$Dart.prototype.visitMap$named, this);
}
;
MessageTraverser$Dart.prototype.visitSendPort$member = function(x){
}
;
MessageTraverser$Dart.prototype.visitSendPort$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype.visitSendPort$member.call(this, x);
}
;
MessageTraverser$Dart.prototype.visitSendPort$getter = function visitSendPort$getter(){
  return $bind(MessageTraverser$Dart.prototype.visitSendPort$named, this);
}
;
MessageTraverser$Dart.prototype.visitReceivePort$member = function(x){
}
;
MessageTraverser$Dart.prototype.visitReceivePort$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype.visitReceivePort$member.call(this, x);
}
;
MessageTraverser$Dart.prototype.visitReceivePort$getter = function visitReceivePort$getter(){
  return $bind(MessageTraverser$Dart.prototype.visitReceivePort$named, this);
}
;
MessageTraverser$Dart.prototype.visitReceivePortSingleShot$member = function(x){
}
;
MessageTraverser$Dart.prototype.visitReceivePortSingleShot$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype.visitReceivePortSingleShot$member.call(this, x);
}
;
MessageTraverser$Dart.prototype.visitReceivePortSingleShot$getter = function visitReceivePortSingleShot$getter(){
  return $bind(MessageTraverser$Dart.prototype.visitReceivePortSingleShot$named, this);
}
;
MessageTraverser$Dart.prototype._taggedObjects$$named_ = function(){
  return this._taggedObjects$$getter_().apply(this, arguments);
}
;
MessageTraverser$Dart.prototype._taggedObjects$$getter_ = function(){
  return this._taggedObjects$$field_;
}
;
MessageTraverser$Dart.prototype._taggedObjects$$setter_ = function(tmp$0){
  this._taggedObjects$$field_ = tmp$0;
}
;
MessageTraverser$Dart.prototype._clearAttachedInfo$$member_ = function(obj){
  return native_MessageTraverser__clearAttachedInfo.call(this, obj);
}
;
MessageTraverser$Dart.prototype._clearAttachedInfo$$named_ = function($n, $o, obj){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype._clearAttachedInfo$$member_.call(this, obj);
}
;
MessageTraverser$Dart.prototype._clearAttachedInfo$$getter_ = function _clearAttachedInfo$$getter_(){
  return $bind(MessageTraverser$Dart.prototype._clearAttachedInfo$$named_, this);
}
;
MessageTraverser$Dart.prototype._setAttachedInfo$$member_ = function(o, info){
  return native_MessageTraverser__setAttachedInfo.call(this, o, info);
}
;
MessageTraverser$Dart.prototype._setAttachedInfo$$named_ = function($n, $o, o, info){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return MessageTraverser$Dart.prototype._setAttachedInfo$$member_.call(this, o, info);
}
;
MessageTraverser$Dart.prototype._setAttachedInfo$$getter_ = function _setAttachedInfo$$getter_(){
  return $bind(MessageTraverser$Dart.prototype._setAttachedInfo$$named_, this);
}
;
MessageTraverser$Dart.prototype._getAttachedInfo$$member_ = function(o){
  return native_MessageTraverser__getAttachedInfo.call(this, o);
}
;
MessageTraverser$Dart.prototype._getAttachedInfo$$named_ = function($n, $o, o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MessageTraverser$Dart.prototype._getAttachedInfo$$member_.call(this, o);
}
;
MessageTraverser$Dart.prototype._getAttachedInfo$$getter_ = function _getAttachedInfo$$getter_(){
  return $bind(MessageTraverser$Dart.prototype._getAttachedInfo$$named_, this);
}
;
function Copier$Dart(){
}

Copier$Dart.$lookupRTT = function(){
  return RTT.create($cls('Copier$Dart'), Copier$Dart.$RTTimplements);
}
;
Copier$Dart.$RTTimplements = function(rtt){
  Copier$Dart.$addTo(rtt);
}
;
Copier$Dart.$addTo = function(target){
  var rtt = Copier$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  MessageTraverser$Dart.$addTo(target);
}
;
Copier$Dart.prototype.$implements$Copier$Dart = 1;
Copier$Dart.prototype.$implements$MessageTraverser$Dart = 1;
Copier$Dart.prototype.$implements$Object$Dart = 1;
$inherits(Copier$Dart, MessageTraverser$Dart);
Copier$Dart.$Constructor = function(){
  MessageTraverser$Dart.$Constructor.call(this);
}
;
Copier$Dart.$Initializer = function(){
  MessageTraverser$Dart.$Initializer.call(this);
}
;
Copier$Dart.Copier$$Factory = function(){
  var tmp$0 = new Copier$Dart;
  tmp$0.$typeInfo = Copier$Dart.$lookupRTT();
  Copier$Dart.$Initializer.call(tmp$0);
  Copier$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
Copier$Dart.prototype.visitPrimitive$member = function(x){
  return x;
}
;
Copier$Dart.prototype.visitPrimitive$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Copier$Dart.prototype.visitPrimitive$member.call(this, x);
}
;
Copier$Dart.prototype.visitPrimitive$getter = function visitPrimitive$getter(){
  return $bind(Copier$Dart.prototype.visitPrimitive$named, this);
}
;
Copier$Dart.prototype.visitList$member = function(list){
  var tmp$1, tmp$0;
  var copy = this._getInfo$$member_(list);
  if (copy != null) {
    return copy;
  }
  var len = list.length$getter();
  copy = ListFactory$Dart.List$$Factory(null, len);
  this._attachInfo$$member_(list, copy);
  {
    var i = 0;
    for (; LT$operator(i, len); tmp$0 = i , (i = ADD$operator(tmp$0, 1) , tmp$0)) {
      copy.ASSIGN_INDEX$operator(i, tmp$1 = this._dispatch$$member_(list.INDEX$operator(i))) , tmp$1;
    }
  }
  return copy;
}
;
Copier$Dart.prototype.visitList$named = function($n, $o, list){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Copier$Dart.prototype.visitList$member.call(this, list);
}
;
Copier$Dart.prototype.visitList$getter = function visitList$getter(){
  return $bind(Copier$Dart.prototype.visitList$named, this);
}
;
function Copier$Dart$visitMap$c0$11_11$Hoisted(dartc_scp$1, key, val){
  var tmp$0;
  dartc_scp$1.copy.ASSIGN_INDEX$operator(this._dispatch$$member_(key), tmp$0 = this._dispatch$$member_(val)) , tmp$0;
}

function Copier$Dart$visitMap$c0$11_11$Hoisted$named($s0, $n, $o, key, val){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Copier$Dart$visitMap$c0$11_11$Hoisted.call(this, $s0, key, val);
}

Copier$Dart.prototype.visitMap$member = function(map){
  var dartc_scp$1;
  dartc_scp$1 = {};
  dartc_scp$1.copy = this._getInfo$$member_(map);
  if (dartc_scp$1.copy != null) {
    return dartc_scp$1.copy;
  }
  dartc_scp$1.copy = HashMapImplementation$Dart.HashMapImplementation$$Factory(HashMapImplementation$Dart.$lookupRTT());
  this._attachInfo$$member_(map, dartc_scp$1.copy);
  map.forEach$named(1, $noargs, $bind(Copier$Dart$visitMap$c0$11_11$Hoisted$named, this, dartc_scp$1));
  return dartc_scp$1.copy;
  dartc_scp$1 = $Dart$Null;
}
;
Copier$Dart.prototype.visitMap$named = function($n, $o, map){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Copier$Dart.prototype.visitMap$member.call(this, map);
}
;
Copier$Dart.prototype.visitMap$getter = function visitMap$getter(){
  return $bind(Copier$Dart.prototype.visitMap$named, this);
}
;
Copier$Dart.prototype.visitSendPort$member = function(port){
  return SendPortImpl$Dart.SendPortImpl$$Factory(port._workerId$$getter_(), port._isolateId$$getter_(), port._receivePortId$$getter_());
}
;
Copier$Dart.prototype.visitSendPort$named = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Copier$Dart.prototype.visitSendPort$member.call(this, port);
}
;
Copier$Dart.prototype.visitSendPort$getter = function visitSendPort$getter(){
  return $bind(Copier$Dart.prototype.visitSendPort$named, this);
}
;
Copier$Dart.prototype.visitReceivePort$member = function(port){
  return port._toNewSendPort$$named_(0, $noargs);
}
;
Copier$Dart.prototype.visitReceivePort$named = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Copier$Dart.prototype.visitReceivePort$member.call(this, port);
}
;
Copier$Dart.prototype.visitReceivePort$getter = function visitReceivePort$getter(){
  return $bind(Copier$Dart.prototype.visitReceivePort$named, this);
}
;
Copier$Dart.prototype.visitReceivePortSingleShot$member = function(port){
  return port._toNewSendPort$$named_(0, $noargs);
}
;
Copier$Dart.prototype.visitReceivePortSingleShot$named = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Copier$Dart.prototype.visitReceivePortSingleShot$member.call(this, port);
}
;
Copier$Dart.prototype.visitReceivePortSingleShot$getter = function visitReceivePortSingleShot$getter(){
  return $bind(Copier$Dart.prototype.visitReceivePortSingleShot$named, this);
}
;
function Serializer$Dart(){
}

Serializer$Dart.$lookupRTT = function(){
  return RTT.create($cls('Serializer$Dart'), Serializer$Dart.$RTTimplements);
}
;
Serializer$Dart.$RTTimplements = function(rtt){
  Serializer$Dart.$addTo(rtt);
}
;
Serializer$Dart.$addTo = function(target){
  var rtt = Serializer$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  MessageTraverser$Dart.$addTo(target);
}
;
Serializer$Dart.prototype.$implements$Serializer$Dart = 1;
Serializer$Dart.prototype.$implements$MessageTraverser$Dart = 1;
Serializer$Dart.prototype.$implements$Object$Dart = 1;
$inherits(Serializer$Dart, MessageTraverser$Dart);
Serializer$Dart.$Constructor = function(){
  MessageTraverser$Dart.$Constructor.call(this);
}
;
Serializer$Dart.$Initializer = function(){
  MessageTraverser$Dart.$Initializer.call(this);
  this._nextFreeRefId$$field_ = 0;
}
;
Serializer$Dart.Serializer$$Factory = function(){
  var tmp$0 = new Serializer$Dart;
  tmp$0.$typeInfo = Serializer$Dart.$lookupRTT();
  Serializer$Dart.$Initializer.call(tmp$0);
  Serializer$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
Serializer$Dart.prototype.visitPrimitive$member = function(x){
  return x;
}
;
Serializer$Dart.prototype.visitPrimitive$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart.prototype.visitPrimitive$member.call(this, x);
}
;
Serializer$Dart.prototype.visitPrimitive$getter = function visitPrimitive$getter(){
  return $bind(Serializer$Dart.prototype.visitPrimitive$named, this);
}
;
Serializer$Dart.prototype.visitList$member = function(list){
  var tmp$1, tmp$0;
  var copyId = this._getInfo$$member_(list);
  if (copyId != null) {
    return this._makeRef$$member_(copyId);
  }
  var id = (tmp$0 = this._nextFreeRefId$$getter_() , (this._nextFreeRefId$$setter_(tmp$1 = ADD$operator(tmp$0, 1)) , tmp$1 , tmp$0));
  this._attachInfo$$member_(list, id);
  var jsArray = this._serializeDartListIntoNewJsArray$$member_(list);
  return Serializer$Dart._dartListToJsArrayNoCopy$$member_(RTT.setTypeInfo(['list', id, jsArray], Array.$lookupRTT()));
}
;
Serializer$Dart.prototype.visitList$named = function($n, $o, list){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart.prototype.visitList$member.call(this, list);
}
;
Serializer$Dart.prototype.visitList$getter = function visitList$getter(){
  return $bind(Serializer$Dart.prototype.visitList$named, this);
}
;
Serializer$Dart.prototype.visitMap$member = function(map){
  var tmp$1, tmp$0;
  var copyId = this._getInfo$$member_(map);
  if (copyId != null) {
    return this._makeRef$$member_(copyId);
  }
  var id = (tmp$0 = this._nextFreeRefId$$getter_() , (this._nextFreeRefId$$setter_(tmp$1 = ADD$operator(tmp$0, 1)) , tmp$1 , tmp$0));
  this._attachInfo$$member_(map, id);
  var keys = this._serializeDartListIntoNewJsArray$$member_(map.getKeys$named(0, $noargs));
  var values = this._serializeDartListIntoNewJsArray$$member_(map.getValues$named(0, $noargs));
  return Serializer$Dart._dartListToJsArrayNoCopy$$member_(RTT.setTypeInfo(['map', id, keys, values], Array.$lookupRTT()));
}
;
Serializer$Dart.prototype.visitMap$named = function($n, $o, map){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart.prototype.visitMap$member.call(this, map);
}
;
Serializer$Dart.prototype.visitMap$getter = function visitMap$getter(){
  return $bind(Serializer$Dart.prototype.visitMap$named, this);
}
;
Serializer$Dart.prototype.visitSendPort$member = function(port){
  return Serializer$Dart._dartListToJsArrayNoCopy$$member_(RTT.setTypeInfo(['sendport', port._workerId$$getter_(), port._isolateId$$getter_(), port._receivePortId$$getter_()], Array.$lookupRTT()));
}
;
Serializer$Dart.prototype.visitSendPort$named = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart.prototype.visitSendPort$member.call(this, port);
}
;
Serializer$Dart.prototype.visitSendPort$getter = function visitSendPort$getter(){
  return $bind(Serializer$Dart.prototype.visitSendPort$named, this);
}
;
Serializer$Dart.prototype.visitReceivePort$member = function(port){
  return this.visitSendPort$member(port.toSendPort$named(0, $noargs));
  ;
}
;
Serializer$Dart.prototype.visitReceivePort$named = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart.prototype.visitReceivePort$member.call(this, port);
}
;
Serializer$Dart.prototype.visitReceivePort$getter = function visitReceivePort$getter(){
  return $bind(Serializer$Dart.prototype.visitReceivePort$named, this);
}
;
Serializer$Dart.prototype.visitReceivePortSingleShot$member = function(port){
  return this.visitSendPort$member(port.toSendPort$named(0, $noargs));
}
;
Serializer$Dart.prototype.visitReceivePortSingleShot$named = function($n, $o, port){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart.prototype.visitReceivePortSingleShot$member.call(this, port);
}
;
Serializer$Dart.prototype.visitReceivePortSingleShot$getter = function visitReceivePortSingleShot$getter(){
  return $bind(Serializer$Dart.prototype.visitReceivePortSingleShot$named, this);
}
;
Serializer$Dart.prototype._serializeDartListIntoNewJsArray$$member_ = function(list){
  var tmp$0;
  var len = list.length$getter();
  var jsArray = Serializer$Dart._newJsArray$$member_(len);
  {
    var i = 0;
    for (; LT$operator(i, len); tmp$0 = i , (i = ADD$operator(tmp$0, 1) , tmp$0)) {
      Serializer$Dart._jsArrayIndexSet$$member_(jsArray, i, this._dispatch$$member_(list.INDEX$operator(i)));
    }
  }
  return jsArray;
}
;
Serializer$Dart.prototype._serializeDartListIntoNewJsArray$$named_ = function($n, $o, list){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart.prototype._serializeDartListIntoNewJsArray$$member_.call(this, list);
}
;
Serializer$Dart.prototype._serializeDartListIntoNewJsArray$$getter_ = function _serializeDartListIntoNewJsArray$$getter_(){
  return $bind(Serializer$Dart.prototype._serializeDartListIntoNewJsArray$$named_, this);
}
;
Serializer$Dart.prototype._makeRef$$member_ = function(id){
  return Serializer$Dart._dartListToJsArrayNoCopy$$member_(RTT.setTypeInfo(['ref', id], Array.$lookupRTT()));
}
;
Serializer$Dart.prototype._makeRef$$named_ = function($n, $o, id){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart.prototype._makeRef$$member_.call(this, id);
}
;
Serializer$Dart.prototype._makeRef$$getter_ = function _makeRef$$getter_(){
  return $bind(Serializer$Dart.prototype._makeRef$$named_, this);
}
;
Serializer$Dart.prototype._nextFreeRefId$$named_ = function(){
  return this._nextFreeRefId$$getter_().apply(this, arguments);
}
;
Serializer$Dart.prototype._nextFreeRefId$$getter_ = function(){
  return this._nextFreeRefId$$field_;
}
;
Serializer$Dart.prototype._nextFreeRefId$$setter_ = function(tmp$0){
  this._nextFreeRefId$$field_ = tmp$0;
}
;
Serializer$Dart._newJsArray$$member_ = function(len){
  return native_Serializer__newJsArray(len);
}
;
Serializer$Dart._newJsArray$$named_ = function($n, $o, len){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart._newJsArray$$member_(len);
}
;
Serializer$Dart._newJsArray$$getter_ = function _newJsArray$$getter_(){
  return Serializer$Dart._newJsArray$$named_;
}
;
Serializer$Dart._jsArrayIndexSet$$member_ = function(jsArray, index, val){
  return native_Serializer__jsArrayIndexSet(jsArray, index, val);
}
;
Serializer$Dart._jsArrayIndexSet$$named_ = function($n, $o, jsArray, index, val){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 3)
    $nsme();
  return Serializer$Dart._jsArrayIndexSet$$member_(jsArray, index, val);
}
;
Serializer$Dart._jsArrayIndexSet$$getter_ = function _jsArrayIndexSet$$getter_(){
  return Serializer$Dart._jsArrayIndexSet$$named_;
}
;
Serializer$Dart._dartListToJsArrayNoCopy$$member_ = function(list){
  return native_Serializer__dartListToJsArrayNoCopy(list);
}
;
Serializer$Dart._dartListToJsArrayNoCopy$$named_ = function($n, $o, list){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Serializer$Dart._dartListToJsArrayNoCopy$$member_(list);
}
;
Serializer$Dart._dartListToJsArrayNoCopy$$getter_ = function _dartListToJsArrayNoCopy$$getter_(){
  return Serializer$Dart._dartListToJsArrayNoCopy$$named_;
}
;
function Deserializer$Dart(){
}

Deserializer$Dart.$lookupRTT = function(){
  return RTT.create($cls('Deserializer$Dart'));
}
;
Deserializer$Dart.$addTo = function(target){
  var rtt = Deserializer$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
Deserializer$Dart.prototype.$implements$Deserializer$Dart = 1;
Deserializer$Dart.prototype.$implements$Object$Dart = 1;
Deserializer$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
Deserializer$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
Deserializer$Dart.Deserializer$$Factory = function(){
  var tmp$0 = new Deserializer$Dart;
  tmp$0.$typeInfo = Deserializer$Dart.$lookupRTT();
  Deserializer$Dart.$Initializer.call(tmp$0);
  Deserializer$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
Deserializer$Dart.isPrimitive$member = function(x){
  var tmp$0;
  return x == null || String.$instanceOf(x) || !!(tmp$0 = x , tmp$0 != null && tmp$0.$implements$num$Dart) || Boolean.$instanceOf(x);
}
;
Deserializer$Dart.isPrimitive$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart.isPrimitive$member(x);
}
;
Deserializer$Dart.isPrimitive$getter = function isPrimitive$getter(){
  return Deserializer$Dart.isPrimitive$named;
}
;
Deserializer$Dart.prototype.deserialize$member = function(x){
  var tmp$0;
  if (Deserializer$Dart.isPrimitive$member(x)) {
    return x;
  }
  this._deserialized$$setter_(tmp$0 = HashMapImplementation$Dart.HashMapImplementation$$Factory(HashMapImplementation$Dart.$lookupRTT())) , tmp$0;
  return this._deserializeHelper$$member_(x);
}
;
Deserializer$Dart.prototype.deserialize$named = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart.prototype.deserialize$member.call(this, x);
}
;
Deserializer$Dart.prototype.deserialize$getter = function deserialize$getter(){
  return $bind(Deserializer$Dart.prototype.deserialize$named, this);
}
;
Deserializer$Dart.prototype._deserializeHelper$$member_ = function(x){
  if (Deserializer$Dart.isPrimitive$member(x)) {
    return x;
  }
  assert(Deserializer$Dart._isJsArray$$member_(x));
  switch (Deserializer$Dart._jsArrayIndex$$member_(x, 0)) {
    case 'ref':
      return this._deserializeRef$$member_(x);
    case 'list':
      return this._deserializeList$$member_(x);
    case 'map':
      return this._deserializeMap$$member_(x);
    case 'sendport':
      return this._deserializeSendPort$$member_(x);
    default:{
        $Dart$ThrowException('Unexpected serialized object');
      }

  }
}
;
Deserializer$Dart.prototype._deserializeHelper$$named_ = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart.prototype._deserializeHelper$$member_.call(this, x);
}
;
Deserializer$Dart.prototype._deserializeHelper$$getter_ = function _deserializeHelper$$getter_(){
  return $bind(Deserializer$Dart.prototype._deserializeHelper$$named_, this);
}
;
Deserializer$Dart.prototype._deserializeRef$$member_ = function(x){
  var id = Deserializer$Dart._jsArrayIndex$$member_(x, 1);
  var result = this._deserialized$$getter_().INDEX$operator(id);
  assert(result != null);
  return result;
}
;
Deserializer$Dart.prototype._deserializeRef$$named_ = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart.prototype._deserializeRef$$member_.call(this, x);
}
;
Deserializer$Dart.prototype._deserializeRef$$getter_ = function _deserializeRef$$getter_(){
  return $bind(Deserializer$Dart.prototype._deserializeRef$$named_, this);
}
;
Deserializer$Dart.prototype._deserializeList$$member_ = function(x){
  var tmp$1, tmp$2, tmp$0;
  var id = Deserializer$Dart._jsArrayIndex$$member_(x, 1);
  var jsArray = Deserializer$Dart._jsArrayIndex$$member_(x, 2);
  assert(Deserializer$Dart._isJsArray$$member_(jsArray));
  var dartList = this._jsArrayToDartListNoCopy$$member_(jsArray);
  this._deserialized$$getter_().ASSIGN_INDEX$operator(id, tmp$0 = dartList) , tmp$0;
  var len = dartList.length$getter();
  {
    var i = 0;
    for (; LT$operator(i, len); tmp$1 = i , (i = ADD$operator(tmp$1, 1) , tmp$1)) {
      dartList.ASSIGN_INDEX$operator(i, tmp$2 = this._deserializeHelper$$member_(dartList.INDEX$operator(i))) , tmp$2;
    }
  }
  return dartList;
}
;
Deserializer$Dart.prototype._deserializeList$$named_ = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart.prototype._deserializeList$$member_.call(this, x);
}
;
Deserializer$Dart.prototype._deserializeList$$getter_ = function _deserializeList$$getter_(){
  return $bind(Deserializer$Dart.prototype._deserializeList$$named_, this);
}
;
Deserializer$Dart.prototype._deserializeMap$$member_ = function(x){
  var tmp$1, tmp$2, tmp$0;
  var result = HashMapImplementation$Dart.HashMapImplementation$$Factory(HashMapImplementation$Dart.$lookupRTT());
  var id = Deserializer$Dart._jsArrayIndex$$member_(x, 1);
  this._deserialized$$getter_().ASSIGN_INDEX$operator(id, tmp$0 = result) , tmp$0;
  var keys = Deserializer$Dart._jsArrayIndex$$member_(x, 2);
  var values = Deserializer$Dart._jsArrayIndex$$member_(x, 3);
  assert(Deserializer$Dart._isJsArray$$member_(keys));
  assert(Deserializer$Dart._isJsArray$$member_(values));
  var len = Deserializer$Dart._jsArrayLength$$member_(keys);
  assert(EQ$operator(len, Deserializer$Dart._jsArrayLength$$member_(values)));
  {
    var i = 0;
    for (; LT$operator(i, len); tmp$1 = i , (i = ADD$operator(tmp$1, 1) , tmp$1)) {
      var key = this._deserializeHelper$$member_(Deserializer$Dart._jsArrayIndex$$member_(keys, i));
      var value = this._deserializeHelper$$member_(Deserializer$Dart._jsArrayIndex$$member_(values, i));
      result.ASSIGN_INDEX$operator(key, tmp$2 = value) , tmp$2;
    }
  }
  return result;
}
;
Deserializer$Dart.prototype._deserializeMap$$named_ = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart.prototype._deserializeMap$$member_.call(this, x);
}
;
Deserializer$Dart.prototype._deserializeMap$$getter_ = function _deserializeMap$$getter_(){
  return $bind(Deserializer$Dart.prototype._deserializeMap$$named_, this);
}
;
Deserializer$Dart.prototype._deserializeSendPort$$member_ = function(x){
  var workerId = Deserializer$Dart._jsArrayIndex$$member_(x, 1);
  var isolateId = Deserializer$Dart._jsArrayIndex$$member_(x, 2);
  var receivePortId = Deserializer$Dart._jsArrayIndex$$member_(x, 3);
  return SendPortImpl$Dart.SendPortImpl$$Factory(workerId, isolateId, receivePortId);
}
;
Deserializer$Dart.prototype._deserializeSendPort$$named_ = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart.prototype._deserializeSendPort$$member_.call(this, x);
}
;
Deserializer$Dart.prototype._deserializeSendPort$$getter_ = function _deserializeSendPort$$getter_(){
  return $bind(Deserializer$Dart.prototype._deserializeSendPort$$named_, this);
}
;
Deserializer$Dart.prototype._jsArrayToDartListNoCopy$$member_ = function(a){
  var tmp$0;
  assert(!!(tmp$0 = a , tmp$0 != null && tmp$0.$implements$List$Dart));
  return a;
}
;
Deserializer$Dart.prototype._jsArrayToDartListNoCopy$$named_ = function($n, $o, a){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart.prototype._jsArrayToDartListNoCopy$$member_.call(this, a);
}
;
Deserializer$Dart.prototype._jsArrayToDartListNoCopy$$getter_ = function _jsArrayToDartListNoCopy$$getter_(){
  return $bind(Deserializer$Dart.prototype._jsArrayToDartListNoCopy$$named_, this);
}
;
Deserializer$Dart.prototype._deserialized$$named_ = function(){
  return this._deserialized$$getter_().apply(this, arguments);
}
;
Deserializer$Dart.prototype._deserialized$$getter_ = function(){
  return this._deserialized$$field_;
}
;
Deserializer$Dart.prototype._deserialized$$setter_ = function(tmp$0){
  this._deserialized$$field_ = tmp$0;
}
;
Deserializer$Dart._isJsArray$$member_ = function(x){
  return native_Deserializer__isJsArray(x);
}
;
Deserializer$Dart._isJsArray$$named_ = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart._isJsArray$$member_(x);
}
;
Deserializer$Dart._isJsArray$$getter_ = function _isJsArray$$getter_(){
  return Deserializer$Dart._isJsArray$$named_;
}
;
Deserializer$Dart._jsArrayIndex$$member_ = function(x, index){
  return native_Deserializer__jsArrayIndex(x, index);
}
;
Deserializer$Dart._jsArrayIndex$$named_ = function($n, $o, x, index){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return Deserializer$Dart._jsArrayIndex$$member_(x, index);
}
;
Deserializer$Dart._jsArrayIndex$$getter_ = function _jsArrayIndex$$getter_(){
  return Deserializer$Dart._jsArrayIndex$$named_;
}
;
Deserializer$Dart._jsArrayLength$$member_ = function(x){
  return native_Deserializer__jsArrayLength(x);
}
;
Deserializer$Dart._jsArrayLength$$named_ = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Deserializer$Dart._jsArrayLength$$member_(x);
}
;
Deserializer$Dart._jsArrayLength$$getter_ = function _jsArrayLength$$getter_(){
  return Deserializer$Dart._jsArrayLength$$named_;
}
;
function MathNatives$Dart(){
}

MathNatives$Dart.$lookupRTT = function(){
  return RTT.create($cls('MathNatives$Dart'));
}
;
MathNatives$Dart.$addTo = function(target){
  var rtt = MathNatives$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
}
;
MathNatives$Dart.prototype.$implements$MathNatives$Dart = 1;
MathNatives$Dart.prototype.$implements$Object$Dart = 1;
MathNatives$Dart.cos$member = function(d){
  return native_MathNatives_cos(d);
}
;
MathNatives$Dart.cos$named = function($n, $o, d){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.cos$member(d);
}
;
MathNatives$Dart.cos$getter = function cos$getter(){
  return MathNatives$Dart.cos$named;
}
;
MathNatives$Dart.sin$member = function(d){
  return native_MathNatives_sin(d);
}
;
MathNatives$Dart.sin$named = function($n, $o, d){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.sin$member(d);
}
;
MathNatives$Dart.sin$getter = function sin$getter(){
  return MathNatives$Dart.sin$named;
}
;
MathNatives$Dart.tan$member = function(d){
  return native_MathNatives_tan(d);
}
;
MathNatives$Dart.tan$named = function($n, $o, d){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.tan$member(d);
}
;
MathNatives$Dart.tan$getter = function tan$getter(){
  return MathNatives$Dart.tan$named;
}
;
MathNatives$Dart.acos$member = function(d){
  return native_MathNatives_acos(d);
}
;
MathNatives$Dart.acos$named = function($n, $o, d){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.acos$member(d);
}
;
MathNatives$Dart.acos$getter = function acos$getter(){
  return MathNatives$Dart.acos$named;
}
;
MathNatives$Dart.asin$member = function(d){
  return native_MathNatives_asin(d);
}
;
MathNatives$Dart.asin$named = function($n, $o, d){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.asin$member(d);
}
;
MathNatives$Dart.asin$getter = function asin$getter(){
  return MathNatives$Dart.asin$named;
}
;
MathNatives$Dart.atan$member = function(d){
  return native_MathNatives_atan(d);
}
;
MathNatives$Dart.atan$named = function($n, $o, d){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.atan$member(d);
}
;
MathNatives$Dart.atan$getter = function atan$getter(){
  return MathNatives$Dart.atan$named;
}
;
MathNatives$Dart.atan2$member = function(a, b){
  return native_MathNatives_atan2(a, b);
}
;
MathNatives$Dart.atan2$named = function($n, $o, a, b){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return MathNatives$Dart.atan2$member(a, b);
}
;
MathNatives$Dart.atan2$getter = function atan2$getter(){
  return MathNatives$Dart.atan2$named;
}
;
MathNatives$Dart.sqrt$member = function(d){
  return native_MathNatives_sqrt(d);
}
;
MathNatives$Dart.sqrt$named = function($n, $o, d){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.sqrt$member(d);
}
;
MathNatives$Dart.sqrt$getter = function sqrt$getter(){
  return MathNatives$Dart.sqrt$named;
}
;
MathNatives$Dart.exp$member = function(d){
  return native_MathNatives_exp(d);
}
;
MathNatives$Dart.exp$named = function($n, $o, d){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.exp$member(d);
}
;
MathNatives$Dart.exp$getter = function exp$getter(){
  return MathNatives$Dart.exp$named;
}
;
MathNatives$Dart.log$member = function(d){
  return native_MathNatives_log(d);
}
;
MathNatives$Dart.log$named = function($n, $o, d){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.log$member(d);
}
;
MathNatives$Dart.log$getter = function log$getter(){
  return MathNatives$Dart.log$named;
}
;
MathNatives$Dart.pow$member = function(d1, d2){
  return native_MathNatives_pow(d1, d2);
}
;
MathNatives$Dart.pow$named = function($n, $o, d1, d2){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return MathNatives$Dart.pow$member(d1, d2);
}
;
MathNatives$Dart.pow$getter = function pow$getter(){
  return MathNatives$Dart.pow$named;
}
;
MathNatives$Dart.random$member = function(){
  return native_MathNatives_random();
}
;
MathNatives$Dart.random$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return MathNatives$Dart.random$member();
}
;
MathNatives$Dart.random$getter = function random$getter(){
  return MathNatives$Dart.random$named;
}
;
MathNatives$Dart.parseInt$member = function(str){
  return native_MathNatives_parseInt(str);
}
;
MathNatives$Dart.parseInt$named = function($n, $o, str){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.parseInt$member(str);
}
;
MathNatives$Dart.parseInt$getter = function parseInt$getter(){
  return MathNatives$Dart.parseInt$named;
}
;
MathNatives$Dart.parseDouble$member = function(str){
  return native_MathNatives_parseDouble(str);
}
;
MathNatives$Dart.parseDouble$named = function($n, $o, str){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart.parseDouble$member(str);
}
;
MathNatives$Dart.parseDouble$getter = function parseDouble$getter(){
  return MathNatives$Dart.parseDouble$named;
}
;
MathNatives$Dart._newBadNumberFormat$$member_ = function(x){
  return BadNumberFormatException$Dart.BadNumberFormatException$$Factory(x);
}
;
MathNatives$Dart._newBadNumberFormat$$named_ = function($n, $o, x){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return MathNatives$Dart._newBadNumberFormat$$member_(x);
}
;
function native_MathNatives__newBadNumberFormat(x){
  return MathNatives$Dart._newBadNumberFormat$$member_(x);
}

MathNatives$Dart._newBadNumberFormat$$getter_ = function _newBadNumberFormat$$getter_(){
  return MathNatives$Dart._newBadNumberFormat$$named_;
}
;
MathNatives$Dart.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
MathNatives$Dart.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
MathNatives$Dart.MathNatives$$Factory = function(){
  var tmp$0 = new MathNatives$Dart;
  tmp$0.$typeInfo = MathNatives$Dart.$lookupRTT();
  MathNatives$Dart.$Initializer.call(tmp$0);
  MathNatives$Dart.$Constructor.call(tmp$0);
  return tmp$0;
}
;
Number.$lookupRTT = function(){
  return RTT.create($cls('Number'), Number.$RTTimplements);
}
;
Number.$RTTimplements = function(rtt){
  Number.$addTo(rtt);
}
;
Number.$addTo = function(target){
  var rtt = Number.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  int$Dart.$addTo(target);
  double$Dart.$addTo(target);
}
;
Number.prototype.$implements$NumberImplementation$Dart = 1;
Number.prototype.$implements$int$Dart = 1;
Number.prototype.$implements$num$Dart = 1;
Number.prototype.$implements$Comparable$Dart = 1;
Number.prototype.$implements$Hashable$Dart = 1;
Number.prototype.$implements$double$Dart = 1;
Number.prototype.$implements$Object$Dart = 1;
Number.prototype.ADD$operator = function(other){
  return native_NumberImplementation_ADD.call(this, other);
}
;
Number.prototype.SUB$operator = function(other){
  return native_NumberImplementation_SUB.call(this, other);
}
;
Number.prototype.MUL$operator = function(other){
  return native_NumberImplementation_MUL.call(this, other);
}
;
Number.prototype.DIV$operator = function(other){
  return native_NumberImplementation_DIV.call(this, other);
}
;
Number.prototype.TRUNC$operator = function(other){
  return native_NumberImplementation_TRUNC.call(this, other);
}
;
Number.prototype.MOD$operator = function(shiftAmount){
  return native_NumberImplementation_MOD.call(this, shiftAmount);
}
;
Number.prototype.negate$operator = function(){
  return native_NumberImplementation_negate.call(this);
}
;
Number.prototype.BIT_OR$operator = function(other){
  return native_NumberImplementation_BIT_OR.call(this, other);
}
;
Number.prototype.BIT_AND$operator = function(other){
  return native_NumberImplementation_BIT_AND.call(this, other);
}
;
Number.prototype.BIT_XOR$operator = function(other){
  return native_NumberImplementation_BIT_XOR.call(this, other);
}
;
Number.prototype.SHL$operator = function(shiftAmount){
  return native_NumberImplementation_SHL.call(this, shiftAmount);
}
;
Number.prototype.SAR$operator = function(shiftAmount){
  return native_NumberImplementation_SAR.call(this, shiftAmount);
}
;
Number.prototype.BIT_NOT$operator = function(){
  return native_NumberImplementation_BIT_NOT.call(this);
}
;
Number.prototype.EQ$operator = function(other){
  return native_NumberImplementation_EQ.call(this, other);
}
;
Number.prototype.LT$operator = function(other){
  return native_NumberImplementation_LT.call(this, other);
}
;
Number.prototype.LTE$operator = function(other){
  return native_NumberImplementation_LTE.call(this, other);
}
;
Number.prototype.GT$operator = function(other){
  return native_NumberImplementation_GT.call(this, other);
}
;
Number.prototype.GTE$operator = function(other){
  return native_NumberImplementation_GTE.call(this, other);
}
;
Number.prototype.remainder$member = function(other){
  return native_NumberImplementation_remainder.call(this, other);
}
;
Number.prototype.remainder$named = function($n, $o, other){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Number.prototype.remainder$member.call(this, other);
}
;
Number.prototype.remainder$getter = function remainder$getter(){
  return $bind(Number.prototype.remainder$named, this);
}
;
Number.prototype.abs$member = function(){
  return native_NumberImplementation_abs.call(this);
}
;
Number.prototype.abs$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.abs$member.call(this);
}
;
Number.prototype.abs$getter = function abs$getter(){
  return $bind(Number.prototype.abs$named, this);
}
;
Number.prototype.round$member = function(){
  return native_NumberImplementation_round.call(this);
}
;
Number.prototype.round$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.round$member.call(this);
}
;
Number.prototype.round$getter = function round$getter(){
  return $bind(Number.prototype.round$named, this);
}
;
Number.prototype.floor$member = function(){
  return native_NumberImplementation_floor.call(this);
}
;
Number.prototype.floor$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.floor$member.call(this);
}
;
Number.prototype.floor$getter = function floor$getter(){
  return $bind(Number.prototype.floor$named, this);
}
;
Number.prototype.ceil$member = function(){
  return native_NumberImplementation_ceil.call(this);
}
;
Number.prototype.ceil$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.ceil$member.call(this);
}
;
Number.prototype.ceil$getter = function ceil$getter(){
  return $bind(Number.prototype.ceil$named, this);
}
;
Number.prototype.truncate$member = function(){
  return native_NumberImplementation_truncate.call(this);
}
;
Number.prototype.truncate$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.truncate$member.call(this);
}
;
Number.prototype.truncate$getter = function truncate$getter(){
  return $bind(Number.prototype.truncate$named, this);
}
;
Number.prototype.compareTo$member = function(other){
  return SUB$operator(this, other);
}
;
Number.prototype.compareTo$named = function($n, $o, other){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Number.prototype.compareTo$member.call(this, other);
}
;
Number.prototype.compareTo$getter = function compareTo$getter(){
  return $bind(Number.prototype.compareTo$named, this);
}
;
Number.prototype.isNegative$member = function(){
  return native_NumberImplementation_isNegative.call(this);
}
;
Number.prototype.isNegative$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.isNegative$member.call(this);
}
;
Number.prototype.isNegative$getter = function isNegative$getter(){
  return $bind(Number.prototype.isNegative$named, this);
}
;
Number.prototype.isEven$member = function(){
  return native_NumberImplementation_isEven.call(this);
}
;
Number.prototype.isEven$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.isEven$member.call(this);
}
;
Number.prototype.isEven$getter = function isEven$getter(){
  return $bind(Number.prototype.isEven$named, this);
}
;
Number.prototype.isOdd$member = function(){
  return native_NumberImplementation_isOdd.call(this);
}
;
Number.prototype.isOdd$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.isOdd$member.call(this);
}
;
Number.prototype.isOdd$getter = function isOdd$getter(){
  return $bind(Number.prototype.isOdd$named, this);
}
;
Number.prototype.isNaN$member = function(){
  return native_NumberImplementation_isNaN.call(this);
}
;
Number.prototype.isNaN$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.isNaN$member.call(this);
}
;
Number.prototype.isNaN$getter = function isNaN$getter(){
  return $bind(Number.prototype.isNaN$named, this);
}
;
Number.prototype.isInfinite$member = function(){
  return native_NumberImplementation_isInfinite.call(this);
}
;
Number.prototype.isInfinite$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.isInfinite$member.call(this);
}
;
Number.prototype.isInfinite$getter = function isInfinite$getter(){
  return $bind(Number.prototype.isInfinite$named, this);
}
;
Number.prototype.toInt$member = function(){
  if (this.isNaN$member()) {
    $Dart$ThrowException(BadNumberFormatException$Dart.BadNumberFormatException$$Factory('NaN'));
  }
  if (this.isInfinite$member()) {
    $Dart$ThrowException(BadNumberFormatException$Dart.BadNumberFormatException$$Factory('Infinity'));
  }
  var truncated = this.truncate$member();
  if (EQ$operator(truncated, negate$operator(0))) {
    return 0;
  }
  return truncated;
}
;
Number.prototype.toInt$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.toInt$member.call(this);
}
;
Number.prototype.toInt$getter = function toInt$getter(){
  return $bind(Number.prototype.toInt$named, this);
}
;
Number.prototype.toDouble$member = function(){
  return this;
}
;
Number.prototype.toDouble$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.toDouble$member.call(this);
}
;
Number.prototype.toDouble$getter = function toDouble$getter(){
  return $bind(Number.prototype.toDouble$named, this);
}
;
Number.prototype.toString$member = function(){
  return native_NumberImplementation_toString.call(this);
}
;
Number.prototype.toString$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.toString$member.call(this);
}
;
Number.prototype.toString$getter = function toString$getter(){
  return $bind(Number.prototype.toString$named, this);
}
;
Number.prototype.toStringAsFixed$member = function(fractionDigits){
  return native_NumberImplementation_toStringAsFixed.call(this, fractionDigits);
}
;
Number.prototype.toStringAsFixed$named = function($n, $o, fractionDigits){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Number.prototype.toStringAsFixed$member.call(this, fractionDigits);
}
;
Number.prototype.toStringAsFixed$getter = function toStringAsFixed$getter(){
  return $bind(Number.prototype.toStringAsFixed$named, this);
}
;
Number.prototype.toStringAsExponential$member = function(fractionDigits){
  return native_NumberImplementation_toStringAsExponential.call(this, fractionDigits);
}
;
Number.prototype.toStringAsExponential$named = function($n, $o, fractionDigits){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Number.prototype.toStringAsExponential$member.call(this, fractionDigits);
}
;
Number.prototype.toStringAsExponential$getter = function toStringAsExponential$getter(){
  return $bind(Number.prototype.toStringAsExponential$named, this);
}
;
Number.prototype.toStringAsPrecision$member = function(precision){
  return native_NumberImplementation_toStringAsPrecision.call(this, precision);
}
;
Number.prototype.toStringAsPrecision$named = function($n, $o, precision){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Number.prototype.toStringAsPrecision$member.call(this, precision);
}
;
Number.prototype.toStringAsPrecision$getter = function toStringAsPrecision$getter(){
  return $bind(Number.prototype.toStringAsPrecision$named, this);
}
;
Number.prototype.toRadixString$member = function(radix){
  return native_NumberImplementation_toRadixString.call(this, radix);
}
;
Number.prototype.toRadixString$named = function($n, $o, radix){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return Number.prototype.toRadixString$member.call(this, radix);
}
;
Number.prototype.toRadixString$getter = function toRadixString$getter(){
  return $bind(Number.prototype.toRadixString$named, this);
}
;
Number.prototype.hashCode$member = function(){
  return native_NumberImplementation_hashCode.call(this);
}
;
Number.prototype.hashCode$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return Number.prototype.hashCode$member.call(this);
}
;
Number.prototype.hashCode$getter = function hashCode$getter(){
  return $bind(Number.prototype.hashCode$named, this);
}
;
Number.$Constructor = function(){
  Object.$Constructor.call(this);
}
;
Number.$Initializer = function(){
  Object.$Initializer.call(this);
}
;
Number.NumberImplementation$$Factory = function(){
  var tmp$0 = new Number;
  tmp$0.$typeInfo = Number.$lookupRTT();
  Number.$Initializer.call(tmp$0);
  Number.$Constructor.call(tmp$0);
  return tmp$0;
}
;
function JSSyntaxRegExp$Dart(){
}

JSSyntaxRegExp$Dart.$lookupRTT = function(){
  return RTT.create($cls('JSSyntaxRegExp$Dart'), JSSyntaxRegExp$Dart.$RTTimplements);
}
;
JSSyntaxRegExp$Dart.$RTTimplements = function(rtt){
  JSSyntaxRegExp$Dart.$addTo(rtt);
}
;
JSSyntaxRegExp$Dart.$addTo = function(target){
  var rtt = JSSyntaxRegExp$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  RegExp$Dart.$addTo(target);
}
;
JSSyntaxRegExp$Dart.prototype.$implements$JSSyntaxRegExp$Dart = 1;
JSSyntaxRegExp$Dart.prototype.$implements$RegExp$Dart = 1;
JSSyntaxRegExp$Dart.prototype.$implements$Pattern$Dart = 1;
JSSyntaxRegExp$Dart.prototype.$implements$Object$Dart = 1;
JSSyntaxRegExp$Dart.$Constructor = function(pattern, multiLine, ignoreCase){
  Object.$Constructor.call(this);
}
;
JSSyntaxRegExp$Dart.$Initializer = function(pattern, multiLine, ignoreCase){
  Object.$Initializer.call(this);
  this.pattern$field = pattern;
  this.multiLine$field = multiLine;
  this.ignoreCase$field = ignoreCase;
}
;
JSSyntaxRegExp$Dart.JSSyntaxRegExp$$Factory = function(pattern, multiLine, ignoreCase){
  var tmp$0 = new JSSyntaxRegExp$Dart;
  tmp$0.$typeInfo = JSSyntaxRegExp$Dart.$lookupRTT();
  JSSyntaxRegExp$Dart.$Initializer.call(tmp$0, pattern, multiLine, ignoreCase);
  JSSyntaxRegExp$Dart.$Constructor.call(tmp$0, pattern, multiLine, ignoreCase);
  return tmp$0;
}
;
JSSyntaxRegExp$Dart.prototype.pattern$named = function(){
  return this.pattern$getter().apply(this, arguments);
}
;
JSSyntaxRegExp$Dart.prototype.pattern$getter = function(){
  return this.pattern$field;
}
;
JSSyntaxRegExp$Dart.prototype.multiLine$named = function(){
  return this.multiLine$getter().apply(this, arguments);
}
;
JSSyntaxRegExp$Dart.prototype.multiLine$getter = function(){
  return this.multiLine$field;
}
;
JSSyntaxRegExp$Dart.prototype.ignoreCase$named = function(){
  return this.ignoreCase$getter().apply(this, arguments);
}
;
JSSyntaxRegExp$Dart.prototype.ignoreCase$getter = function(){
  return this.ignoreCase$field;
}
;
JSSyntaxRegExp$Dart.prototype.allMatches$member = function(str){
  return _LazyAllMatches$Dart._LazyAllMatches$$Factory(this, str);
}
;
JSSyntaxRegExp$Dart.prototype.allMatches$named = function($n, $o, str){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxRegExp$Dart.prototype.allMatches$member.call(this, str);
}
;
JSSyntaxRegExp$Dart.prototype.allMatches$getter = function allMatches$getter(){
  return $bind(JSSyntaxRegExp$Dart.prototype.allMatches$named, this);
}
;
JSSyntaxRegExp$Dart.prototype.firstMatch$member = function(str){
  return native_JSSyntaxRegExp_firstMatch.call(this, str);
}
;
JSSyntaxRegExp$Dart.prototype.firstMatch$named = function($n, $o, str){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxRegExp$Dart.prototype.firstMatch$member.call(this, str);
}
;
JSSyntaxRegExp$Dart.prototype.firstMatch$getter = function firstMatch$getter(){
  return $bind(JSSyntaxRegExp$Dart.prototype.firstMatch$named, this);
}
;
JSSyntaxRegExp$Dart.prototype.hasMatch$member = function(str){
  return native_JSSyntaxRegExp_hasMatch.call(this, str);
}
;
JSSyntaxRegExp$Dart.prototype.hasMatch$named = function($n, $o, str){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxRegExp$Dart.prototype.hasMatch$member.call(this, str);
}
;
JSSyntaxRegExp$Dart.prototype.hasMatch$getter = function hasMatch$getter(){
  return $bind(JSSyntaxRegExp$Dart.prototype.hasMatch$named, this);
}
;
JSSyntaxRegExp$Dart.prototype.stringMatch$member = function(str){
  return native_JSSyntaxRegExp_stringMatch.call(this, str);
}
;
JSSyntaxRegExp$Dart.prototype.stringMatch$named = function($n, $o, str){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxRegExp$Dart.prototype.stringMatch$member.call(this, str);
}
;
JSSyntaxRegExp$Dart.prototype.stringMatch$getter = function stringMatch$getter(){
  return $bind(JSSyntaxRegExp$Dart.prototype.stringMatch$named, this);
}
;
JSSyntaxRegExp$Dart._pattern$$member_ = function(regexp){
  return regexp.pattern$getter();
}
;
JSSyntaxRegExp$Dart._pattern$$named_ = function($n, $o, regexp){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxRegExp$Dart._pattern$$member_(regexp);
}
;
function native_JSSyntaxRegExp__pattern(regexp){
  return JSSyntaxRegExp$Dart._pattern$$member_(regexp);
}

JSSyntaxRegExp$Dart._pattern$$getter_ = function _pattern$$getter_(){
  return JSSyntaxRegExp$Dart._pattern$$named_;
}
;
JSSyntaxRegExp$Dart._multiLine$$member_ = function(regexp){
  return regexp.multiLine$getter();
}
;
JSSyntaxRegExp$Dart._multiLine$$named_ = function($n, $o, regexp){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxRegExp$Dart._multiLine$$member_(regexp);
}
;
function native_JSSyntaxRegExp__multiLine(regexp){
  return JSSyntaxRegExp$Dart._multiLine$$member_(regexp);
}

JSSyntaxRegExp$Dart._multiLine$$getter_ = function _multiLine$$getter_(){
  return JSSyntaxRegExp$Dart._multiLine$$named_;
}
;
JSSyntaxRegExp$Dart._ignoreCase$$member_ = function(regexp){
  return regexp.ignoreCase$getter();
}
;
JSSyntaxRegExp$Dart._ignoreCase$$named_ = function($n, $o, regexp){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxRegExp$Dart._ignoreCase$$member_(regexp);
}
;
function native_JSSyntaxRegExp__ignoreCase(regexp){
  return JSSyntaxRegExp$Dart._ignoreCase$$member_(regexp);
}

JSSyntaxRegExp$Dart._ignoreCase$$getter_ = function _ignoreCase$$getter_(){
  return JSSyntaxRegExp$Dart._ignoreCase$$named_;
}
;
JSSyntaxRegExp$Dart.prototype.$const_id = function(){
  return $cls('JSSyntaxRegExp$Dart') + (':' + $dart_const_id(this.pattern$field)) + (':' + $dart_const_id(this.multiLine$field)) + (':' + $dart_const_id(this.ignoreCase$field));
}
;
function JSSyntaxMatch$Dart(){
}

JSSyntaxMatch$Dart.$lookupRTT = function(){
  return RTT.create($cls('JSSyntaxMatch$Dart'), JSSyntaxMatch$Dart.$RTTimplements);
}
;
JSSyntaxMatch$Dart.$RTTimplements = function(rtt){
  JSSyntaxMatch$Dart.$addTo(rtt);
}
;
JSSyntaxMatch$Dart.$addTo = function(target){
  var rtt = JSSyntaxMatch$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  Match$Dart.$addTo(target);
}
;
JSSyntaxMatch$Dart.prototype.$implements$JSSyntaxMatch$Dart = 1;
JSSyntaxMatch$Dart.prototype.$implements$Match$Dart = 1;
JSSyntaxMatch$Dart.prototype.$implements$Object$Dart = 1;
JSSyntaxMatch$Dart.$Constructor = function(regexp, str){
  Object.$Constructor.call(this);
}
;
JSSyntaxMatch$Dart.$Initializer = function(regexp, str){
  Object.$Initializer.call(this);
  this.pattern$field = regexp;
  this.str$field = str;
}
;
JSSyntaxMatch$Dart.JSSyntaxMatch$$Factory = function(regexp, str){
  var tmp$0 = new JSSyntaxMatch$Dart;
  tmp$0.$typeInfo = JSSyntaxMatch$Dart.$lookupRTT();
  JSSyntaxMatch$Dart.$Initializer.call(tmp$0, regexp, str);
  JSSyntaxMatch$Dart.$Constructor.call(tmp$0, regexp, str);
  return tmp$0;
}
;
JSSyntaxMatch$Dart.prototype.str$named = function(){
  return this.str$getter().apply(this, arguments);
}
;
JSSyntaxMatch$Dart.prototype.str$getter = function(){
  return this.str$field;
}
;
JSSyntaxMatch$Dart.prototype.pattern$named = function(){
  return this.pattern$getter().apply(this, arguments);
}
;
JSSyntaxMatch$Dart.prototype.pattern$getter = function(){
  return this.pattern$field;
}
;
JSSyntaxMatch$Dart.prototype.INDEX$operator = function(group){
  return this.group$named(1, $noargs, group);
}
;
function JSSyntaxMatch$Dart$groups$c0$18_18$Hoisted(dartc_scp$1, group){
  dartc_scp$1.strings.add$named(1, $noargs, this.group$named(1, $noargs, group));
}

function JSSyntaxMatch$Dart$groups$c0$18_18$Hoisted$named($s0, $n, $o, group){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxMatch$Dart$groups$c0$18_18$Hoisted.call(this, $s0, group);
}

JSSyntaxMatch$Dart.prototype.groups$member = function(groups){
  var dartc_scp$1;
  dartc_scp$1 = {};
  dartc_scp$1.strings = ArrayFactory$Dart.Array$$Factory([String$Dart.$lookupRTT()], $Dart$Null);
  groups.forEach$named(1, $noargs, $bind(JSSyntaxMatch$Dart$groups$c0$18_18$Hoisted$named, this, dartc_scp$1));
  return dartc_scp$1.strings;
  dartc_scp$1 = $Dart$Null;
}
;
JSSyntaxMatch$Dart.prototype.groups$named = function($n, $o, groups){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxMatch$Dart.prototype.groups$member.call(this, groups);
}
;
JSSyntaxMatch$Dart.prototype.groups$getter = function groups$getter(){
  return $bind(JSSyntaxMatch$Dart.prototype.groups$named, this);
}
;
JSSyntaxMatch$Dart.prototype.group$member = function(nb){
  return native_JSSyntaxMatch_group.call(this, nb);
}
;
JSSyntaxMatch$Dart.prototype.group$named = function($n, $o, nb){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return JSSyntaxMatch$Dart.prototype.group$member.call(this, nb);
}
;
JSSyntaxMatch$Dart.prototype.group$getter = function group$getter(){
  return $bind(JSSyntaxMatch$Dart.prototype.group$named, this);
}
;
JSSyntaxMatch$Dart.prototype.start$member = function(){
  return native_JSSyntaxMatch_start.call(this);
}
;
JSSyntaxMatch$Dart.prototype.start$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return JSSyntaxMatch$Dart.prototype.start$member.call(this);
}
;
JSSyntaxMatch$Dart.prototype.start$getter = function start$getter(){
  return $bind(JSSyntaxMatch$Dart.prototype.start$named, this);
}
;
JSSyntaxMatch$Dart.prototype.end$member = function(){
  return native_JSSyntaxMatch_end.call(this);
}
;
JSSyntaxMatch$Dart.prototype.end$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return JSSyntaxMatch$Dart.prototype.end$member.call(this);
}
;
JSSyntaxMatch$Dart.prototype.end$getter = function end$getter(){
  return $bind(JSSyntaxMatch$Dart.prototype.end$named, this);
}
;
JSSyntaxMatch$Dart.prototype.groupCount$member = function(){
  return native_JSSyntaxMatch_groupCount.call(this);
}
;
JSSyntaxMatch$Dart.prototype.groupCount$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return JSSyntaxMatch$Dart.prototype.groupCount$member.call(this);
}
;
JSSyntaxMatch$Dart.prototype.groupCount$getter = function groupCount$getter(){
  return $bind(JSSyntaxMatch$Dart.prototype.groupCount$named, this);
}
;
JSSyntaxMatch$Dart._new$$member_ = function(regexp, str){
  return JSSyntaxMatch$Dart.JSSyntaxMatch$$Factory(regexp, str);
}
;
JSSyntaxMatch$Dart._new$$named_ = function($n, $o, regexp, str){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return JSSyntaxMatch$Dart._new$$member_(regexp, str);
}
;
function native_JSSyntaxMatch__new(regexp, str){
  return JSSyntaxMatch$Dart._new$$member_(regexp, str);
}

JSSyntaxMatch$Dart._new$$getter_ = function _new$$getter_(){
  return JSSyntaxMatch$Dart._new$$named_;
}
;
JSSyntaxMatch$Dart.prototype.$const_id = function(){
  return $cls('JSSyntaxMatch$Dart') + (':' + $dart_const_id(this.str$field)) + (':' + $dart_const_id(this.pattern$field));
}
;
function _LazyAllMatches$Dart(){
}

_LazyAllMatches$Dart.$lookupRTT = function(){
  return RTT.create($cls('_LazyAllMatches$Dart'), _LazyAllMatches$Dart.$RTTimplements);
}
;
_LazyAllMatches$Dart.$RTTimplements = function(rtt){
  _LazyAllMatches$Dart.$addTo(rtt);
}
;
_LazyAllMatches$Dart.$addTo = function(target){
  var rtt = _LazyAllMatches$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  Collection$Dart.$addTo(target, [Match$Dart.$lookupRTT()]);
}
;
_LazyAllMatches$Dart.prototype.$implements$_LazyAllMatches$Dart = 1;
_LazyAllMatches$Dart.prototype.$implements$Collection$Dart = 1;
_LazyAllMatches$Dart.prototype.$implements$Iterable$Dart = 1;
_LazyAllMatches$Dart.prototype.$implements$Object$Dart = 1;
_LazyAllMatches$Dart.$Constructor = function(_regexp, _str){
  Object.$Constructor.call(this);
}
;
_LazyAllMatches$Dart.$Initializer = function(_regexp, _str){
  Object.$Initializer.call(this);
  this._regexp$$field_ = _regexp;
  this._str$$field_ = _str;
}
;
_LazyAllMatches$Dart._LazyAllMatches$$Factory = function(_regexp, _str){
  var tmp$0 = new _LazyAllMatches$Dart;
  tmp$0.$typeInfo = _LazyAllMatches$Dart.$lookupRTT();
  _LazyAllMatches$Dart.$Initializer.call(tmp$0, _regexp, _str);
  _LazyAllMatches$Dart.$Constructor.call(tmp$0, _regexp, _str);
  return tmp$0;
}
;
_LazyAllMatches$Dart.prototype._regexp$$named_ = function(){
  return this._regexp$$getter_().apply(this, arguments);
}
;
_LazyAllMatches$Dart.prototype._regexp$$getter_ = function(){
  return this._regexp$$field_;
}
;
_LazyAllMatches$Dart.prototype._regexp$$setter_ = function(tmp$0){
  this._regexp$$field_ = tmp$0;
}
;
_LazyAllMatches$Dart.prototype._str$$named_ = function(){
  return this._str$$getter_().apply(this, arguments);
}
;
_LazyAllMatches$Dart.prototype._str$$getter_ = function(){
  return this._str$$field_;
}
;
_LazyAllMatches$Dart.prototype._str$$setter_ = function(tmp$0){
  this._str$$field_ = tmp$0;
}
;
_LazyAllMatches$Dart.prototype.forEach$member = function(f){
  {
    var $0 = this.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var match_0 = $0.next$named(0, $noargs);
      {
        f(1, $noargs, match_0);
      }
    }
  }
}
;
_LazyAllMatches$Dart.prototype.forEach$named = function($n, $o, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _LazyAllMatches$Dart.prototype.forEach$member.call(this, f);
}
;
_LazyAllMatches$Dart.prototype.forEach$getter = function forEach$getter(){
  return $bind(_LazyAllMatches$Dart.prototype.forEach$named, this);
}
;
_LazyAllMatches$Dart.prototype.filter$member = function(f){
  var result = ArrayFactory$Dart.Array$$Factory([Match$Dart.$lookupRTT()], $Dart$Null);
  {
    var $0 = this.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var match_0 = $0.next$named(0, $noargs);
      {
        if (f(1, $noargs, match_0)) {
          result.add$named(1, $noargs, match_0);
        }
      }
    }
  }
  return result;
}
;
_LazyAllMatches$Dart.prototype.filter$named = function($n, $o, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _LazyAllMatches$Dart.prototype.filter$member.call(this, f);
}
;
_LazyAllMatches$Dart.prototype.filter$getter = function filter$getter(){
  return $bind(_LazyAllMatches$Dart.prototype.filter$named, this);
}
;
_LazyAllMatches$Dart.prototype.every$member = function(f){
  {
    var $0 = this.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var match_0 = $0.next$named(0, $noargs);
      {
        if (!f(1, $noargs, match_0)) {
          return false;
        }
      }
    }
  }
  return true;
}
;
_LazyAllMatches$Dart.prototype.every$named = function($n, $o, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _LazyAllMatches$Dart.prototype.every$member.call(this, f);
}
;
_LazyAllMatches$Dart.prototype.every$getter = function every$getter(){
  return $bind(_LazyAllMatches$Dart.prototype.every$named, this);
}
;
_LazyAllMatches$Dart.prototype.some$member = function(f){
  {
    var $0 = this.iterator$named(0, $noargs);
    while ($0.hasNext$named(0, $noargs)) {
      var match_0 = $0.next$named(0, $noargs);
      {
        if (f(1, $noargs, match_0)) {
          return true;
        }
      }
    }
  }
  return false;
}
;
_LazyAllMatches$Dart.prototype.some$named = function($n, $o, f){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _LazyAllMatches$Dart.prototype.some$member.call(this, f);
}
;
_LazyAllMatches$Dart.prototype.some$getter = function some$getter(){
  return $bind(_LazyAllMatches$Dart.prototype.some$named, this);
}
;
_LazyAllMatches$Dart.prototype.isEmpty$member = function(){
  return EQ$operator(this._regexp$$getter_().firstMatch$named(1, $noargs, this._str$$getter_()), $Dart$Null);
}
;
_LazyAllMatches$Dart.prototype.isEmpty$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return _LazyAllMatches$Dart.prototype.isEmpty$member.call(this);
}
;
_LazyAllMatches$Dart.prototype.isEmpty$getter = function isEmpty$getter(){
  return $bind(_LazyAllMatches$Dart.prototype.isEmpty$named, this);
}
;
_LazyAllMatches$Dart.prototype.length$named = function(){
  return this.length$getter().apply(this, arguments);
}
;
_LazyAllMatches$Dart.prototype.length$getter = function(){
  var tmp$0;
  var result = 0;
  {
    var $1 = this.iterator$named(0, $noargs);
    while ($1.hasNext$named(0, $noargs)) {
      var match = $1.next$named(0, $noargs);
      {
        tmp$0 = result , (result = ADD$operator(tmp$0, 1) , tmp$0);
      }
    }
  }
  return result;
}
;
_LazyAllMatches$Dart.prototype.iterator$member = function(){
  return _LazyAllMatchesIterator$Dart._LazyAllMatchesIterator$$Factory(this._regexp$$getter_(), this._str$$getter_());
}
;
_LazyAllMatches$Dart.prototype.iterator$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return _LazyAllMatches$Dart.prototype.iterator$member.call(this);
}
;
_LazyAllMatches$Dart.prototype.iterator$getter = function iterator$getter(){
  return $bind(_LazyAllMatches$Dart.prototype.iterator$named, this);
}
;
_LazyAllMatches$Dart.prototype.$const_id = function(){
  return $cls('_LazyAllMatches$Dart') + (':' + $dart_const_id(this._regexp$$field_)) + (':' + $dart_const_id(this._str$$field_)) + (':' + $dart_const_id(this.length$field));
}
;
function _LazyAllMatchesIterator$Dart(){
}

_LazyAllMatchesIterator$Dart.$lookupRTT = function(){
  return RTT.create($cls('_LazyAllMatchesIterator$Dart'), _LazyAllMatchesIterator$Dart.$RTTimplements);
}
;
_LazyAllMatchesIterator$Dart.$RTTimplements = function(rtt){
  _LazyAllMatchesIterator$Dart.$addTo(rtt);
}
;
_LazyAllMatchesIterator$Dart.$addTo = function(target){
  var rtt = _LazyAllMatchesIterator$Dart.$lookupRTT();
  target.implementedTypes[rtt.classKey] = rtt;
  Iterator$Dart.$addTo(target, [Match$Dart.$lookupRTT()]);
}
;
_LazyAllMatchesIterator$Dart.prototype.$implements$_LazyAllMatchesIterator$Dart = 1;
_LazyAllMatchesIterator$Dart.prototype.$implements$Iterator$Dart = 1;
_LazyAllMatchesIterator$Dart.prototype.$implements$Object$Dart = 1;
_LazyAllMatchesIterator$Dart.$Constructor = function(_regexp, _str){
  Object.$Constructor.call(this);
  this._jsInit$$member_(this._regexp$$getter_());
}
;
_LazyAllMatchesIterator$Dart.$Initializer = function(_regexp, _str){
  Object.$Initializer.call(this);
  this._regexp$$field_ = _regexp;
  this._str$$field_ = _str;
}
;
_LazyAllMatchesIterator$Dart._LazyAllMatchesIterator$$Factory = function(_regexp, _str){
  var tmp$0 = new _LazyAllMatchesIterator$Dart;
  tmp$0.$typeInfo = _LazyAllMatchesIterator$Dart.$lookupRTT();
  _LazyAllMatchesIterator$Dart.$Initializer.call(tmp$0, _regexp, _str);
  _LazyAllMatchesIterator$Dart.$Constructor.call(tmp$0, _regexp, _str);
  return tmp$0;
}
;
_LazyAllMatchesIterator$Dart.prototype._regexp$$named_ = function(){
  return this._regexp$$getter_().apply(this, arguments);
}
;
_LazyAllMatchesIterator$Dart.prototype._regexp$$getter_ = function(){
  return this._regexp$$field_;
}
;
_LazyAllMatchesIterator$Dart.prototype._regexp$$setter_ = function(tmp$0){
  this._regexp$$field_ = tmp$0;
}
;
_LazyAllMatchesIterator$Dart.prototype._str$$named_ = function(){
  return this._str$$getter_().apply(this, arguments);
}
;
_LazyAllMatchesIterator$Dart.prototype._str$$getter_ = function(){
  return this._str$$field_;
}
;
_LazyAllMatchesIterator$Dart.prototype._str$$setter_ = function(tmp$0){
  this._str$$field_ = tmp$0;
}
;
_LazyAllMatchesIterator$Dart.prototype._nextMatch$$named_ = function(){
  return this._nextMatch$$getter_().apply(this, arguments);
}
;
_LazyAllMatchesIterator$Dart.prototype._nextMatch$$getter_ = function(){
  return this._nextMatch$$field_;
}
;
_LazyAllMatchesIterator$Dart.prototype._nextMatch$$setter_ = function(tmp$0){
  this._nextMatch$$field_ = tmp$0;
}
;
_LazyAllMatchesIterator$Dart.prototype.next$member = function(){
  var tmp$0;
  if (!this.hasNext$member()) {
    $Dart$ThrowException($intern(NoMoreElementsException$Dart.NoMoreElementsException$$Factory()));
  }
  var result = this._nextMatch$$getter_();
  this._nextMatch$$setter_(tmp$0 = $Dart$Null) , tmp$0;
  return result;
}
;
_LazyAllMatchesIterator$Dart.prototype.next$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return _LazyAllMatchesIterator$Dart.prototype.next$member.call(this);
}
;
_LazyAllMatchesIterator$Dart.prototype.next$getter = function next$getter(){
  return $bind(_LazyAllMatchesIterator$Dart.prototype.next$named, this);
}
;
_LazyAllMatchesIterator$Dart.prototype.hasNext$member = function(){
  var tmp$0;
  if (NE$operator(this._nextMatch$$getter_(), $Dart$Null)) {
    return true;
  }
  this._nextMatch$$setter_(tmp$0 = this._computeNextMatch$$member_(this._regexp$$getter_(), this._str$$getter_())) , tmp$0;
  return NE$operator(this._nextMatch$$getter_(), $Dart$Null);
}
;
_LazyAllMatchesIterator$Dart.prototype.hasNext$named = function($n, $o){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 0)
    $nsme();
  return _LazyAllMatchesIterator$Dart.prototype.hasNext$member.call(this);
}
;
_LazyAllMatchesIterator$Dart.prototype.hasNext$getter = function hasNext$getter(){
  return $bind(_LazyAllMatchesIterator$Dart.prototype.hasNext$named, this);
}
;
_LazyAllMatchesIterator$Dart.prototype._jsInit$$member_ = function(regexp){
  return native__LazyAllMatchesIterator__jsInit.call(this, regexp);
}
;
_LazyAllMatchesIterator$Dart.prototype._jsInit$$named_ = function($n, $o, regexp){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 1)
    $nsme();
  return _LazyAllMatchesIterator$Dart.prototype._jsInit$$member_.call(this, regexp);
}
;
_LazyAllMatchesIterator$Dart.prototype._jsInit$$getter_ = function _jsInit$$getter_(){
  return $bind(_LazyAllMatchesIterator$Dart.prototype._jsInit$$named_, this);
}
;
_LazyAllMatchesIterator$Dart.prototype._computeNextMatch$$member_ = function(regexp, str){
  return native__LazyAllMatchesIterator__computeNextMatch.call(this, regexp, str);
}
;
_LazyAllMatchesIterator$Dart.prototype._computeNextMatch$$named_ = function($n, $o, regexp, str){
  var seen = 0;
  var def = 0;
  if (seen != $o.count || seen + def + $n != 2)
    $nsme();
  return _LazyAllMatchesIterator$Dart.prototype._computeNextMatch$$member_.call(this, regexp, str);
}
;
_LazyAllMatchesIterator$Dart.prototype._computeNextMatch$$getter_ = function _computeNextMatch$$getter_(){<