OptimizedDart (v2)

Revision 2 of this benchmark created on


Test runner

Ready to run.

Testing in
TestOps/sec
Dart - Opt
var e;

function f(a, b) {
    if (b >= 0 && b < a.length) return b;
    h(aa(b))
};
Boolean.D = function (a) {
    return typeof a == "boolean" || a instanceof Boolean
};
var i = {},
    ba = {};

function ca(a, b) {
    return function (c, d) {
        return a.call(void 0, b, c, d)
    }
}
function j(a, b, c) {
    return function (d, g, m) {
        return a.call(b, c, d, g, m)
    }
}
function da(a, b, c) {
    return function (d, g, m, p) {
        return a.call(b, c, d, g, m, p)
    }
}
function ea(a, b) {
    var c = fa;
    return function (d, g, m) {
        return c.call(void 0, a, b, d, g, m)
    }
}
function ga(a, b) {
    if (a.prototype.__proto__) a.prototype.__proto__ = b.prototype;
    else {
        var c = function () {};
        c.prototype = b.prototype;
        a.prototype = new c;
        a.prototype.constructor = a
    }
}

function k(a) {
    if (!(typeof a == "function" ? a() : a)) throw a = Error("Assertion failed. "), Error.captureStackTrace && Error.captureStackTrace(a), a;
}
function ha(a, b) {
    return typeof a == "number" && typeof b == "number" ? a + b : a.Pa(b)
}
function ia(a) {
    a /= 4;
    return a < 0 ? Math.ceil(a) : Math.floor(a)
}
function l(a, b) {
    return a === void 0 ? b === void 0 : typeof a == "number" && typeof b == "number" ? a == b : a.U(b)
}
function h(a) {
    a && typeof a == "object" && Error.captureStackTrace && Error.captureStackTrace(a);
    throw a;
}

function n() {
    var a = new o;
    a.f = ja();
    Object.g.call(a);
    a.Ya = "";
    a.Sa = "";
    a.ia = [];
    Object.d.call(a);
    h(a)
}
var q = {
    a: 0
};

function r(a) {
    if (a === void 0) return "";
    if (typeof a === "number") return "n" + a;
    if (typeof a === "boolean") return "b" + (a ? 1 : 0);
    if (typeof a === "string") {
        var a = ka + a,
            b = la[a];
        b || (b = "s" + ++ma, la[a] = b);
        return b
    }
    if (typeof a === "function") throw "a function is not a constant expression";
    a = a.ab;
    if (a === void 0) throw "internal error: reference to non-canonical constant";
    return a
}
var ka = ":",
    ma = 0,
    la = {},
    na = {};

function t(a, b) {
    var c;
    if (a instanceof Array) {
        c = [];
        for (var d = a.length - 1; d >= 0; d--) c.push(r(a[d]));
        c = "a" + c.join(",")
    } else if (a && a.Ma) {
        c = oa();
        c.n("m");
        for (var d = true, g = pa(a).oa(0, q); g.aa(0, q);) {
            var m = g.pa(0, q);
            d ? d = false : c.n(",");
            c.n(r(m));
            c.n(",");
            c.n(qa(a.L(m)))
        }
        c = c.o(0, q)
    } else c = "o" + a.t();
    if (b != null) {
        c += "<";
        for (d = b.length - 1; d >= 0; d--) c += b[d], c += ",";
        c += ">"
    }
    d = ka + c;
    g = na[d];
    if (g != null) return g;
    a.ab = c;
    return na[d] = a
};
var u = null,
    v = [],
    w = this,
    x = typeof w.importScripts != "undefined",
    ra = x || typeof w.Worker != "undefined",
    y = 0,
    z = ra,
    A = false;

function sa(a, b, c, d, g) {
    if (a == y) {
        if (a = ta.get(b))(c = a.Da.get(c)) && ua(c, a, d, g)
    } else(x ? B : va.get(a)).postMessage({
        $: "message",
        qb: a,
        lb: b,
        mb: c,
        ea: d,
        ga: g
    })
}
function ua(a, b, c, d) {
    wa(b, function () {
        var b = z || A ? xa(c) : c,
            m = z || A ? xa(d) : d;
        if (a.V != null) {
            var p;
            var C = a.V;
            if (C === ba) throw "circular initialization";
            C !== i ? p = C : (a.V = ba, a.V = void 0);
            p(2, q, b, m)
        }
        ya()
    })
}
function za() {
    this.map = {};
    this.a = 0
}

function Ba(a, b, c) {
    if (a.map[b]) throw Error("Registry: Elements must be registered only once.");
    a.map[b] = c;
    a.a++
}
function Ca(a) {
    var b = va;
    a in b.map && (delete b.map[a], b.a--)
}
za.prototype.get = function (a) {
    return this.map[a]
};
var va = new za,
    ta = new za,
    Da = false;
x && (Da = function (a) {
    B.postMessage({
        $: "print",
        ea: a
    })
});

function Ea(a, b) {
    var c = b.data;
    switch (c.$) {
    case "start":
        y = c.id;
        var d = w[c.$a](),
            g = c.ga;
        wa(new Fa, function () {
            var a = z || A ? xa(g) : g,
                b = Ga(),
                c;
            0 != q.a && n();
            c = Ha.prototype.Fa.call(b);
            if (u.w == null || u.w.J()) Ia.call(a, "spawned", c);
            else {
                c = {
                    message: "spawned",
                    ga: c
                };
                var s = t(D([], Array.h()), [""]),
                    J;
                J = {};
                if (u.w == null) {
                    var Aa = Ja();
                    u.w = Aa
                }
                J.Ga = s.length;
                Aa = j(Ka, void 0, J);
                for (s = s.oa(0, q); s.aa(0, q);) La(s.pa(0, q), Aa);
                J.result = Ma();
                u.w.S(ca(Na, J));
                ya();
                La(J.result, j(Oa, a, c))
            }
            d.Db(b)
        });
        Pa();
        break;
    case "spawn-worker":
        Qa(c.$a, c.Jb);
        break;
    case "message":
        sa(c.qb, c.lb, c.mb, c.ea, c.ga);
        Pa();
        break;
    case "close":
        Ca(a.id);
        a.terminate();
        Pa();
        break;
    case "print":
        Ra(c.ea);
        break;
    case "error":
        throw c.ea;
    }
}
if (ra) w.onmessage = function (a) {
    Ea(B, a)
};
var B = new function () {
        this.id = 0
    };
