|
function aa(a, b) { |
|
function c() { |
|
} |
|
c.prototype = b.prototype; |
|
a.prototype = new c; |
|
a.prototype.constructor = a; |
|
for (var d in b) { |
|
if (Object.defineProperties) { |
|
var e = Object.getOwnPropertyDescriptor(b, d); |
|
e && Object.defineProperty(a, d, e); |
|
} else { |
|
a[d] = b[d]; |
|
} |
|
} |
|
} |
|
for (var ba = "function" == typeof Object.defineProperties ? Object.defineProperty : function(a, b, c) { |
|
if (c.get || c.set) { |
|
throw new TypeError("ES3 does not support getters and setters."); |
|
} |
|
a != Array.prototype && a != Object.prototype && (a[b] = c.value); |
|
}, h = "undefined" != typeof window && window === this ? this : "undefined" != typeof global && null != global ? global : this, k = ["String", "prototype", "repeat"], l = 0;l < k.length - 1;l++) { |
|
var m = k[l]; |
|
m in h || (h[m] = {}); |
|
h = h[m]; |
|
} |
|
var ca = k[k.length - 1], n = h[ca], p = n ? n : function(a) { |
|
var b; |
|
if (null == this) { |
|
throw new TypeError("The 'this' value for String.prototype.repeat must not be null or undefined"); |
|
} |
|
b = this + ""; |
|
if (0 > a || 1342177279 < a) { |
|
throw new RangeError("Invalid count value"); |
|
} |
|
a |= 0; |
|
for (var c = "";a;) { |
|
if (a & 1 && (c += b), a >>>= 1) { |
|
b += b; |
|
} |
|
} |
|
return c; |
|
}; |
|
p != n && null != p && ba(h, ca, {configurable:!0, writable:!0, value:p}); |
|
var q = this; |
|
function r(a) { |
|
var b = typeof a; |
|
if ("object" == b) { |
|
if (a) { |
|
if (a instanceof Array) { |
|
return "array"; |
|
} |
|
if (a instanceof Object) { |
|
return b; |
|
} |
|
var c = Object.prototype.toString.call(a); |
|
if ("[object Window]" == c) { |
|
return "object"; |
|
} |
|
if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) { |
|
return "array"; |
|
} |
|
if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) { |
|
return "function"; |
|
} |
|
} else { |
|
return "null"; |
|
} |
|
} else { |
|
if ("function" == b && "undefined" == typeof a.call) { |
|
return "object"; |
|
} |
|
} |
|
return b; |
|
} |
|
var da = "closure_uid_" + (1E9 * Math.random() >>> 0), ea = 0; |
|
function fa(a, b, c) { |
|
return a.call.apply(a.bind, arguments); |
|
} |
|
function ga(a, b, c) { |
|
if (!a) { |
|
throw Error(); |
|
} |
|
if (2 < arguments.length) { |
|
var d = Array.prototype.slice.call(arguments, 2); |
|
return function() { |
|
var c = Array.prototype.slice.call(arguments); |
|
Array.prototype.unshift.apply(c, d); |
|
return a.apply(b, c); |
|
}; |
|
} |
|
return function() { |
|
return a.apply(b, arguments); |
|
}; |
|
} |
|
function t(a, b, c) { |
|
t = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? fa : ga; |
|
return t.apply(null, arguments); |
|
} |
|
var ha = Date.now || function() { |
|
return +new Date; |
|
}; |
|
function v(a, b) { |
|
function c() { |
|
} |
|
c.prototype = b.prototype; |
|
a.C = b.prototype; |
|
a.prototype = new c; |
|
a.prototype.constructor = a; |
|
a.F = function(a, c, f) { |
|
for (var e = Array(arguments.length - 2), d = 2;d < arguments.length;d++) { |
|
e[d - 2] = arguments[d]; |
|
} |
|
return b.prototype[c].apply(a, e); |
|
}; |
|
} |
|
;function w() { |
|
0 != ia && (this[da] || (this[da] = ++ea)); |
|
this.u = this.u; |
|
this.D = this.D; |
|
} |
|
var ia = 0; |
|
w.prototype.u = !1; |
|
var ja = String.prototype.trim ? function(a) { |
|
return a.trim(); |
|
} : function(a) { |
|
return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g, ""); |
|
}; |
|
function x(a, b) { |
|
return a < b ? -1 : a > b ? 1 : 0; |
|
} |
|
;var ka = Array.prototype.indexOf ? function(a, b, c) { |
|
return Array.prototype.indexOf.call(a, b, c); |
|
} : function(a, b, c) { |
|
c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c; |
|
if ("string" == typeof a) { |
|
return "string" == typeof b && 1 == b.length ? a.indexOf(b, c) : -1; |
|
} |
|
for (;c < a.length;c++) { |
|
if (c in a && a[c] === b) { |
|
return c; |
|
} |
|
} |
|
return -1; |
|
}; |
|
var y; |
|
a: { |
|
var la = q.navigator; |
|
if (la) { |
|
var ma = la.userAgent; |
|
if (ma) { |
|
y = ma; |
|
break a; |
|
} |
|
} |
|
y = ""; |
|
} |
|
function z(a) { |
|
return -1 != y.indexOf(a); |
|
} |
|
;var na = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "); |
|
function oa(a, b) { |
|
for (var c, d, e = 1;e < arguments.length;e++) { |
|
d = arguments[e]; |
|
for (c in d) { |
|
a[c] = d[c]; |
|
} |
|
for (var f = 0;f < na.length;f++) { |
|
c = na[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]); |
|
} |
|
} |
|
} |
|
;function A(a) { |
|
A[" "](a); |
|
return a; |
|
} |
|
A[" "] = function() { |
|
}; |
|
var pa = z("Opera"), B = z("Trident") || z("MSIE"), qa = z("Edge"), ra = z("Gecko") && !(-1 != y.toLowerCase().indexOf("webkit") && !z("Edge")) && !(z("Trident") || z("MSIE")) && !z("Edge"), sa = -1 != y.toLowerCase().indexOf("webkit") && !z("Edge"); |
|
function ta() { |
|
var a = q.document; |
|
return a ? a.documentMode : void 0; |
|
} |
|
var C; |
|
a: { |
|
var D = "", E = function() { |
|
var a = y; |
|
if (ra) { |
|
return /rv\:([^\);]+)(\)|;)/.exec(a); |
|
} |
|
if (qa) { |
|
return /Edge\/([\d\.]+)/.exec(a); |
|
} |
|
if (B) { |
|
return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a); |
|
} |
|
if (sa) { |
|
return /WebKit\/(\S+)/.exec(a); |
|
} |
|
if (pa) { |
|
return /(?:Version)[ \/]?(\S+)/.exec(a); |
|
} |
|
}(); |
|
E && (D = E ? E[1] : ""); |
|
if (B) { |
|
var F = ta(); |
|
if (null != F && F > parseFloat(D)) { |
|
C = String(F); |
|
break a; |
|
} |
|
} |
|
C = D; |
|
} |
|
var G = {}, ua; |
|
var va = q.document; |
|
ua = va && B ? ta() || ("CSS1Compat" == va.compatMode ? parseInt(C, 10) : 5) : void 0; |
|
var H; |
|
(H = !B) || (H = 9 <= Number(ua)); |
|
var wa = H, I; |
|
if (I = B) { |
|
var J; |
|
if (Object.prototype.hasOwnProperty.call(G, "9")) { |
|
J = G["9"]; |
|
} else { |
|
for (var K = 0, xa = ja(String(C)).split("."), ya = ja("9").split("."), za = Math.max(xa.length, ya.length), L = 0;!K && L < za;L++) { |
|
var Aa = xa[L] || "", Ba = ya[L] || ""; |
|
do { |
|
var M = /(\d*)(\D*)(.*)/.exec(Aa) || ["", "", "", ""], N = /(\d*)(\D*)(.*)/.exec(Ba) || ["", "", "", ""]; |
|
if (0 == M[0].length && 0 == N[0].length) { |
|
break; |
|
} |
|
K = x(0 == M[1].length ? 0 : parseInt(M[1], 10), 0 == N[1].length ? 0 : parseInt(N[1], 10)) || x(0 == M[2].length, 0 == N[2].length) || x(M[2], N[2]); |
|
Aa = M[3]; |
|
Ba = N[3]; |
|
} while (!K); |
|
} |
|
J = G["9"] = 0 <= K; |
|
} |
|
I = !J; |
|
} |
|
var Ca = I; |
|
function O(a, b) { |
|
this.type = a; |
|
this.g = this.h = b; |
|
this.v = !0; |
|
} |
|
O.prototype.i = function() { |
|
this.v = !1; |
|
}; |
|
function P(a, b) { |
|
O.call(this, a ? a.type : ""); |
|
this.j = this.g = this.h = null; |
|
if (a) { |
|
this.type = a.type; |
|
this.h = a.target || a.srcElement; |
|
this.g = b; |
|
var c = a.relatedTarget; |
|
if (c && ra) { |
|
try { |
|
A(c.nodeName); |
|
} catch (d) { |
|
} |
|
} |
|
this.j = a; |
|
a.defaultPrevented && this.i(); |
|
} |
|
} |
|
v(P, O); |
|
P.prototype.i = function() { |
|
P.C.i.call(this); |
|
var a = this.j; |
|
if (a.preventDefault) { |
|
a.preventDefault(); |
|
} else { |
|
if (a.returnValue = !1, Ca) { |
|
try { |
|
if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode) { |
|
a.keyCode = -1; |
|
} |
|
} catch (b) { |
|
} |
|
} |
|
} |
|
}; |
|
var Q = "closure_listenable_" + (1E6 * Math.random() | 0), Da = 0; |
|
function Fa(a, b, c, d, e) { |
|
this.listener = a; |
|
this.g = null; |
|
this.src = b; |
|
this.type = c; |
|
this.capture = !!d; |
|
this.o = e; |
|
++Da; |
|
this.l = this.m = !1; |
|
} |
|
function R(a) { |
|
a.l = !0; |
|
a.listener = null; |
|
a.g = null; |
|
a.src = null; |
|
a.o = null; |
|
} |
|
;function S(a) { |
|
this.src = a; |
|
this.g = {}; |
|
this.h = 0; |
|
} |
|
function Ga(a, b, c, d, e) { |
|
var f = b.toString(); |
|
b = a.g[f]; |
|
b || (b = a.g[f] = [], a.h++); |
|
var g = T(b, c, d, e); |
|
-1 < g ? (a = b[g], a.m = !1) : (a = new Fa(c, a.src, f, !!d, e), a.m = !1, b.push(a)); |
|
return a; |
|
} |
|
function U(a, b) { |
|
var c = b.type; |
|
if (c in a.g) { |
|
var d = a.g[c], e = ka(d, b), f; |
|
(f = 0 <= e) && Array.prototype.splice.call(d, e, 1); |
|
f && (R(b), a.g[c].length || (delete a.g[c], a.h--)); |
|
} |
|
} |
|
function T(a, b, c, d) { |
|
for (var e = 0;e < a.length;++e) { |
|
var f = a[e]; |
|
if (!f.l && f.listener == b && f.capture == !!c && f.o == d) { |
|
return e; |
|
} |
|
} |
|
return -1; |
|
} |
|
;var Ha = "closure_lm_" + (1E6 * Math.random() | 0), Ia = {}, Ja = 0; |
|
function Ka(a, b, c, d, e) { |
|
if ("array" == r(b)) { |
|
for (var f = 0;f < b.length;f++) { |
|
Ka(a, b[f], c, d, e); |
|
} |
|
return null; |
|
} |
|
c = La(c); |
|
if (a && a[Q]) { |
|
a = Ga(a.g, String(b), c, d, e); |
|
} else { |
|
if (!b) { |
|
throw Error("Invalid event type"); |
|
} |
|
var f = !!d, g = V(a); |
|
g || (a[Ha] = g = new S(a)); |
|
c = Ga(g, b, c, d, e); |
|
if (!c.g) { |
|
d = Ma(); |
|
c.g = d; |
|
d.src = a; |
|
d.listener = c; |
|
if (a.addEventListener) { |
|
a.addEventListener(b.toString(), d, f); |
|
} else { |
|
if (a.attachEvent) { |
|
a.attachEvent(Na(b.toString()), d); |
|
} else { |
|
throw Error("addEventListener and attachEvent are unavailable."); |
|
} |
|
} |
|
Ja++; |
|
} |
|
a = c; |
|
} |
|
return a; |
|
} |
|
function Ma() { |
|
var a = Oa, b = wa ? function(c) { |
|
return a.call(b.src, b.listener, c); |
|
} : function(c) { |
|
c = a.call(b.src, b.listener, c); |
|
if (!c) { |
|
return c; |
|
} |
|
}; |
|
return b; |
|
} |
|
function Pa(a, b, c, d, e) { |
|
if ("array" == r(b)) { |
|
for (var f = 0;f < b.length;f++) { |
|
Pa(a, b[f], c, d, e); |
|
} |
|
} else { |
|
(c = La(c), a && a[Q]) ? (a = a.g, b = String(b).toString(), b in a.g && (f = a.g[b], c = T(f, c, d, e), -1 < c && (R(f[c]), Array.prototype.splice.call(f, c, 1), f.length || (delete a.g[b], a.h--)))) : a && (a = V(a)) && (b = a.g[b.toString()], a = -1, b && (a = T(b, c, !!d, e)), (c = -1 < a ? b[a] : null) && W(c)); |
|
} |
|
} |
|
function W(a) { |
|
if ("number" != typeof a && a && !a.l) { |
|
var b = a.src; |
|
if (b && b[Q]) { |
|
U(b.g, a); |
|
} else { |
|
var c = a.type, d = a.g; |
|
b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent && b.detachEvent(Na(c), d); |
|
Ja--; |
|
(c = V(b)) ? (U(c, a), c.h || (c.src = null, b[Ha] = null)) : R(a); |
|
} |
|
} |
|
} |
|
function Na(a) { |
|
return a in Ia ? Ia[a] : Ia[a] = "on" + a; |
|
} |
|
function Qa(a, b, c, d) { |
|
var e = !0; |
|
if (a = V(a)) { |
|
if (b = a.g[b.toString()]) { |
|
for (b = b.concat(), a = 0;a < b.length;a++) { |
|
var f = b[a]; |
|
f && f.capture == c && !f.l && (f = Ra(f, d), e = e && !1 !== f); |
|
} |
|
} |
|
} |
|
return e; |
|
} |
|
function Ra(a, b) { |
|
var c = a.listener, d = a.o || a.src; |
|
a.m && W(a); |
|
return c.call(d, b); |
|
} |
|
function Oa(a, b) { |
|
if (a.l) { |
|
return !0; |
|
} |
|
if (!wa) { |
|
var c; |
|
if (!(c = b)) { |
|
a: { |
|
c = ["window", "event"]; |
|
for (var d = q, e;e = c.shift();) { |
|
if (null != d[e]) { |
|
d = d[e]; |
|
} else { |
|
c = null; |
|
break a; |
|
} |
|
} |
|
c = d; |
|
} |
|
} |
|
e = c; |
|
c = new P(e, this); |
|
d = !0; |
|
if (!(0 > e.keyCode || void 0 != e.returnValue)) { |
|
a: { |
|
var f = !1; |
|
if (!e.keyCode) { |
|
try { |
|
e.keyCode = -1; |
|
break a; |
|
} catch (Ea) { |
|
f = !0; |
|
} |
|
} |
|
if (f || void 0 == e.returnValue) { |
|
e.returnValue = !0; |
|
} |
|
} |
|
e = []; |
|
for (f = c.g;f;f = f.parentNode) { |
|
e.push(f); |
|
} |
|
for (var f = a.type, g = e.length - 1;0 <= g;g--) { |
|
c.g = e[g]; |
|
var u = Qa(e[g], f, !0, c), d = d && u; |
|
} |
|
for (g = 0;g < e.length;g++) { |
|
c.g = e[g], u = Qa(e[g], f, !1, c), d = d && u; |
|
} |
|
} |
|
return d; |
|
} |
|
return Ra(a, new P(b, this)); |
|
} |
|
function V(a) { |
|
a = a[Ha]; |
|
return a instanceof S ? a : null; |
|
} |
|
var Sa = "__closure_events_fn_" + (1E9 * Math.random() >>> 0); |
|
function La(a) { |
|
if ("function" == r(a)) { |
|
return a; |
|
} |
|
a[Sa] || (a[Sa] = function(b) { |
|
return a.handleEvent(b); |
|
}); |
|
return a[Sa]; |
|
} |
|
;function X() { |
|
w.call(this); |
|
this.g = new S(this); |
|
this.i = this; |
|
} |
|
v(X, w); |
|
X.prototype[Q] = !0; |
|
X.prototype.removeEventListener = function(a, b, c, d) { |
|
Pa(this, a, b, c, d); |
|
}; |
|
function Ta(a, b, c, d) { |
|
b = a.g.g[String(b)]; |
|
if (!b) { |
|
return !0; |
|
} |
|
b = b.concat(); |
|
for (var e = !0, f = 0;f < b.length;++f) { |
|
var g = b[f]; |
|
if (g && !g.l && g.capture == c) { |
|
var u = g.listener, Ea = g.o || g.src; |
|
g.m && U(a.g, g); |
|
e = !1 !== u.call(Ea, d) && e; |
|
} |
|
} |
|
return e && 0 != d.v; |
|
} |
|
;function Ua(a, b) { |
|
O.call(this, "message", a); |
|
this.data = b; |
|
} |
|
aa(Ua, O); |
|
function Va(a) { |
|
X.call(this); |
|
this.h = new Worker(a); |
|
this.h.addEventListener("message", t(this.j, this), !1); |
|
} |
|
aa(Va, X); |
|
Va.prototype.j = function(a) { |
|
var b = this.i; |
|
a = new Ua(this, a.data); |
|
var c = a.type || a; |
|
if ("string" == typeof a) { |
|
a = new O(a, b); |
|
} else { |
|
if (a instanceof O) { |
|
a.h = a.h || b; |
|
} else { |
|
var d = a; |
|
a = new O(c, b); |
|
oa(a, d); |
|
} |
|
} |
|
d = !0; |
|
b = a.g = b; |
|
d = Ta(b, c, !0, a) && d; |
|
Ta(b, c, !1, a); |
|
}; |
|
function Y(a) { |
|
Wa.h.postMessage(a); |
|
} |
|
;var Xa = null; |
|
function Ya(a) { |
|
var b; |
|
b = b || 0; |
|
return function() { |
|
return a.apply(this, Array.prototype.slice.call(arguments, 0, b)); |
|
}; |
|
} |
|
;function Z(a, b, c) { |
|
w.call(this); |
|
this.g = null; |
|
this.j = !1; |
|
this.B = a; |
|
this.A = c; |
|
this.h = b || window; |
|
this.i = t(this.w, this); |
|
} |
|
v(Z, w); |
|
Z.prototype.start = function() { |
|
if (null != this.g) { |
|
var a = Za(this), b = $a(this); |
|
a && !b && this.h.mozRequestAnimationFrame ? W(this.g) : a && b ? b.call(this.h, this.g) : this.h.clearTimeout(this.g); |
|
} |
|
this.g = null; |
|
this.j = !1; |
|
a = Za(this); |
|
b = $a(this); |
|
a && !b && this.h.mozRequestAnimationFrame ? (this.g = Ka(this.h, "MozBeforePaint", this.i), this.h.mozRequestAnimationFrame(null), this.j = !0) : this.g = a && b ? a.call(this.h, this.i) : this.h.setTimeout(Ya(this.i), 20); |
|
}; |
|
Z.prototype.w = function() { |
|
this.j && this.g && W(this.g); |
|
this.g = null; |
|
this.B.call(this.A, ha()); |
|
}; |
|
function Za(a) { |
|
a = a.h; |
|
return a.requestAnimationFrame || a.webkitRequestAnimationFrame || a.mozRequestAnimationFrame || a.oRequestAnimationFrame || a.msRequestAnimationFrame || null; |
|
} |
|
function $a(a) { |
|
a = a.h; |
|
return a.cancelAnimationFrame || a.cancelRequestAnimationFrame || a.webkitCancelRequestAnimationFrame || a.mozCancelRequestAnimationFrame || a.oCancelRequestAnimationFrame || a.msCancelRequestAnimationFrame || null; |
|
} |
|
;function ab(a) { |
|
"function" != r(q.setImmediate) || q.Window && q.Window.prototype && !z("Edge") && q.Window.prototype.setImmediate == q.setImmediate ? (bb || (bb = cb()), bb(a)) : q.setImmediate(a); |
|
} |
|
var bb; |
|
function cb() { |
|
var a = q.MessageChannel; |
|
"undefined" === typeof a && "undefined" !== typeof window && window.postMessage && window.addEventListener && !z("Presto") && (a = function() { |
|
var a = document.createElement("IFRAME"); |
|
a.style.display = "none"; |
|
a.src = ""; |
|
document.documentElement.appendChild(a); |
|
var b = a.contentWindow, a = b.document; |
|
a.open(); |
|
a.write(""); |
|
a.close(); |
|
var c = "callImmediate" + Math.random(), d = "file:" == b.location.protocol ? "*" : b.location.protocol + "//" + b.location.host, a = t(function(a) { |
|
if (("*" == d || a.origin == d) && a.data == c) { |
|
this.port1.onmessage(); |
|
} |
|
}, this); |
|
b.addEventListener("message", a, !1); |
|
this.port1 = {}; |
|
this.port2 = {postMessage:function() { |
|
b.postMessage(c, d); |
|
}}; |
|
}); |
|
if ("undefined" !== typeof a && !z("Trident") && !z("MSIE")) { |
|
var b = new a, c = {}, d = c; |
|
b.port1.onmessage = function() { |
|
if (void 0 !== c.next) { |
|
c = c.next; |
|
var a = c.s; |
|
c.s = null; |
|
a(); |
|
} |
|
}; |
|
return function(a) { |
|
d.next = {s:a}; |
|
d = d.next; |
|
b.port2.postMessage(0); |
|
}; |
|
} |
|
return "undefined" !== typeof document && "onreadystatechange" in document.createElement("SCRIPT") ? function(a) { |
|
var b = document.createElement("SCRIPT"); |
|
b.onreadystatechange = function() { |
|
b.onreadystatechange = null; |
|
b.parentNode.removeChild(b); |
|
b = null; |
|
a(); |
|
a = null; |
|
}; |
|
document.documentElement.appendChild(b); |
|
} : function(a) { |
|
q.setTimeout(a, 0); |
|
}; |
|
} |
|
;console.log("Obtaining instance"); |
|
!Xa && (Xa = new Va("worker.min.js")); |
|
var Wa = Xa; |
|
console.log("Subscribe for messages"); |
|
Ka(Wa, "message", function(a) { |
|
console.log("Message from worker:" + a.data); |
|
}); |
|
console.log("Wait for the worker to load..."); |
|
setTimeout(function() { |
|
console.log("Start tests:"); |
|
console.log("Sending to worker: direct (000)"); |
|
Y("000"); |
|
console.log("Done sending: direct (000)"); |
|
console.log("Schedule sending: next tick"); |
|
ab(function() { |
|
console.log("Sending to worker: next tick (222)"); |
|
Y("222"); |
|
console.log("Done sending: next tick (222)"); |
|
}); |
|
console.log("Schedule sending: RAF1 (111)"); |
|
(new Z(function() { |
|
console.log("Sending to worker: RAF1 (111)"); |
|
Y("111"); |
|
console.log("Done sending: RAF1 (111)"); |
|
console.log("Schedule sending: RAF2"); |
|
(new Z(function() { |
|
console.log("Sending to worker: RAF2 (333)"); |
|
Y("333"); |
|
console.log("Done sending: RAF2 (333)"); |
|
}, null, null)).start(); |
|
}, null, null)).start(); |
|
console.log("Sending to worker: direct (444)"); |
|
Y("444"); |
|
console.log("Done sending: direct (444)"); |
|
console.log("Schedule sending: next tick (666)"); |
|
ab(function() { |
|
console.log("Sending to worker: next tick (666)"); |
|
Y("666"); |
|
console.log("Done sending: next tick (666)"); |
|
}); |
|
console.log("Sending to worker: direct (555)"); |
|
Y("555"); |
|
console.log("Done sending: direct (555)"); |
|
console.log("Done tests"); |
|
}, 3E3); |