B.postMessage = function (a) {
    w.postMessage(a)
};
var Sa = 1;

function Fa() {
    this.id = Sa++;
    this.nb = {};
    this.nb.Ib = Math.random() * 268435455 >>> 0;
    this.Da = new za;
    Ta(this, function () {
        for (var a = 0, b = v.length; a < b; a++) v[a]()
    })
}
function Ta(a, b) {
    var c = u;
    u = a;
    try {
        b()
    } finally {
        u = c
    }
}
var Ua = [];

function Va(a, b) {
    this.kb = a;
    this.hb = b
}
function wa(a, b) {
    Ua.push(new Va(a, b))
}
var Wa = y + 1,
    Xa;
if (!ra || x) Xa = null;
else {
    var Ya = document.getElementsByTagName("script"),
        Za = Ya[Ya.length - 1],
        $a = Za.src;
    if (!$a) $a = "FIXME:5407062_" + Math.random().toString(), Za.src = $a;
    Xa = $a
}
function Qa(a, b) {
    var c = new Worker(Xa);
    c.onmessage = function (a) {
        Ea(c, a)
    };
    var d = Wa++;
    c.id = d;
    Ba(va, d, c);
    c.postMessage({
        $: "start",
        id: d,
        ga: b,
        $a: a
    })
}

function Ia(a, b) {
    if (b !== void 0 && !(b instanceof ab)) throw "SendPort::send: Illegal replyTo type.";
    a = z || A ? bb(a) : cb(a);
    b = z || A ? bb(b) : cb(b);
    sa(this.H, this.F, this.G, a, b)
}
function db() {
    var a;
    Ua.length != 0 ? (a = Ua[0], Ua.splice(0, 1)) : a = void 0;
    return a ? (Ta(a.kb, a.hb), true) : (x && ta.a === 0 && B.postMessage({
        $: "close"
    }), false)
}
function eb() {
    if (typeof window != "undefined" && window.setTimeout)(function b() {
        db() && window.setTimeout(b, 0)
    })();
    else for (;;) if (!db()) break
}

function Pa() {
    if (x) try {
        eb()
    } catch (a) {
        B.postMessage({
            $: "error",
            ea: "" + a
        })
    } else eb()
};
Number.D = function (a) {
    return typeof a == "number" || a instanceof Number
};
Object.D = function () {
    return true
};

function fb(a) {
    Da ? Da(a) : this.console ? this.console.log(a) : this.write && (this.write(a), this.write("\n"))
};

function E(a, b, c) {
    this.c = a;
    this.pb = b ? b : a;
    this.i = c;
    this.b = {};
    this.b[a] = this;
    a != F("Object") && (this.b[F("Object")] = G)
}
var gb = {};
E.prototype.q = [];
E.prototype.toString = function () {
    return this.pb
};
E.prototype.ya = function (a) {
    return a == null ? this === G || this === H : this.ca(hb(a))
};

function ib(a, b) {
    return a.hasOwnProperty(b) ? a[b] : null
}
E.prototype.ca = function (a) {
    if (a === this || a === H) return true;
    a = ib(a.b, this.c);
    if (a == null) return false;
    if (a.i && this.i) for (var b = this.i.length - 1; b >= 0; b--) if (!this.i[b].ca(a.i[b])) return false;
    return true
};

function jb(a) {
    if (a instanceof Array) return Array.h();
    switch (typeof a) {
    case "string":
        return String.h();
    case "number":
        return Number.h();
    case "boolean":
        return Boolean.h()
    }
    return kb
}

function I(a, b, c) {
    if (a == F("Object")) return G;
    var d = lb(a, c),
        g = ib(gb, d);
    if (g) return g;
    a = lb(a);
    g = new E(a, d, c);
    gb[d] = g;
    b && b(g, c);
    return g
}
function lb(a, b) {
    var c = a;
    b && (c += "<" + b.join(",") + ">");
    return c
}
function hb(a) {
    return a.f ? a.f : jb(a)
}
function D(a, b) {
    a.f = b;
    return a
}
function K(a, b) {
    if (a) if (a.length > b) return a[b];
    else throw Error("Missing type arg");
    return H
}
function L(a, b) {
    var c = ib(hb(a).b, b);
    if (!c) throw Error("internal error: can not find " + b + " in " + JSON.stringify(a));
    return c.i
}
var G = new E(F("Object"));
G.ya = function () {
    return true
};
G.ca = function () {
    return true
};
var H = new E(F("Dynamic"));
H.ya = function () {
    return true
};
H.ca = function () {
    return true
};
var kb = new E(F("::"));
kb.ya = function () {
    return true
};
kb.ca = function () {
    return true
};
D(Function.prototype, I(F("Function$Dart")));

function F(a) {
    return "cls:" + a
};
String.D = function (a) {
    return typeof a == "string" || a instanceof String
};

function mb(a) {
    if (!(a instanceof Array)) {
        for (var b = a.length, c = Array(b), d = 0; d < b; d++) c[d] = a.L(d);
        a = c
    }
    return String.fromCharCode.apply(this, a)
};

function M(a, b) {
    var c = true;
    b == null ? (b = 0, c = false) : b < 0 && h(nb(b));
    var d;
    d = ob(pb([K(a, 0)]));
    d = D(Array(b), Array.h(hb(d).i));
    d.X = c;
    return d
};
Array.h = function (a) {
    return I(F("Array"), Array.C, a)
};
Array.C = function (a, b) {
    Array.v(a, b);
    a.q = []
};
Array.v = function (a, b) {
    var c = Array.h(b);
    a.b[c.c] = c;
    qb(a, [K(a.i, 0)])
};
e = Array.prototype;
e.La = 1;
e.L = function (a) {
    if (0 <= a && a < this.length) return this.sa(a);
    h(aa(a))
};
e.T = function (a, b) {
    (a < 0 || this.length <= a) && h(aa(a));
    this[a] = b
};
e.za = function () {
    var a;
    if (this.X) {
        a = rb([K(L(this, F("Array")), 0)]);
        var b = new N;
        b.f = a;
        Object.g.call(b);
        b.M = this;
        b.R = 0;
        b.P = this.length
    } else a = sb([K(L(this, F("Array")), 0)]), b = new O, b.f = a, Object.g.call(b), b.M = this, b.R = 0;
    Object.d.call(b);
    return a = b
};
e.oa = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Array.prototype.za.call(this)
};
e.sa = function (a) {
    return this[a]
};
e.da = function () {
    return this.length
};
e.s = function (a) {
    for (var b = this.oa(0, q); b.aa(0, q);) {
        var c = b.pa(0, q);
        a(1, q, c)
    }
};
e.wa = function (a, b, c) {
    (0 != b.a || 0 + a != 1) && n();
    return Array.prototype.s.call(this, c)
};
e.J = function () {
    return this.length === 0
};
e.n = function (a) {
    this.X ? h(t(tb("Cannot add to a non-extendable array"))) : this.push(a)
};
e.S = function (a) {
    this.n(a)
};
e.Z = function () {
    this.X ? h(t(tb("Cannot clear a non-extendable array"))) : this.X ? h(t(tb("Cannot change the length of a non-extendable array"))) : this.length = 0
};
Array.d = function () {
    Object.d.call(this)
};
Array.g = function () {
    Object.g.call(this)
};
Array.Ab = function (a) {
    var b = [];
    b.f = a;
    Array.g.call(b);
    Array.d.call(b);
    return b
};

function N(a, b, c) {
    this.M = a;
    this.R = b;
    this.P = c
}
function rb(a) {
    return I(F("FixedSizeArrayIterator$Dart"), ub, a)
}
function ub(a, b) {
    var c = rb(b);
    a.b[c.c] = c;
    vb(a, [K(a.i, 0)]);
    a.q = []
}
ga(N, O);
N.prototype.I = function () {
    return this.P > this.R
};
N.prototype.aa = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return N.prototype.I.call(this)
};

function O(a, b) {
    this.M = a;
    this.R = b
}
function sb(a) {
    return I(F("VariableSizeArrayIterator$Dart"), wb, a)
}
function wb(a, b) {
    vb(a, b);
    a.q = []
}
function vb(a, b) {
    var c = sb(b);
    a.b[c.c] = c;
    xb(a, [K(a.i, 0)])
}
O.prototype.I = function () {
    return this.M.length > this.R
};
O.prototype.aa = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return O.prototype.I.call(this)
};
O.prototype.Ba = function () {
    this.I() || h(t(yb()));
    return this.M[f(this.M, this.R++)]
};
O.prototype.pa = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return O.prototype.Ba.call(this)
};
Boolean.h = function () {
    return I(F("Boolean"), Boolean.C)
};
Boolean.C = function (a) {
    Boolean.v(a)
};
Boolean.v = function (a) {
    var b = Boolean.h();
    a.b[b.c] = b;
    b = I(F("bool$Dart"));
    a.b[b.c] = b
};
Boolean.prototype.U = function (a) {
    return typeof a == "boolean" ? this == a : a instanceof Boolean ? this == Boolean(a) : false
};
Boolean.prototype.j = function () {
    return this == true ? "true" : "false"
};
Boolean.prototype.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Boolean.prototype.j.call(this)
};
Boolean.d = function () {
    Object.d.call(this)
};
Boolean.g = function () {
    Object.g.call(this)
};
Boolean.sb = function () {
    var a = new Boolean;
    a.f = Boolean.h();
    Boolean.g.call(a);
    Boolean.d.call(a);
    return a
};

function qa(a) {
    return r(a)
};

function ab() {}
function zb(a) {
    var b = I(F("SendPortImpl$Dart"), zb);
    a.b[b.c] = b;
    Ab(a)
}
e = ab.prototype;
e.Na = 1;

function P(a, b, c) {
    var d = new ab;
    d.f = I(F("SendPortImpl$Dart"), zb);
    Object.g.call(d);
    d.H = a;
    d.F = b;
    d.G = c;
    Object.d.call(d);
    return d
}
function Oa(a, b, c) {
    (0 != c.a || 0 + b != 1) && n();
    Ia.call(this, a.message, a.ga)
}
e.U = function (a) {
    return !!(a != null && a.Na) && l(this.H, a.H) && l(this.F, a.F) && l(this.G, a.G)
};
e.ba = function () {
    return this.H << 16 ^ this.F << 8 ^ this.G
};
e.na = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return ab.prototype.ba.call(this)
};
e.t = function () {
    return F("SendPortImpl$Dart") + (":" + r(this.G)) + (":" + r(this.F)) + (":" + r(this.H))
};
var Bb;

function Ha(a, b) {
    this.la = a;
    this.V = b
}
function Cb() {
    return I(F("ReceivePortImpl$Dart"), Db)
}
function Db(a) {
    var b = Cb();
    a.b[b.c] = b;
    b = I(F("ReceivePort$Dart"));
    a.b[b.c] = b
}
Ha.prototype.bb = 1;

function Ga() {
    Bb = u.Qa;
    var a = ha(Bb, 1);
    u.Qa = a;
    a = new Ha(Bb, void 0);
    Object.d.call(this);
    a.f = Cb();
    Object.d.call(a);
    var b = a.la,
        c = u;
    c.Da.a === 0 && Ba(ta, c.id, c);
    Ba(c.Da, b, a);
    return a
}
Ha.prototype.Fa = function () {
    return P(y, u.id, this.la)
};

function cb(a) {
    var b = new Eb;
    b.f = I(F("Copier$Dart"), Fb);
    Object.g.call(b);
    Object.d.call(b);
    return Gb(b, a)
}
function bb(a) {
    var b = new Hb;
    b.f = I(F("Serializer$Dart"), Ib);
    Object.g.call(b);
    b.ma = 0;
    Object.d.call(b);
    return Gb(b, a)
}
function xa(a) {
    var b = Jb();
    0 != q.a && n();
    return Kb.prototype.gb.call(b, a)
};

function Lb(a) {
    this.B = a
}
function Mb(a) {
    var b = I(F("MessageTraverser$Dart"));
    a.b[b.c] = b
}
function Nb(a) {
    return a == null || String.D(a) || !! (a != null && a.Oa) || Boolean.D(a)
}
e = Lb.prototype;
e.ob = function (a) {
    if (Nb(a)) return this.qa(a);
    this.B = M(null, void 0);
    var b = void 0;
    try {
        b = Q(this, a)
    } finally {
        for (var a = this.B.length, c = 0; c < a; c++) this.B[f(this.B, c)].__MessageTraverser__attached_info__ = void 0;
        this.B = void 0
    }
    return b
};

function Gb(a, b) {
    0 != q.a && n();
    return Lb.prototype.ob.call(a, b)
}

function Ob(a, b, c) {
    a.B.n(b);
    b.__MessageTraverser__attached_info__ = c
}
function Q(a, b) {
    if (Nb(b)) return a.qa(b);
    if (b != null && b.La) return a.Ha(b);
    if (b != null && b.Ma) return a.Ia(b);
    if (b != null && b.Na) return a.ha(b);
    if (b != null && b.bb) return a.Ja(b);
    if (b != null && b.rb) return a.Ka(b);
    h("Message serialization: Illegal value " + R(b) + " passed")
}
e.qa = function () {};
e.Ha = function () {};
e.Ia = function () {};
e.ha = function () {};
e.Ja = function () {};
e.Ka = function () {};

function Pb(a) {
    return a.__MessageTraverser__attached_info__
};

function Eb(a) {
    this.B = a
}
function Fb(a) {
    var b = I(F("Copier$Dart"), Fb);
    a.b[b.c] = b;
    Mb(a)
}
ga(Eb, Lb);
e = Eb.prototype;
e.qa = function (a) {
    return a
};
e.Ha = function (a) {
    var b = Pb(a);
    if (b != null) return b;
    var c = a.length,
        b = M(null, c);
    Ob(this, a, b);
    for (var d = 0; d < c; d++) b[f(b, d)] = Q(this, a[f(a, d)]);
    return b
};

function Qb(a, b, c, d, g) {
    (0 != c.a || 0 + b != 2) && n();
    a.copy.T(Q(this, d), Q(this, g))
}
e.Ia = function (a) {
    var b;
    b = {};
    b.copy = Pb(a);
    if (b.copy != null) return b.copy;
    b.copy = Rb();
    Ob(this, a, b.copy);
    a.wa(1, q, da(Qb, this, b));
    return b.copy
};
e.ha = function (a) {
    return P(a.H, a.F, a.G)
};
e.Ja = function (a) {
    return P(y, u.id, a.la)
};
e.Ka = function (a) {
    return P(y, u.id, a.la)
};

function Hb(a, b) {
    this.B = a;
    this.ma = b
}
function Ib(a) {
    var b = I(F("Serializer$Dart"), Ib);
    a.b[b.c] = b;
    Mb(a)
}
ga(Hb, Lb);
e = Hb.prototype;
e.qa = function (a) {
    return a
};
e.Ha = function (a) {
    var b = Pb(a);
    if (b != null) return S(D(["ref", b], Array.h()));
    b = this.ma++;
    Ob(this, a, b);
    a = Sb(this, a);
    return S(D(["list", b, a], Array.h()))
};
e.Ia = function (a) {
    var b = Pb(a);
    if (b != null) return S(D(["ref", b], Array.h()));
    b = this.ma++;
    Ob(this, a, b);
    var c = Sb(this, pa(a));
    0 != q.a && n();
    a = T.prototype.jb.call(a);
    a = Sb(this, a);
    return S(D(["map", b, c, a], Array.h()))
};
e.ha = function (a) {
    return S(D(["sendport", a.H, a.F, a.G], Array.h()))
};
e.Ja = function (a) {
    return this.ha(a.Fa())
};
e.Ka = function (a) {
    return this.ha(a.Fa())
};

function Sb(a, b) {
    for (var c = b.length, d = Array(c), g = 0; g < c; g++) {
        var m = Q(a, b[f(b, g)]);
        d[g] = m
    }
    return d
}
function S(a) {
    if (a instanceof Array) a.f = null;
    else {
        for (var b = a.length, c = Array(b), d = 0; d < b; d++) c[d] = a.L(d);
        a = c
    }
    return a
};

function Kb(a) {
    this.ka = a
}
function Jb() {
    var a = new Kb(void 0);
    Object.d.call(this);
    a.f = I(F("Deserializer$Dart"));
    Object.d.call(a);
    return a
}
function Tb(a) {
    return a == null || String.D(a) || !! (a != null && a.Oa) || Boolean.D(a)
}
Kb.prototype.gb = function (a) {
    if (Tb(a)) return a;
    this.ka = Rb();
    return Ub(this, a)
};

function Ub(a, b) {
    if (Tb(b)) return b;
    k(b instanceof Array);
    switch (b[0]) {
    case "ref":
        var c = a.ka.L(b[1]);
        k(c != null);
        return c;
    case "list":
        var d = b[1],
            c = b[2];
        k(c instanceof Array);
        k( !! (c != null && c.La));
        a.ka.T(d, c);
        for (var d = c.length, g = 0; g < d; g++) c[f(c, g)] = Ub(a, c[f(c, g)]);
        return c;
    case "map":
        c = Rb();
        a.ka.T(b[1], c);
        d = b[2];
        g = b[3];
        k(d instanceof Array);
        k(g instanceof Array);
        var m = d.length;
        k(m === g.length);
        for (var p = 0; p < m; p++) {
            var C = Ub(a, d[p]),
                s = Ub(a, g[p]);
            c.T(C, s)
        }
        return c;
    case "sendport":
        return P(b[1], b[2], b[3]);
    default:
        h("Unexpected serialized object")
    }
};
Number.h = function () {
    return I(F("Number"), Number.C)
};
Number.C = function (a) {
    Number.v(a)
};
Number.v = function (a) {
    var b = Number.h();
    a.b[b.c] = b;
    Vb(a);
    Wb(a)
};
e = Number.prototype;
e.Oa = 1;
e.Pa = function (a) {
    return this + a
};
e.U = function (a) {
    return typeof a == "number" ? this == a : a instanceof Number ? this == Number(a) : false
};
e.j = function () {
    return this.toString()
};
e.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Number.prototype.j.call(this)
};
e.ba = function () {
    return this & 268435455
};
e.na = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Number.prototype.ba.call(this)
};
Number.d = function () {
    Object.d.call(this)
};
Number.g = function () {
    Object.g.call(this)
};
Number.zb = function () {
    var a = new Number;
    a.f = Number.h();
    Number.g.call(a);
    Number.d.call(a);
    return a
};
String.h = function () {
    return I(F("String"), String.C)
};
String.C = function (a) {
    String.v(a)
};
String.v = function (a) {
    var b = String.h();
    a.b[b.c] = b;
    Xb(a)
};
String.Bb = function (a) {
    return String.Xa(a)
};
e = String.prototype;
e.L = function (a) {
    if (0 <= a && a < this.length) return this.sa(a);
    h(aa(a))
};
e.da = function () {
    return this.length
};
e.U = function (a) {
    return typeof a == "string" ? this == a : a instanceof String ? this == String(a) : false
};
e.J = function () {
    return this.length === 0
};
e.Pa = function (a) {
    return this.concat(a.o(0, q))
};
e.ba = function () {
    if (this.r === void 0) {
        for (var a = 0; a < this.length; a++) this.r += this.charCodeAt(a), this.r += this.r << 10, this.r ^= this.r >> 6;
        this.r += this.r << 3;
        this.r ^= this.r >> 11;
        this.r += this.r << 15;
        this.r &= 536870911
    }
    return this.r
};
e.na = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return String.prototype.ba.call(this)
};
e.j = function () {
    return String(this)
};
e.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return String.prototype.j.call(this)
};
String.Xa = function (a) {
    return mb(a)
};
String.eb = function (a, b, c) {
    (0 != b.a || 0 + a != 1) && n();
    return String.Xa(c)
};
String.Cb = function () {
    return String.eb
};
String.prototype.sa = function (a) {
    return this[a]
};

function R(a) {
    return a == null ? "null" : a.o(0, q)
};

function Yb() {}
function Zb() {
    return I(F("StringBufferImpl$Dart"), $b)
}
function $b(a) {
    var b = Zb();
    a.b[b.c] = b;
    b = I(F("StringBuffer$Dart"));
    a.b[b.c] = b
}
function oa() {
    var a = new Yb;
    a.f = Zb();
    Object.g.call(a);
    Object.d.call(a);
    a.Z();
    a.n("");
    return a
}
e = Yb.prototype;
e.da = function () {
    return this.P
};
e.J = function () {
    return this.P === 0
};
e.n = function (a) {
    a = a.o(0, q);
    if (a == null || a.J()) return this;
    this.z.n(a);
    this.P += a.da();
    return this
};
e.Z = function () {
    var a = [I(F("String$Dart"), ac)],
        b = void 0,
        c = true;
    b == null ? (b = 0, c = false) : b < 0 && h(nb(b));
    a = ob(pb([K(a, 0)]));
    b = D(Array(b), Array.h(hb(a).i));
    b.X = c;
    this.z = b;
    this.P = 0;
    return this
};
e.j = function () {
    if (this.z.length === 0) return "";
    if (this.z.length === 1) return this.z[f(this.z, 0)];
    var a;
    a = this.z;
    for (var b = "", c = 0; c < a.length; c++) {
        c > 0 && (b = b.concat(""));
        var d = a[f(a, c)],
            b = b.concat(d)
    }
    a = b;
    this.z.Z();
    this.z.n(a);
    return a
};
e.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Yb.prototype.j.call(this)
};

function bc() {}
function pb(a) {
    return I(F("TypeToken$Dart"), null, a)
}
function ob(a) {
    var b = new bc;
    b.f = a;
    Object.g.call(b);
    Object.d.call(b);
    return b
}
bc.prototype.t = function () {
    return F("TypeToken$Dart")
};

function cc(a, b) {
    qb(a, b);
    a.q = []
}
function qb(a, b) {
    var c = I(F("Array$Dart"), cc, b);
    a.b[c.c] = c;
    dc(a, [K(a.i, 0)])
};

function T() {}
function ec(a) {
    return I(F("HashMapImplementation$Dart"), fc, a)
}
function fc(a, b) {
    var c = ec(b);
    a.b[c.c] = c;
    gc(a, [K(a.i, 0), K(a.i, 1)]);
    a.q = []
}
e = T.prototype;
e.Ma = 1;

function Rb() {
    var a = ec(),
        b = new T;
    b.f = a;
    Object.g.call(b);
    Object.d.call(b);
    if (u.K == null) a = Object.cb(), u.K = a;
    b.A = 0;
    b.Y = 0;
    a = ia(24);
    b.Va = a;
    b.e = M(null, 8);
    b.k = M([K(L(b, F("HashMapImplementation$Dart")), 1)], 8);
    return b
}

function hc(a, b) {
    var c;
    c = b.na(0, q) & a.e.length - 1;
    for (var d = 1, g = -1;;) {
        var m = a.e[f(a.e, c)];
        if (m == null) return g < 0 ? c : g;
        else if (l(m, b)) return c;
        else g < 0 && u.K === m && (g = c);
        m = d++;
        c = c + m & a.e.length - 1
    }
}
function ic(a, b) {
    var c;
    c = b.na(0, q) & a.e.length - 1;
    for (var d = 1;;) {
        var g = a.e[f(a.e, c)];
        if (g == null) return -1;
        if (l(g, b)) return c;
        g = d++;
        c = c + g & a.e.length - 1
    }
}

function jc(a, b) {
    k((b & b - 1) === 0);
    var c = a.e.length;
    a.Va = ia(b * 3);
    var d = a.e,
        g = a.k;
    a.e = M(null, b);
    a.k = M([K(L(a, F("HashMapImplementation$Dart")), 1)], b);
    for (var m = 0; m < c; m++) {
        var p = d[f(d, m)];
        if (!(p == null || p === u.K)) {
            var C = g[f(g, m)],
                s = hc(a, p);
            a.e[f(a.e, s)] = p;
            a.k[f(a.k, s)] = C
        }
    }
    a.Y = 0
}
e.Z = function () {
    this.Y = this.A = 0;
    for (var a = this.e.length, b = 0; b < a; b++) this.e[f(this.e, b)] = void 0, this.k[f(this.k, b)] = void 0
};
e.T = function (a, b) {
    var c = this.A + 1;
    c >= this.Va ? jc(this, this.e.length * 2) : this.Y > this.e.length - c - this.Y && jc(this, this.e.length);
    c = hc(this, a);
    (this.e[f(this.e, c)] == null || this.e[f(this.e, c)] === u.K) && this.A++;
    this.e[f(this.e, c)] = a;
    this.k[f(this.k, c)] = b
};
e.L = function (a) {
    a = ic(this, a);
    return a < 0 ? void 0 : this.k[f(this.k, a)]
};
e.fa = function (a) {
    a = ic(this, a);
    if (a >= 0) {
        this.A--;
        var b = this.k[f(this.k, a)];
        this.k[f(this.k, a)] = void 0;
        this.e[f(this.e, a)] = u.K;
        this.Y++;
        return b
    }
};
e.Ea = function (a, b, c) {
    (0 != b.a || 0 + a != 1) && n();
    return T.prototype.fa.call(this, c)
};
e.J = function () {
    return this.A === 0
};
e.da = function () {
    return this.A
};
e.s = function (a) {
    for (var b = this.e.length, c = 0; c < b; c++) this.e[f(this.e, c)] != null && this.e[f(this.e, c)] !== u.K && a(2, q, this.e[f(this.e, c)], this.k[f(this.k, c)])
};
e.wa = function (a, b, c) {
    (0 != b.a || 0 + a != 1) && n();
    return T.prototype.s.call(this, c)
};

function kc(a, b, c, d) {
    (0 != c.a || 0 + b != 2) && n();
    a.list[f(a.list, a.xa++)] = d
}
e.ib = function () {
    var a;
    a = {};
    a.list = M([K(L(this, F("HashMapImplementation$Dart")), 0)], this.A);
    a.xa = 0;
    this.s(da(kc, void 0, a));
    return a.list
};

function pa(a) {
    0 != q.a && n();
    return T.prototype.ib.call(a)
}
function lc(a, b, c, d, g) {
    (0 != c.a || 0 + b != 2) && n();
    a.list[f(a.list, a.xa++)] = g
}
e.jb = function () {
    var a;
    a = {};
    a.list = M([K(L(this, F("HashMapImplementation$Dart")), 1)], this.A);
    a.xa = 0;
    this.s(da(lc, void 0, a));
    return a.list
};

function mc() {}
function nc(a, b) {
    var c = I(F("PromiseImpl$Dart"), nc, b);
    a.b[c.c] = c;
    c = [K(a.i, 0)];
    c = I(F("Promise$Dart"), null, c);
    a.b[c.c] = c;
    a.q = []
}
function Ma() {
    var a = I(F("PromiseImpl$Dart"), nc, void 0),
        b = new mc;
    b.f = a;
    Object.g.call(b);
    b.p = 0;
    b.ta = void 0;
    b.ra = void 0;
    b.Q = void 0;
    b.O = void 0;
    b.ja = void 0;
    Object.d.call(b);
    return b
}
function U(a) {
    return a.p !== 0 && a.p !== 1
}
function oc(a, b, c, d) {
    (0 != c.a || 0 + b != 1) && n();
    d(1, q, a.Aa)
}

function pc(a, b) {
    var c = {
        Aa: b
    };
    a.p === 4 ? (a.ta = c.Aa, a.p = 5) : (U(a) && h("Attempted to complete an already completed promise."), a.ta = c.Aa, a.p = 2, a.Q != null && a.Q.s(j(oc, void 0, c)), qc(a))
}
function qc(a) {
    a.Q = void 0;
    a.O = void 0;
    a.ja = void 0
}
function rc(a, b, c, d) {
    (0 != c.a || 0 + b != 1) && n();
    d(1, q, a.va)
}
function sc(a, b) {
    var c = {
        va: b
    };
    a.p === 4 ? (a.ra = c.va, a.p = 6) : (U(a) && h("Can't fail an already completed promise."), a.ra = c.va, a.p = 3, a.O != null && a.O.s(j(rc, void 0, c)), qc(a))
}

function fa(a, b, c, d, g) {
    (0 != d.a || 0 + c != 1) && n();
    pc(b.Ca, a.fb(1, q, g))
}
function tc(a, b, c, d) {
    (0 != c.a || 0 + b != 1) && n();
    sc(a.Ca, d)
}
function uc(a, b, c) {
    (0 != c.a || 0 + b != 0) && n();
    sc(a.Ca, "Source promise was cancelled")
}

function La(a, b) {
    var c = {
        fb: b
    },
        d;
    d = {};
    d.Ca = Ma();
    c = ea(c, d);
    if (a.p === 2) c(1, q, a.ta);
    else if (!U(a)) {
        if (a.Q == null) a.Q = Ja();
        a.Q.S(c)
    }
    c = j(tc, void 0, d);
    if (a.p === 3) c(1, q, a.ra);
    else if (!U(a)) {
        if (a.O == null) a.O = Ja();
        a.O.S(c)
    }
    d = ca(uc, d);
    if (a.p === 4 || a.p === 5 || a.p === 6) d(0, q);
    else if (!U(a)) {
        if (a.ja == null) a.ja = Ja();
        a.ja.S(d)
    }
};

function Ka(a, b, c) {
    (0 != c.a || 0 + b != 1) && n();
    k(a.Ga > 0);
    a.Ga--
}
function Na(a, b, c) {
    (0 != c.a || 0 + b != 0) && n();
    a.Ga > 0 ? a = false : (pc(a.result, void 0), a = true);
    return a
}
function ya() {
    if (u.w != null) for (; !u.w.J() && u.w.m.l.ua()(0, q);) u.w.m.l.Ea(0, q)
};

function V(a, b, c) {
    this.u = a;
    this.l = b;
    this.N = c
}
function vc(a) {
    return I(F("DoubleLinkedQueueEntry$Dart"), null, a)
}
V.prototype.Ua = function (a, b) {
    this.l = b;
    this.u = a;
    a.l = this;
    b.u = this
};
V.prototype.fa = function () {
    this.u.l = this.l;
    this.l.u = this.u;
    this.u = this.l = void 0;
    return this.N
};
V.prototype.Ea = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return V.prototype.fa.call(this)
};
V.prototype.ua = function () {
    return this.N
};

function W(a, b, c) {
    this.u = a;
    this.l = b;
    this.N = c
}
function wc(a) {
    return I(F("_DoubleLinkedQueueEntrySentinel$Dart"), xc, a)
}
function xc(a, b) {
    var c = wc(b);
    a.b[c.c] = c;
    c = [K(a.i, 0)];
    c = vc(c);
    a.b[c.c] = c;
    a.q = []
}
ga(W, V);
W.prototype.fa = function () {
    h(t(yc()))
};
W.prototype.Ea = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return W.prototype.fa.call(this)
};
W.prototype.ua = function () {
    h(t(yc()))
};

function zc() {}
function Ac(a) {
    return I(F("DoubleLinkedQueue$Dart"), Bc, a)
}
function Bc(a, b) {
    var c = Ac(b);
    a.b[c.c] = c;
    Cc(a, [K(a.i, 0)]);
    a.q = []
}
function Ja() {
    var a = Ac([I(F("Function$Dart"))]),
        b = new zc;
    b.f = a;
    Object.g.call(b);
    Object.d.call(b);
    var a = wc([K(L(b, F("DoubleLinkedQueue$Dart")), 0)]),
        c = new W;
    c.f = a;
    Object.g.call(c);
    Object.d.call(c);
    c.N = void 0;
    c.Ua(c, c);
    b.m = c;
    return b
}
e = zc.prototype;
e.S = function (a) {
    var b = this.m,
        c = vc([K(L(b, F("DoubleLinkedQueueEntry$Dart")), 0)]),
        d = new V;
    d.f = c;
    Object.g.call(d);
    Object.d.call(d);
    d.N = a;
    a = b.u;
    0 != q.a && n();
    V.prototype.Ua.call(d, a, b)
};
e.n = function (a) {
    this.S(a)
};

function Dc(a, b, c) {
    (0 != c.a || 0 + b != 1) && n();
    a.Za++
}
e.da = function () {
    var a;
    a = {
        Za: 0
    };
    this.s(j(Dc, void 0, a));
    return a.Za
};
e.J = function () {
    return this.m.l === this.m
};
e.Z = function () {
    this.m.l = this.m;
    this.m.u = this.m
};
e.s = function (a) {
    for (var b = this.m.l; b !== this.m;) a(1, q, b.N), b = b.l
};
e.wa = function (a, b, c) {
    (0 != b.a || 0 + a != 1) && n();
    return zc.prototype.s.call(this, c)
};
e.za = function () {
    return Ec(Fc([K(L(this, F("DoubleLinkedQueue$Dart")), 0)]), this.m)
};
e.oa = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return zc.prototype.za.call(this)
};

function X(a, b) {
    this.m = a;
    this.W = b
}
function Fc(a) {
    return I(F("_DoubleLinkedQueueIterator$Dart"), Gc, a)
}
function Gc(a, b) {
    var c = Fc(b);
    a.b[c.c] = c;
    xb(a, [K(a.i, 0)]);
    a.q = []
}
function Ec(a, b) {
    var c = new X(b, void 0);
    Object.d.call(this);
    c.f = a;
    Object.d.call(c);
    c.W = c.m;
    return c
}
X.prototype.I = function () {
    return this.W.l !== this.m
};
X.prototype.aa = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return X.prototype.I.call(this)
};
X.prototype.Ba = function () {
    this.I() || h(t(yb()));
    this.W = this.W.l;
    return this.W.ua()
};
X.prototype.pa = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return X.prototype.Ba.call(this)
};
Object.h = function () {
    return I(F("Object"))
};
Object.v = function (a) {
    var b = Object.h();
    a.b[b.c] = b
};
Object.d = function () {};
Object.g = function () {};
Object.cb = function () {
    var a = {};
    a.f = Object.h();
    Object.d.call(a);
    return a
};
Object.prototype.U = function (a) {
    return this === a
};
Object.prototype.j = function () {
    return "Object"
};
Object.prototype.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Object.prototype.j.call(this)
};
Object.prototype.t = function () {
    return F("Object") + (":" + r(this.Hb))
};

function Ra(a) {
    0 != q.a && n();
    a = a == null ? "null" : a.o(0, q);
    fb(a)
};

function Hc(a, b) {
    Ic(a, b);
    a.q = []
}
function Ic(a, b) {
    var c = I(F("Collection$Dart"), Hc, b);
    a.b[c.c] = c;
    c = [K(a.i, 0)];
    c = I(F("Iterable$Dart"), null, c);
    a.b[c.c] = c
};

function Jc(a) {
    Wb(a)
}
function Wb(a) {
    var b = I(F("double$Dart"), Jc);
    a.b[b.c] = b;
    Kc(a)
};

function Y(a) {
    var b = I(F("Exception$Dart"));
    a.b[b.c] = b
};

function Z() {}
function Lc() {
    return I(F("IndexOutOfRangeException$Dart"), Mc)
}
function Mc(a) {
    var b = Lc();
    a.b[b.c] = b;
    Y(a)
}
function aa(a) {
    var b = new Z;
    b.f = Lc();
    Object.g.call(b);
    b.Ta = a;
    Object.d.call(b);
    return b
}
Z.prototype.j = function () {
    return "IndexOutOfRangeException: " + R(this.Ta) + ""
};
Z.prototype.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Z.prototype.j.call(this)
};
Z.prototype.t = function () {
    return F("IndexOutOfRangeException$Dart") + (":" + r(this.Ta))
};

function o() {}
function ja() {
    return I(F("NoSuchMethodException$Dart"), Nc)
}
function Nc(a) {
    var b = ja();
    a.b[b.c] = b;
    Y(a)
}
o.prototype.j = function () {
    for (var a = oa(), b = 0; b < this.ia.length; b++) b > 0 && a.n(", "), a.n(this.ia[f(this.ia, b)]);
    a.n("]");
    return ha("NoSuchMethodException - receiver: '" + R(this.Ya) + "' ", "function name: '" + R(this.Sa) + "' arguments: [" + R(a) + "]")
};
o.prototype.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return o.prototype.j.call(this)
};
o.prototype.t = function () {
    return F("NoSuchMethodException$Dart") + (":" + r(this.Ya)) + (":" + r(this.Sa)) + (":" + r(this.ia))
};

function $() {}
function Oc() {
    return I(F("IllegalArgumentException$Dart"), Pc)
}
function Pc(a) {
    var b = Oc();
    a.b[b.c] = b;
    Y(a)
}
function nb(a) {
    var b = new $;
    b.f = Oc();
    Object.g.call(b);
    b.Ra = a;
    Object.d.call(b);
    return b
}
$.prototype.j = function () {
    return "Illegal argument(s): " + R(this.Ra) + ""
};
$.prototype.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return $.prototype.j.call(this)
};
$.prototype.t = function () {
    return F("IllegalArgumentException$Dart") + (":" + r(this.Ra))
};

function Qc() {}
function Rc() {
    return I(F("NoMoreElementsException$Dart"), Sc)
}
function Sc(a) {
    var b = Rc();
    a.b[b.c] = b;
    Y(a)
}
function yb() {
    var a = new Qc;
    a.f = Rc();
    Object.g.call(a);
    Object.d.call(a);
    return a
}
Qc.prototype.j = function () {
    return "NoMoreElementsException"
};
Qc.prototype.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Qc.prototype.j.call(this)
};
Qc.prototype.t = function () {
    return F("NoMoreElementsException$Dart")
};

function Tc() {}
function Uc() {
    return I(F("EmptyQueueException$Dart"), Vc)
}
function Vc(a) {
    var b = Uc();
    a.b[b.c] = b;
    Y(a)
}
function yc() {
    var a = new Tc;
    a.f = Uc();
    Object.g.call(a);
    Object.d.call(a);
    return a
}
Tc.prototype.j = function () {
    return "EmptyQueueException"
};
Tc.prototype.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Tc.prototype.j.call(this)
};
Tc.prototype.t = function () {
    return F("EmptyQueueException$Dart")
};

function Wc() {}
function Xc() {
    return I(F("UnsupportedOperationException$Dart"), Yc)
}
function Yc(a) {
    var b = Xc();
    a.b[b.c] = b;
    Y(a)
}
function tb(a) {
    var b = new Wc;
    b.f = Xc();
    Object.g.call(b);
    b.Wa = a;
    Object.d.call(b);
    return b
}
Wc.prototype.j = function () {
    return "UnsupportedOperationException: " + R(this.Wa) + ""
};
Wc.prototype.o = function (a, b) {
    (0 != b.a || 0 + a != 0) && n();
    return Wc.prototype.j.call(this)
};
Wc.prototype.t = function () {
    return F("UnsupportedOperationException$Dart") + (":" + r(this.Wa))
};

function Zc(a) {
    var b = I(F("Hashable$Dart"));
    a.b[b.c] = b
};

function $c(a) {
    Vb(a)
}
function Vb(a) {
    var b = I(F("int$Dart"), $c);
    a.b[b.c] = b;
    Kc(a)
};

function ad(a) {
    Ab(a)
}
function Ab(a) {
    var b = I(F("SendPort$Dart"), ad);
    a.b[b.c] = b;
    Zc(a)
};

function xb(a, b) {
    var c = I(F("Iterator$Dart"), null, b);
    a.b[c.c] = c
};

function bd(a, b) {
    dc(a, b);
    a.q = []
}
function dc(a, b) {
    var c = I(F("List$Dart"), bd, b);
    a.b[c.c] = c;
    Ic(a, [K(a.i, 0)])
};

function cd(a, b) {
    gc(a, b);
    a.q = []
}
function gc(a, b) {
    var c = I(F("HashMap$Dart"), cd, b);
    a.b[c.c] = c;
    c = [K(a.i, 0), K(a.i, 1)];
    c = I(F("Map$Dart"), null, c);
    a.b[c.c] = c
};

function dd(a) {
    Kc(a)
}
function Kc(a) {
    var b = I(F("num$Dart"), dd);
    a.b[b.c] = b;
    b = I(F("Comparable$Dart"));
    a.b[b.c] = b;
    Zc(a)
};

function ed(a, b) {
    Cc(a, b);
    a.q = []
}
function Cc(a, b) {
    var c = I(F("Queue$Dart"), ed, b);
    a.b[c.c] = c;
    Ic(a, [K(a.i, 0)])
};

function ac(a) {
    Xb(a)
}
function Xb(a) {
    var b = I(F("String$Dart"), ac);
    a.b[b.c] = b;
    b = I(F("Comparable$Dart"));
    a.b[b.c] = b;
    Zc(a);
    b = I(F("Pattern$Dart"));
    a.b[b.c] = b
};
v.push(function () {
    this.V = i;
    u.Qa = 1
});
v.push(function () {
    this.ma = 0
});
v.push(function () {
    u.Fb = i;
    u.Eb = i;
    u.Gb = i
});
v.push(function () {
    u.vb = i;
    u.ub = i;
    u.tb = i;
    u.yb = i;
    u.xb = i;
    u.wb = i
});
(function (a, b) {
    if (!x) {
        var c = new Fa;
        wa(c, function () {
            a(b)
        });
        Pa();
        u = c
    }
})(function () {
    Ra("Hello, Darter!")
}, this.arguments ? this.arguments.slice ? [].concat(this.arguments.slice()) : this.arguments : []);
ready
JS
        

function HelloDartTest() {}
HelloDartTest.testMain = function testMain() {
  _print("Hello JavaScripter!");
};
HelloDartTest.testMain();


function _print(message) {
  // as is for the current isolate$log function
  return;
  console.log(message);
};
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.